理解:数据库连接控件,不会进行的具体的数据库操作。
实例截图:t018475d73918c0a457
注意事项:
需要和JDBC Request配合使用
t012e1422597df6c4fe
需要安装jdbc驱动,否则无法连接数据库
用户定义的变量
理解:用户自定义的变量,可用于存储接口路径等信息
实例截图:t016f9bb1d6e36c82fc
注意事项:
注意变量的作用域,不同线程间变量不共享
定时器(Timer)
理解:sampler(采样器)之前执行;如果只想应用于部分sampler,需要将定时器加入子节点;简单理解类似于loadrunner中的思考时间,控制sampler的间隔时间。
控件截图:
t011325f53018aeb16d
常用控件:
Constant Throughput Timer
理解:设置目标吞吐量,限定QPS的控件
实例截图:t011c03a2e5c18cfd3f
配置选项:
Target throughput(in samples per minute):目标吞吐量。注意这里是每分钟发送的请求数,因此,对应测试需求中所要求的20 QPS ,这里的值应该是1200 。
Calculate Throughput based on :有5个选项,分别是:
This thread only :控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的 target Throughput 乘以矣线程的数量。
All active threads : 设置的target Throughput 将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程。
All active threads in current thread group :设置的target Throughput将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和All active threads选项的效果完全相同。
All active threads (shared ):与All active threads 的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。
All cative threads in current thread group (shared ):与All active threads in current thread group 基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。
注意事项:
Constant Throughput Timer只有在线程组中的线程产生足够多的request 的情况下才有意义,因此,即使设置了Constant Throughput Timer的值,也可能由于线程组中的线程数量不够,或是定时器设置不合理等原因导致总体的QPS不能达到预期目标。
固定定时器
理解:请求间隔时间
实例截图:t01c071d0b3d8100b2d
注意事项:
需要注意的是,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间。
对于一个sampler来说,定时器相当于loadrunner中的pacing(理解就是一组请求操作的等待时间);对于"事务控制器"来说,定时器相当于loadrunner中的think time(单次操作的等待时间或间隔时间)
高斯随机定时器
理解:与固定定时器差不多,只不过时间范围可以设置一个指定范围随机。
实例截图:t0190683b70df65315b
Synchronizing Timer
理解:LR中的集合点,也就是说,sampler到这里会暂停,达到指定线程数后并发
实例截图:t01467375f3c08a317e
配置参数:
Number of Simulated Users to Group by:线程数量设置
Timeout in milliseconds:响应时间设置,单位毫秒
注意事项:
集合点需要设置在Sampler前,否则不会生效
前置处理器(Per Processors)
理解:sampler请求前执行的操作,可以是获取测试数据,修改参数等
控件截图:t01b66ae6b21b147c4c
常用控件:
Bean Shell PreProcessor
理解:Bean Shell编程设置
实例截图:t01e6806d5680b45c5et01ef1a3732e4f6d7d2
Simpler Timeout:
理解:设置simple的最大响应时间,与直接在Sampler中设置的区别就是,作用域不同
控件截图:t01cdc5a7f04ee4a421
Sampler
理解:请求,设置不同的request
控件截图:t014e58d1de2143cd8a
常用控件:
HTTP请求
理解:就是一次HTTP请求
实例截图:t01f1c62bccb69668a8
Test Action
理解:请求的执行动作,可放在Sampler后定义,即执行某一个请求后暂停等操作
控件截图:t0148220a1ffe3c879a
后置处理器(Post Processors)
理解:请求执行后的处理,与前置处理器相反
控件截图:t01a7667b5e3a241d86
常用控件:
正则表达式提取器
理解:当一个Sampler的Reponse中包含我们需要的参数的时候,我们可以通过该控件将参数提取出来
实例截图:t01b8f957922531e638
参数含义:
引用名称:将提取的参数转化为变量,该字段定义变量名称
正则表达式:匹配的正则,测试可用搜索引擎搜索在线正则验证测试结果
断言(Assertions)
理解:判断请求响应值的正确性的控件
控件截图:t0128df66534617e24c
常用控件:
响应断言:
理解:判断Reponse是否正确
实例截图:t01daef86db17de9382
注意事项:
断言要放在请求内
监听器(Listener)
理解:查看请求执行结果的控件
控件截图:t01f139eaaed5bb456b
常用控件:
图形结果
控件截图:t016c84f4af08f148b5
参数含义:
样本数目:总共发送到服务器的请求数。
最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量:服务器每分钟处理的请求数。
平均值:总运行时间除以发送到服务器的请求数。
中间值:代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
注意事项:图形结果本身会影响Jmeter的性能
查看结果树
应用:可用于调试,查看请求响应的数据,测试的结果,请求的内容。
控件截图:t0194a8694eda25fa1b
参数含义:
取样器结果实例:t015e9ac85dbfbacb5a
请求实例截图:t0195465a633e974f6d
响应数据实例截图:t01a7ee0c0fbf2c01d6
聚合报告
理解:
控件截图:t01691a8fb0b34edc26
参数含义:
Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
Jmeter函数
函数助手
打开位置:选项——函数助手
控件截图:t01ca3400b8a5a83c57
函数实例:
${__time(YMD)}:当前日期函数
${__time(YMDHMS)}:当前四件函数
${__MD5(${fkeystr_no_register})}:MD5加密函数
更多可查看函数助手的帮助页面
函数调用
选择想要使用的函数
输入想要使用函数的值
点击生成t0196e7d930207578dc
将所得字符串复制到要使用的位置
Jmeter属性与变量
一、Jmeter中的属性:
1、JMeter属性统一定义在jmeter.properties文件中,我们可以在该文件中添加自定义的属性
2、JMeter属性在测试脚本的任何地方都是可见的(全局),通常被用来定义一些JMeter使用的默认值,可以用于在线程间传递信息。
3、JMeter属性可以在测试计划中通过函数 _P 进行引用,但是不能作为特定线程的变量值。t012a39dff3aa178c49
4、JMeter属性可以通过_setProperty 函数来定义JMeter属性
5、JMeter属性是大小写敏感的