准备工作
安装性能测试指标插件,网址为:
https://jmeter-plugins.org/install/Install/,下载后将jar包放在jmeter目录的lib/ext下,然后重启jmeter
若以上方法安装后没有变化,可用另一种方式 标准插件下载地址:https://jmeter-plugins.org/downloads/old/
解压后的两个jar文件也放在lib/ext下
性能指标
性能测试关注被测对象的时间与资源利用特性及稳定性。
时间特性:被测对象实现业务交易过程中所需的处理时间;
资源利用率:一般web系统不关注客户端,仅关注服务器端CPU、内存、网络带宽、磁盘;
稳定性:被测对象在一定的负载情况下持续稳定提供服务的能力。
性能指标
并发数:单位时间内同时发送给服务器的业务请求
响应时间:客户端发送请求到接收到服务器端的响应数据所消耗的时间
吞吐量:单位时间内系统处理用户请求的数量,MB、GB
系统资源耗用:CPU使用率、内存使用率、网络带宽占用率、磁盘I/O输入输出量
业务成功率:用户发起了多次业务请求,成功的比率有多少
TPS:单位时间内服务器处理的事务数(每秒事务数)
tps=并发数/平均响应时间,根据28定律,80%的用户请求集中在20%的热点数据或时间段
例:客单价200-500,以300计算。某电商要求每天完成交易额2亿
每天交易数:200000000/300=666,666.66666
每小时交易数:(666,666.66666*80%)/(24*20%)=111111.1111
tps:111111/3600秒=30.86
可按分类进行记忆:
- 系统指标:响应时间、并发量、TPS
- 资源指标:资源利用率
问题
post请求就要加http信息头?
单独的请求下是可以单独加HTTP信息头的
监控工具
Linux平台:nmon、rpc(结合loadrunner使用)、jvisualVM(健康java程序)、Spotlight(监控数据库相关信息)
windows平台:spotlight、perfmon.exe
jmeter中可添加的性能指标
聚合报告:请求次数、平均响应时间、最小最大响应时间、错误率、吞吐量(每秒多少个请求)、接收发送请求的数量
性能测试分类
负载测试:数据在超负荷环境中运行,程序是否能够承担
强度测试:系统资源特别低的情况下软件系统运行情况是否正常
容量测试:确定系统可处理同时在线的最大用户数
性能测试目的
评估系统的能力、识别系统的弱点、系统调优、验证稳定性可靠性
测试实例
测试百度的网页,50个用户在10s之内同时访问百度的网页,查看tps,响应时间,错误率信息
用户登录后服务端进行验证,验证通过后,服务端系统就会为这次登录创建一个session,保存客户这次登录信息,通常保存在数据库中。响应信息中服务器会告诉客户端刚才创建的sessionid(Set-Cookie),在后续的请求中客户端发送请求都要带上这个sessionid(Cookie)。
一个测试计划等于一个测试场景,对应一个测试用例,有多少用例就构建多少测试计划。
查看结果树的取样器结果页面中性能测试关注的参数
Load time:2 从发出请求前到接收完所有响应的时间
Connetc time:0 jmeter和被测系统建立TCP连接的时间,包括3路握手时间(小到可以忽略)
Latency:2 从发出请求前到接收完第一个响应的时间
浏览器中勾选Disable Cache按钮
Loadrunner
1、安装
Loadrunner只能安装在windows,Loadrunner Generator负载生成器可windows可linux
注意事项:
1.安装前关掉所有杀毒软件和防火墙
2.安装到非英文目录
3.如系统为win7,则以管理员权限进行安装
4.安装完毕需破解,破解前把loadrunner相关程序全部退出
5.建议不要汉化,可能出现未知问题
2、基本组成
- 用户脚本(Virtual user generotor)
- 控制台(Controller)设计场景
- 压力生成器(Load Gengerator) 生成负载
- 结果分析器(Analysis)
Controller和Load Gengerator是在同一组件中,也可在开始菜单单独启动
自带测试环境
Web Tourshttp://127.0.0.1:1080/WebTours/协议探测器
录制模式
option->Recording
1.HTML-based script 对每个页面录制形成一条语句
2.URL-based script 将每条客户端发起的请求录制成一条语句,很多隐藏的信息都会录制下来