爆肝整理,性能测试-测试工具选型(各个对比)卷起来...

news2024/11/15 23:50:05

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

性能测试和功能测试不同,性能测试的执行是基本功能的重复和并发,需要模拟多用户,在性能测试执行时需要监控指标参数,同时性能测试的结果不是那么显而易见,需要对数据进行分析。这些特点决定了性能测试更适合通过工具来完成。

从性能测试的定义的角度来分析,性能测试是指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

如果不使用工具,仅靠人工进行性能测试会存在以下的弊端:

测试需要投入大量的资源:
为了模拟多种负载、并发的场景需要多人协同工作,通常测试没有很多的资源,而且就算有资源人工的效果也会大打折扣,甚至于某些场景仅凭人工是无法完成的。

可重复性非常差:
性能测试经常需要反复调优和测试执行,如果没有工具的帮助,全靠人工实在不敢想象。

测试准确性较差:
由于需要模拟多种负载和并发场景,如果由人工来操作,难免会存在误差,而且相对工具或程序来说这种误差会更大,对测试结果影响也非常大。

结果的收集、整理和呈现形式差:
如果没有工具,全凭人工采集数据相对工具来说也会存在较大的误差。

性能测试与性能测试工具的关系

1、性能测试从测试阶段来划分属于系统测试,其和具体使用什么工具并没有直接的关系。使用工具只是为了提高性能测试效率和准确性的一种方法和手段。从本质上来看,同做其它事情时使用工具没有什么实质性的区别。

2、性能测试不等于Loadrunner,LR只是性能测试工具其中的一种,而且它也不是万能的,在某些情况下它也并不能派上用场。

3、自动化测试工具与性能测试工具的区别:性能测试工具一般是基于通信协议的(客户器与服务器交换信息所遵守的约定),它可以不关心系统的UI,而自动化使用的是对象识别技术,关注UI界面。自动化无法或很难造成负载,但是通过协议很容易。

性能测试工具选型

通常在公司或项目中,我们选择任何工具时都会做一些调研,目的就是为了选择适合公司或项目的工具。那么性能测试工具也不例外,通常可以从以下几个方面进行考虑:

1、成本方面
工具成本:工具通常分为商业闭(shou)源(fei)和非商业开(mian)源(fei)两种,商业工具通常功能比较强大,收费,由于收费所以可提供售后服务,如果出了问题有专业人士帮忙处理。

而开源工具通常是免费的,功能有限,维护工具的组织也是自发的,所以如果碰到问题需要自行解决,没有专人提供服务。具体选择商业还是开源的工具,需要根据公司的情况,比如公司规模、愿意承担的成本、项目综合情况等方面考虑。

一般来看大公司通常可以承担的起工具的费用,会考虑购买商业工具。而小公司由于资金压力,可能会选择开源的工具。

学习成本:使用任何工具都需要进行学习,这样一来就会产生学习成本(比如:时间),因此我们在选择工具时也需要考虑到项目组成员的学习成本。

如果有两种工具A和B都能满足项目组测试的需求,如果A工具大部分人都会使用,而B工具只有极少部分人会使用,那么建议优先考虑A工具。

通常,对于测试人员最好熟悉一款流程的商业(性能)工具,一款开源免费(性能)工具,还需要熟悉常见的(性能)脚本开发语言等,这是基本要求。

2、支持的协议
性能测试通常跟协议联系非常紧密,比如B/S的系统通常使用http协议进行客户端和服务器商的信息交换,C/S的系统通常使用socket协议进行信息交换。在选择工具时,需要考虑项目使用的协议。一个测试工具能否满足测试需求,能否达到令人满意的测试结果,是选择测试工具要考虑的最基本的问题。

3、生命力
现在的性能测试工具非常多,比如LR,jmeter这类较大众的工具网上相关的资料非常多,但一些小众工具可能网上资料比较少。

如果在工具使用过程中碰到了比较极手的问题,在录求解决方案或帮助时,大众的的工具相对来说会比较有优势一点,毕竟使用的人越多,资料越多,那么自己碰到的问题也许别人早就碰到并解决了,即时之前没有人碰到过,由于使用研究的人多,通过社区或论坛的帮助相信总会有高手能协助解决的。

4、跨平台:
这一点自不必多说,看看JAVA为什么一直这流行就知道了。

常见性能测试工具

性能测试工具,从理论上来讲在性能测试过程中使用到的所有工具都可以称其为性能测试工具,通常分为以下几类:

请添加图片描述

说明:
服务器端性能测试工具:需要支持产生压力和负载,录制和生成脚本,设置和部署场景,产生并发用户和向系统施加持续的压力。

web前端性能测试工具:需要关于心浏览器等客户端工具对具体需要展现的页面的处理过程。

移动端性能测试工具:同web端性能测试工具也需要关心页面的处理过程,另外还要具体数据采集的功能,比如:手机CPU、内存、电量,启动时间等数据的记录。

资源监控工具:这个主要是能够收集性能测试过程中的数据以及良好的结果展现方式。

常见性能测试工具特点

