前言
作为测试工程师,相信大家对jmeter这个工具在熟悉不过了,小编的前几篇博客中也有写到jmeter用于接口自动化测试的实战文章,今天主要用来介绍使用jmeter来进行性能测试和稳定性测试的实战。
1、性能测试介绍
性能测试和我们以往提到过的关于存储软件产品和分布式存储性能测试(fio,vdbench)不一样,fio,vdbench一般是真针对硬件性能测试,本次介绍的是软件性能测试。
以web项目为例,性能测试用例包括但不限于以下几项:
性能测试模块 | 性能测试项 | 性能测试用例 |
模块A | 模块A专题1精确搜索 | 在30万条数据量在测试环境下搜索3秒内返回结果 |
模块A专题1模糊搜索 | 在30万条数据量在测试环境下搜索3秒内返回结果 | |
模块B | 模块B专题1搜索 | 1亿条数据在测试环境下精确查询2秒内返回结果,模糊查询5秒内返回结果 |
关联关系总数小于50个,3秒内返回结果 | ||
关联关系总数小于150个,5秒内返回结果 | ||
模块C | 模块B专题1搜索 | 50万条在测试环境下搜索3秒内返回结果 |
模块B专题2搜索 | 50万条在测试环境下搜索3秒内返回结果 | |
模块B专题3搜索 | 50万条在测试环境下搜索3秒内返回结果 | |
模块B专题9搜索 | 50万条在测试环境下搜索3秒内返回结果 | |
模块B专题10搜索 | 50万条在测试环境下搜索3秒内返回结果 | |
并发用户数 | 50个用户 | 登陆并且操作支持并发用户数50个 |
如上表所示,是一些性能测试用例的例子
2、稳定性测试介绍
对于web项目来说,稳定性一般来讲是指的在指定时间内可以无故障运行。包含但不限于以下几项:
测试模块 | 测试项 | 测试用例 | 预期结果 |
系统整体 | 负载持续运行 | 产品在50%左右负载情况下,能够无故障持续运行3*24小时 | 在3*24小时的运行中,系统运行正常,无故障出现。 |
如上表软件项目整体在50%负载(CPU、内存)能够无故障进行3*24小时,或者7*24小时。
3、jmeter脚本录制
1、打开jmeter选择录制模板点击创建
3、查看模板的目录
由下图我们可以看出是英文的,我们可以自己进行改为中文名字,以便于我们自己查看。
备注:因为真实环境中,你比如百度www.baidu.com,腾讯等这样的企业网站都有自己的安全保护措施,
没办法实战给大家展示,所以就在网上随便找了一个网站进行测试 ,如下,我们就是对下面这个网站
进行“计算字符串长度”的性能测试和稳定性测试。以此为例。
3、开启win10的代理设置
4、开启http的代理服务器
当http的代理服务器开启时,我们去浏览器上开始操作,jmeter其实就已经为我们录制了。去网站中刷新一下
jmeter就开始捕捉我们操作的行为了。
此时我们要密切注意,录制控制器中产生的请求。如下图:
为了我们更清晰的得到我们想要的,我们一般每执行一个操作(鼠标点击等操作)都会对新产生的请求去做注释。
加完注释如下图:这样我们的每一步操作就清晰可见了。
5、录制完之后停掉代理服务器,关闭win10自带代理
截止到上述步骤,录制脚本就执行完毕了。
4、性能测试跑脚本
1、添加聚合报告组件
2、设定循环时间或次数
下图代表,1个线程,跑1次
如果是100用户并发测试的话,就是100个线程
3、点击执行,执行完毕后,并查看结果树结果。
查看结果树:
从下图中我们看到,结果树中我们录制的脚本,都一一对应执行了,且都是绿色代表执行成功。(实战中绿色不一定成功)
我们还可进一步查看脚本执行的详情:包括请求、响应数据。
4、查看聚合报告
聚合报告是本次执行脚本的一个综合报告,里面包含了我们执行本次甲苯的时间,正确率与错误率等。
如下图所示,我们一般要看两个地方,
Average:平均请求响应时间,单位为毫秒,图中数据显示我们619ms,代表我们执行的性能测试响应时间为619毫秒,
如果我们的测试要求在3秒内返回结果,619ms<3s,说明这个请求性能测试通过。
Error:一般如果为0,说明没报错,也就是测试正常。
5、稳定性测试跑脚本
1、修改时间
稳定性一般情况要跑的脚本和性能测试的脚本一样,就是把上述的步骤在执行一遍,但是不同的是测试时间要变。
我们稳定性测试要求是3*24小时,无故障运行。所以时间要改。
如下图,循环次数改为了 永远,勾选调度器,持续时间(秒):3*24*3600秒=259200秒,如果是100用户并发,线程数还要改为100
2、查看结果树、聚合报告
这样脚本会循环执行三天三夜,时间到了之后,程序会停,我们还是去查看结果树,看有没有脚本出错。
如果没有报错,并且,聚合报告中,Error也为0%,代表稳定性测试通过了。
总结:
本文到此是使用jmeter,对web项目的性能测试和稳定性测试进行了大体的介绍(比较详细),流程是很全面的,
但是可能各位同学自己在使用时,会出现各种各样的问题。不要担心都是正常的,一点点解决。
有问题请留言哦,看到必回复。