测试脚本文件预览
新建测试计划
1、设置setUp线程组,用来一次获取用户token,方便之后HTTP请求使用
setUp线程组运行于所有线程组前面,再设置执行一次,用来进行获取token等操作就特别方便
HTTP信息头可以用来设置token,cookie等比较方便,放在HTTP下面就是只作用与这个请求,放在线程组下面就是作用于这个线程组下面所有的HTTP请求
HTTP请求默认值用来统一配置所有HTTP请求的协议,端口,域名等比较方便
2、登录-fbi,用来获取fbi的token,后面要拿这个fbi的token来登录作业管理系统
该填的填上
用JSON提取器提取登录作业管理系统需要的参数
3、登录作业管理系统,获取用户的token值
- HTTP请求,正常填写,请求体参数通过 ${} 引用前面JSON提取器提取的变量值
- JSON提取器,用来提取登录作业管理系统获取的用户的token值
- 用BeanShell后置处理程序配合 setProperty函数将token值升级为全局变量,方便跨线程组的变量引用
${__setProperty(token,${access_token},)}
4、创建调试取样器,查看结果树,汇总报告
- 调试取样器可以用来看一些变量值
- 查看结果树,来看请求报文,响应报文等信息
- 汇总报告,观察性能
5、创建用来压测的线程组
线程组的简单介绍
【线程数】: 设置发送请求的用户数。
【在采样器错误后要执行的动作】: 表示,当一个测试计划里有多个线程组或者一个线程组里有多个采样器,当一个采样器执行出错后,接下来的处理,如果不是有特别的场景要求,默认是继续就可以。
【Ramp-Up Period(in seconds)】: 创建完所有线程的时间,防止对服务器有太大的负载。
如果选择了10个线程,并且ramp-up period是10秒,那么JMeter将使用10秒加载10个线程,也就是平均1秒加载一个虚拟用户。
启动并运行。每个线程将在前一个线程启动后1秒后启动。如果将此设置为0,
则表示10个用户同时并发,也就是所有线程在统一时间启动。Ramp-up需要足够长的时间来避免在开始测试时产生太大的负荷,并且有足够短的时间使最后一个线程在第一个线程结束之前运行。
【循环次数】: 线程组的每个线程数请求的重复次数。如果次数设置为1,那么JMeter只执行测试计划一次,如果设置成永远,线程组里的线程会一直在执行。
【调度器】: 调度器是用来执行一些特殊场景,勾选了调度器,就可以设置线程运行的【持续时间】和【启动延迟】项。
【持续时间】: 测试计划持续时间。
【启动延迟】: 测试计划延迟启动时间。
6、配置线程组
7、配置信息头管理器
- ${__property(token,)} 就是用户的token(上面新建的全局变量)
8、 配置HTTP请求-新建作业票(用来压测的接口)
填写要测的接口信息,参数准备好(可以扩展csv)
9、配置响应断言
apply to:是应用范围,设定匹配的范围
Main sample and sub-samples:匹配范围为当前父取样器,及子取样器
Main sample only :仅当前父取样器
Sub samples only:仅子取样器
JMeter Variable:变量值进行匹配
要测试的响应文字:针对响应数据不同部分进行匹配
(1)响应文本:响应服务器返回的文本内容,http协议排除header部分
(2)响应代码:匹配响应代码,比如http请求中‘200’代表成功
(3)响应信息:匹配响应信息,处理成功返回‘成功’或者“ok”字样
(4)Response Header:匹配响应头中的信息
匹配规则:
包括:响应内容包括需要匹配的内容就算成功
匹配:响应内容要完全匹配匹配内容,不区分大小写
equals:完全相等,区分大小写
substring:响应内容包括匹配内容即为成功。
可以通过添加断言结果来查看断言的执行情况。
执行结果:
如果接口响应数据可以与断言匹配上,则测试用例通过,否则不通过
可以通过断言结果,查看断言执行情况。
10、创建查看结果树和聚合报告
聚合报告参数:
时间单位都是毫秒,1秒等于1000毫秒
平均值:平均响应时间,所有请求的平均响应时间。
中位数:50%的用户响应时间不超过这个值。
99% Line: 99%的用户响应时间不超过这个值(因为最慢的几个数据没有什么参考价值)。
Error%:异常百分比。(错误请求的数量/请求的总数)
Throughput:吞吐量,默认情况下每秒完成的请求数。
Received KB / sec:接收数据。
11、非GUI运行测试脚本,生成测试报告
jmeter -n -t 百度搜索.jmx -l report.jtl -e -o report
- -t后跟的是脚本的名称,如果脚本不在当前目录下,可以在加绝对路径执行
- -l是生成jtl文件可以导入到jmeter界面模式的聚合报告查看
- -o后跟的是生成测试报告的文件夹。