JMeter:采用的是多线程模型,扩展性很强,不过制造压力没有那么高。它很适合用来压一些Tomcat服务,或者一些后端接口。JMeter的缺点是压力值不能精确控制,难以适应高并发的情况,而且由于是JAVA编写的,本身比较消耗资源。

LoadRunner:更像是一个模拟器,它比较适用于前端构造较复杂场景的情况,比如模拟100个用户登录的场景,LoadRunner对非技术人员提供了很好的支持。LoadRunner不适用后端接口。

JMeter和LoadRunner对比表:

描述JMeterLoadRunner
架构原理通过中间代理,监控和收集并发客户端的指令,把他们生成脚本,再发送的应用服务器,再监控应用服务器反馈的过程同JMeter
安装简单,解压即可,比较灵活LoadRunner安装包比较大,安装比较麻烦,工具本身相对比较笨重
支持的协议支持多种协议:HTTP、HTTPS、SOAP、FTP、Database via JDBC、JMS等,但相对LR还是不够全面,由于此原因相对来说jemter比较灵活,轻便支持的协议非常多,比较全面,但正因此显得工具本身比较笨重,不够灵活
脚本录制提供了一个利用本地ProxyServer(代理服务器)来录制生成测试脚本的功能,也支持badboy录制再生成JMeter脚本自带录制功能强大,可直接录制回放
并发模型通过增加线程组的数目,或者是设置循环次数来增加并发用户支持多种并发模型,通过在场景中选择要设置什么样的场景,然后选择虚拟用户数
分布式测试支持,可设置多台代理,通过远程控制实现多台机器并发压力同JMeter
资源监控通过JMeterPlugins插件和ServerAgent实现自带资源监控功能
报告分析通过与Ant集成,生成HTML报告自身支持生成HTML、Word报告
虚拟IP不支持支持
网速模拟不支持支持
扩展性开源,可根据需求修改源码通过扩展函数库实现
学习成本主要是自学官网上的资料网上资料和相关培训很多,购买正版的话,还有技术支持
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每一次的努力,都离成功更近一步;每一次的挫折,都是成长的催化剂。不要怕失败,勇敢面对困难,坚持不懈追逐梦想,只有这样,你才能成为自己渴望成为的人。相信自己,奋斗不止!

只有努力拼搏,才能收获辉煌;只有坚持奋斗,才能追逐梦想;只有勇往直前,才能走向成功的彼岸。不忘初心,砥砺前行,你定能创造属于自己的辉煌人生!

只有拼尽全力,才能让梦想绽放光芒;只有坚持不懈,才能跨越人生的高峰;唯有永不放弃,才能成就辉煌的未来。奋斗吧,向着成功的方向,勇往直前!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/712217.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cf 比赛 04

2021.04.30 训练地址 B. The Number of Pairs 令 u g c d ( a , b ) u gcd(a, b) ugcd(a,b),设 l c m ( a , b ) k ∗ u lcm(a, b) k * u lcm(a,b)k∗u,则原式可写为 u ∗ ( k ∗ c − d ) x u * (k * c - d) x u∗(k∗c−d)x,那么…

leetcode 222. 完全二叉树的节点个数

2023.7.3 用层序遍历遍历一遍二叉树&#xff0c;然后遍历的每个节点都进行一次计数&#xff0c;直接上代码&#xff1a; class Solution { public:int countNodes(TreeNode* root) {queue<TreeNode*> que;int ans 0;if(root nullptr) return ans;que.push(root);while…

speech_recognition + PocketSphinx 实现语音唤醒

文章目录 前言环境下载中文包制作激活词 编码实现唤醒 前言 这玩意是干啥的呢&#xff0c;主要的话就是最近有个小项目&#xff0c;需要在ros上面实现一个语音唤醒的操作。同时要求&#xff0c;离线操作&#xff0c;只能使用离线的SDK。然后逛了一圈&#xff0c;发现科大讯飞的…

22.RocketMQ之NameServer启动流程

NameServerController启动流程总览 启动类&#xff1a;org.apache.rocketmq.namesrv.NamesrvStartup#main java public static void main(String[] args) { main0(args); } java public static NamesrvController main0(String[] args) { try { //创建NamesrvController Names…

因Spring与SpringMVC配置信息写反导致Spring无法自动托管对象实例

因Spring与SpringMVC配置信息写反导致Spring无法自动托管对象实例 异常提示 03-Jul-2023 11:25:24.491 警告 [RMI TCP Connection(3)-127.0.0.1] org.springframework.context.support.AbstractApplicationContext.refresh Exception encountered during context initializat…

【485. 最大连续 1 的个数】

