JMeter性能测试
影响性能测试指标:响应时间、用户并发数、吞吐量、系统性能计数器、思考时间
多:用户并发数
快:响应时间
好:稳定性
省:资源使用率
文档+fiddle
录制脚本方法:
1.jmeter也有自己的代理,录制脚本前,我们只要启动好代理,手动通过浏览器来录制,录制完毕停止代理-------代理服务器录制(设置浏览器和jmeter 的http代理服务器)
提示:1.直接保存jmx文件 2.需要人为的调试脚本 3.录制https需要设置
https的录制:第一步:启动代理服务器
第二步:对浏览器配置证书:chrome浏览器为例:设置——》隐私设置和安全性——》安全——》设备管理证书——》受信任的根证书,导入证书(导入的证书是启动代理服务器时产生的证书)
第三步:启动浏览器的代理
第四步:Jmeter导入证书:选项——》SSL管理器——》选择JMeter/bin下的文件
第五步:开始录制https脚本,jMeter弹出的密码为:password
2.badboy录制:badboy测试工具通过协议包进行数据交换,响应速度非常快,不需要代码输入,直接操作网址录制对应脚本(不建议用)
提示:可直接导出jmx文件
3.Fiddler:通过浏览器访问测试网站,同时Fiddler抓包工具,获取抓包数据(导出jmx文件),手动去Jmeter开发脚本
jmeter常用方法:
jmeter运行方法:从上至下,按顺序执行
1.JMeter配置元件
http cookie管理器:用户获取cookie,直接创建就可以获取cookie,不用填写任何数据(管理器放在请求里,只对请求有作用)
http请求默认值:用于填写默认的协议、ip、端口号
2.JMeter监听器元件
查看结果树:分析查看具体请求的详情:1.请求头、请求体、响应头、响应体
2.在做性能的场景时:分析错误请求的原因
聚合报告:汇总统计:请求数、响应时间(平均的 90% 90% 99% min max) 单位是ms、错误率(越低越好)
吞吐量(越高越好)、发送/接收(带宽)
用表格查看结果:以表格的形式进行查看、主要看启动时间
图形结果:主要看整体效果
3.其他常用元件
前置处理器:请求发出去之前执行的控制器,比如:加密(md5)、
后置处理器:请求发出去之后执行的控制器,比如:提取数据
定时器:1.思考时间--固定定时器
2.同步定时器--集合点
3.随机定时器
4.吞吐量定时器
断言:判断返回的结果是否正确(需要对哪个请求做断言,就放到哪个请求下面)
4.逻辑控制器
- 逻辑控制器可以控制sample(采样器)的执行顺序
- 控制器需要和采样器一起使用,否则控制器就没有什么意义
- 放在控制器下面的采样器会被当做一个整体,执行时会被一起执行,当禁用掉控制器,下面的采样器就会没有作用
- JMeter逻辑控制器可以对元件的执行逻辑进行控制,除仅一次控制器外,其他可以嵌套别的种类的逻辑控制器(相当于逻辑控制逻辑)
JMeter中的Logic Controller可以分为:
1.控制测试计划执行过程中节点的逻辑执行顺序,如:Loop Controller、if Controller等
2.对测试计划中的脚本进行分组,如:Simple Controller、事务控制器
3.用来控制该控制器下面元件的执行次数,如:Throughput Controller
4.1 简单控制器
作为一个模块化的分区使用,是最基本的控制器,对Jmeter测试运行没有任何影响,可以将某些请求归集在一个简单控制器中,视为一个模块,使得脚本更加清晰
4.2 循环控制器
用于控制执行次数
4.3 交替控制器
交替执行控制器下面的操作
4.4 仅一次控制器
对于该控制器下面的操作,仅仅执行一次
4.5 随机控制器
对于该控制器下面的操作,随机执行
4.6 switch控制器
- 该控制器可以控制它里面的请求根据某些规则在不同num时选择控制器下的对应数字位的不同sampler
- 一般可以用在模拟多线程同时操作不同请求的测试场景
4.7 事务控制器
事务控制器下面的操作要么全部成功,要么全部失败(相关联测试用例)
4.8 吞吐量控制器(Throughput Controller)
-
Throughput Controller:吞吐量控制器,用来控制该控制器下面元件的执行次数,与控制器吞吐量的功能无关(Constant Throughput Timer可以控制吞吐量)
-
Throughput Controller有两种模式:Total Executions(单位为:次)和Percent Executions(单位为:%)