测试小工进阶之路:Jmeter从零开始构建性能测试项目实战

经常听到性能?何为性能 , 从来没做过性能测试的人该如何上手?这篇文章非常适合零基础的同学看 , 看完之后基本上就能知道性能测试的全流程 。
测试小工进阶之路:Jmeter从零开始构建性能测试项目实战文章插图
性能指标
1.什么是性能测试
在一定情况下 , 通过工具模拟用户负载系统的响应时间、吞吐量等指标是否满足需求 。
2.性能的指标
基本上做过性能测试的人都知道性能指标这个词 , 一般执行脚本成功后都会通过指标判定服务器性能从而判断是否符合当前业务需要 , 再有 , 面试时经常会问到通过哪些指标来观察服务器性能 。
性能指标可以从以下5个方面观察:
并发数:模拟用户数 , 比如淘宝网双11模拟上千万级用户执行加入购物车操作 , 这里的用户数就是并发数 。
响应时间:完成一个事务的时间(客户端-网络-服务器-数据库) , 完成特定场景用时 , 比如千万级用户执行加入购物车操作的完成时间 , 最有名的为2-5-8原则为准则 。
测试小工进阶之路:Jmeter从零开始构建性能测试项目实战文章插图
稳定性 :长时间运行场景系统有无异常 , 系统12-24小时运行正常无报错 。
资源使用率:CPU\内存使用率 , 通过观察服务器的CPU\内存使用率大小 , 一般《=80%
思考时间(think time):为了模拟真实的用户场景 , 在设计脚本时需要加上思考时间 , 比如执行完加入购物车 , 到结算页面需要2-3s时间 , 这段时间可以为思考时间 。
3.性能测试过程
大致分为需求分析->指标分析->场景用例设计->脚本用例设计->构建测试数据->脚本开发->执行运行结果并收集->输出测试报告->性能调优与回归几大过程 。
性能测试工具的选择
目前主流的性能测试工具有Jmeter 和Loadrunner , 大部分公司基本上都用Jmeter , 原因loadrunner有下面三个缺点 :
1)价格昂贵 , 一般是按协议和虚拟用户数量收费;
2)不能二次开发 , 比如实现额外的功能 , 不支持自己写的脚本;
3)支持的最大并发数是50 , 想要支持大量并发数有限制 。
所以这篇文章介绍的是Jmeter工具的使用 。
测试计划
1. 明确实现功能
不知道哪些场景 需要测试 , 可从以下几个方面考量:
比如登录场景 , 几乎所有的系统及系统操作都在登录基础上完成 , 所以一般登录场景都在计划内
用户量大的功能:购物系统的加入购物车功能 , 支付功能等
重要的功能:系统的核心业务功能 , 支付等
2. 确定指标值
一般指标值大部分下面产品/项目经理会根据用户使用习惯提供 , 但是部分小公司流程不完善 , 每个指标都需要测试人员自己制定 , 提供一下思路 。
测试小工进阶之路:Jmeter从零开始构建性能测试项目实战文章插图
根据公式计算
测试小工进阶之路:Jmeter从零开始构建性能测试项目实战文章插图
QPS:一般找到一天中最高的峰值 , 比如淘宝网上午10点是访问高峰 , pv峰值为5208 , 那么他的QPS=5208*0.8/(3600*0.2) , 其中2-8原则的意思是80%的业务量由20%的时间来完成 , 3600为小时转化为秒 。
并发数
一般有3种方法:
A.根据公式QPS=并发数/平均响应时间 , 其中时间和qps已知 , 可得出并发数
B.根据在线活动数来估算
C.根据以往经验
下面以在线活动数为例:
首先明确3个用户数
系统用户数:系统注册的人数
在线用户数:系统用户注册的人数有一部分为僵尸用户 , 不使用产品的 , 刨除这一部分使用产品功能的用户为在线用户数
并发用户数: 计算平均的并发用户数:C = nL/T , 其中T为考核时长 , n为登录系统用户数 , L为登录时长 , 一般考核时长为1天 , 登录时长2小时 , 比如一个系统用户数为500 , 则C=500*2/8=125
一般在实际工作中 , 根据公司的业务需求 , 小公司更倾向于不利用公式计算 , 先自己设定一个值看看服务器反应 , 再逐步递增 , 这种比较费时 , 还有一种利用阶梯压测直接分析服务器性能瓶颈从而进一步分析 。
脚本录制实例
举几个我在实际实际工作中认为对大家有用处的例子 。
1.录制脚本-jmeter/badboy
前提:各个控件已经搭建好(添加测试计划-代理服务器-线程组-仅一次控制器-事务控制器等) 。
测试小工进阶之路:Jmeter从零开始构建性能测试项目实战文章插图
Jmeter录制登录脚本
1)IE浏览器设置代理
首先在浏览器找到局域网设置对话框 , 填写代理服务器ip地址(jmeter工具使用电脑ip地址) , 端口默认8888 , 一般不用改变 , 点击确定 。