目录 一、题目解析二、算法思路三、代码实现 一、题目解析 二、算法思路 三、代码实现 class Solution { public:int findMaxConsecutiveOnes(vector<int>& nums) {int ret0;int left0,right0;for(;right<nums.size();right){if(nums[right]!1){retmax(ret,right…

SQL高级教程

SQL TOP 子句 TOP 子句 TOP 子句用于规定要返回的记录的数目。 对于拥有数千条记录的大型表来说&#xff0c;TOP 子句是非常有用的。 注释&#xff1a;并非所有的数据库系统都支持 TOP 子句。 SQL Server 的语法&#xff1a; SELECT TOP number|percent column_name(s) F…

BOSHIDA DC电源模块在自动化设备中的应用

BOSHIDA DC电源模块在自动化设备中的应用 DC电源模块是一种用于提供电源的设备&#xff0c;可以将交流电转换为直流电&#xff0c;并提供稳定、可靠的电源输出。在自动化设备中&#xff0c;DC电源模块常用于驱动直流电机、控制电磁阀等各种设备。以下是DC电源模块在自动化设备…

初学Spring boot (四) JSR303数据校验及多环境切换

学习回顾&#xff1a;初学Spring boot &#xff08;三&#xff09; yaml配置注入 一、JSR303数据校验 1、先看看如何使用 Springboot中可以用validated来校验数据&#xff0c;如果数据异常则会统一抛出异常&#xff0c;方便异常中心统一处理。我们这里来写个注解让我们的name只…

MySQL数据库第二课----------认识简单命令-----悄悄的变大牛

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com ——————————————————     ———————————— 目录 操作系统 桌面操作系统 服务器操作系统 嵌入式操作系统 移动设备操作系统 常用 Linux 命令的基本使用 为什么要学…

一个11g RAC到单机dg数据不同步问题

客户通过监控发现&#xff0c;主库dest_id2&#xff08;主库往dg库传输&#xff09;归档错误&#xff0c;归档无法从主库传到dg库。 登录主库&#xff0c;查询dest_id2的error&#xff0c;报错提示主库两个节点都无法登录到备库。 以前也遇到过这种情况&#xff0c;一般从主库复…

系统的灵活所在——扩展性

什么是扩展性&#xff1f; 在保持软件不变的情况下&#xff0c;计算机系统性能可以随系统规模扩充而提高的特性。它以添加新功能或修改完善现有功能来考虑软件的未来成长。可扩展性是软件拓展系统的能力。 我们都知道企业在选型时会从多个方面进行综合评估&#xff0c;主要包括…

Python入门教程+项目实战-14.5节-函数装饰器

目录 14.5.1 理解函数装饰器 14.5.2 理解闭包函数 14.5.3 使用闭包进行功能扩展 14.5.4 更优雅的做法&#xff1a;装饰器语法糖 14.5.5 知识要点 14.5.6 系统学习python 14.5.1 理解函数装饰器 在进入正题前&#xff0c;先看一段有关"装饰"的词语解释&#xf…

设计模式第20讲——备忘录模式(Memento)

目录 一、什么是备忘录模式 二、角色组成 三、优缺点 四、应用场景 五、代码实现 5.0 UML类图 5.1 EditorMemento——备忘录&#xff08;Memento&#xff09; 5.2 Editor——源发器&#xff08;Originator&#xff09; 5.3 History——管理者&#xff08;Caretaker&a…

java常见算法篇【完整版】

14-常见算法 基本查找/顺序查找 从0索引依次向后查找 二分查找/折半查找 前提条件&#xff1a;数组中的数据必须是有序的核心逻辑&#xff1a;每次排除一半的查找范围 package io.xiaoduo.arithmetic;public class Test1 {public static void main(String[] args) {int[…

2023年10个最佳商业WordPress主题(经过测试和专家挑选)

正在寻找最好的商业WordPress主题&#xff1f; 为了帮助您找到适合您业务的完美主题&#xff0c;我们浏览并测试了15个最受欢迎的商业WordPress主题……然后将列表缩减为10个&#xff0c;为您提供最好的。 您需要制作一个成功的商业网站&#xff0c;以激发对潜在客户的信任并…

哪个平板电脑触控笔比较好用?便宜好用的触控笔测评

对于现在的iPad用户来说&#xff0c;苹果原装的Pencil绝对是最好的电容笔选择。但因为价格太高&#xff0c;很多人都买不起。所以&#xff0c;在实际应用中&#xff0c;如何选择一个具有高性能高性价比的电容笔就显得尤为重要。本人是一名“苹果粉”&#xff0c;又是一个老资格…

力扣方法总结-----动态规划

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、动态规划二、动态规划五部曲1.确定DP数组的含义2.确定递推公式3.确定初始值4.确定遍历顺序5.举例推导DP数组&#xff0c;打印程序中DP数组日志 三、例子 一、动…

Day 58-59 Naive Bayes算法

代码&#xff1a; package dl;import java.io.FileReader; import java.util.Arrays; import java.util.Random;import weka.core.*;/*** The Naive Bayes algorithm.*/public class NaiveBayes {/*** An inner class to store parameters.*/private class GaussianParameters…

el-tree 展开指定层级 节点

示例&#xff1a;只展开一级节点 代码实现&#xff1a; element UI 文档 html代码 defaultExpandedArr 是重点 需要加node-key <el-tree:props"defaultProps":data"treeData":default-expanded-keys"defaultExpandedArr"node-key"id&q…