Jmeter基础
基本操作流程
- 新建测试计划
- 添加线程组
- 添加HTTP请求默认值
- 添加结果树
- 添加事务控制器(登录)
- 在事务控制器中添加HTTP请求
- 在该请求下添加正则表达式提取器(为后续接口提供token)
- 在该请求下添加Beanshell后置处理器(为后续接口提供token)
- 添加事务控制器(登陆后的模块接口)
- 在事务控制器中添加HTTP请求
- 可在该请求下添加响应断言
- …重复(9,10,11)步骤
关于HTTP请求中使用消息体
使用消息体时不好调用登录接口的${token},故选择使用-HTTP信息头管理器
Jmeter连接数据库进行增删改查操作
- JDBC Connection Configuration
- 随机变量
- JDBCrequest
文件上传或导入
抓到文件上传的接口后,需要在HTTP请求-参数中填入content-type以及在文件上传-MIME中填入content-type
文件下载或导出
在Benashell后置处理器中写下载脚本后可成功将文件下载或导出
文件下载脚本:
import java.io.*;
byte[] result = prev.getResponseData();
String file_name = "C:/apache-jmeter-5.3/bin/vehicleModel.xlsx";
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();
监听器
常用监听器:
-
查看结果树
作用:
查看结果树中绿色代表测试通过,红色代表测试失败。以结果树的形式显示测试结果。
查看结果树监听器放置的位置不同,得到的结果也不同。
在线程组下添加察看结果树,查看线程组下所有请求的结果;
放在具体某个请求下,只查看此请求的结果;
放在某个控制器节点下,则查看此控制器下节点执行的结果。
Sampler result(取样器结果)
Thread Name: 线组名称
Sample Start: 启动开始时间
Load time: 加载时长
Latency: 等待时长
Size in bytes: 发送的数据总大小
Headers size in bytes: 发送头大小
Body size in bytes: 发送数据的其余部分大小
Sample Count: 发送统计
Error Count: 错误统计
Response code: 返回码
Response message: 返回消息
Response headers: 返回头信息
Request(请求)
数据获取方式、路径、地址等以及传递的参数、cookie
Response data(响应数据)
响应加载的页面html,可选择不同的形式来查看,如:text,html,css,xpath等等 -
聚合报告
作用:
记录这次性能测试的总请求数、错误率、用户响应时间、吞吐量等,用以帮助分析被测试系统的性能。
报告中各字段
Label:HTTP Request请求名称;
#Samples:表示测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代1次,那么这里就显示对应的 HTTP Request的执行次数是10
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间;
Median:50%用户的响应时间小于此值,表示中位数;
90%Line:90%用户的响应时间小于此值;
95%Line:95%用户的响应时间小于此值;
99%Line:99%用户的响应时间小于此值;
Min:最小响应时间;
Max:最大响应时间;
Error%:本次运行测试中出现错误的请求的数量/请求的总数;
Throughput:吞吐量,默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似LoadRunner的Transaction per Second数KB/sec;
Received KB/sec :每秒从服务器端接收到的数据量;
Sent KB/sec:每秒发送多少KB的数据; -
图形结果
作用:
通过图形展示出本次性能测试数据的分布。 图形结果一般作为聚合报告的分析辅佐
No of Samples样本数目:总共发送到服务器的请求数(聚合报告中的TOTAL #Samples)。
Latest Sample最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
Average平均值:总运行时间除以发送到服务器的请求数。
Devation偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
Throughput吞吐量:服务器每分钟处理的请求数。
Median中间值:代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。 -
用表格查看结果
表中各字段
Sample:每个请求的序号
Start Time:每个请求开始时间
Thread Name:每个线程的名称
Label:Http请求名称
Sample Time:每个请求所花时间,单位毫秒
Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
Bytes:请求的字节数
样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数
平均:每个线程请求的平均时间
最新样本:表示服务器响应最后一个请求的时间
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。