定时器(Timer)
理解:sampler(采样器)之前执行;如果只想应用于部分sampler,需要将定时器加入子节点;简单理解类似于loadrunner中的思考时间,控制sampler的间隔时间。控件截图:常用控件:
Jmeter函数
函数助手
打开位置:选项——函数助手控件截图:
函数实例:${__time(YMD)}:当前日期函数
${__time(YMDHMS)}:当前四件函数
${__MD5(${fkeystr_no_register})}:MD5加密函数
更多可查看函数助手的帮助页面
函数调用
选择想要使用的函数
输入想要使用函数的值
点击生成
将所得字符串复制到要使用的位置
Jmeter属性与变量
一、Jmeter中的属性:1、JMeter属性统一定义在jmeter.properties文件中,我们可以在该文件中添加自定义的属性
2、JMeter属性在测试脚本的任何地方都是可见的(全局),通常被用来定义一些JMeter使用的默认值,可以用于在线程间传递信息。
3、JMeter属性可以在测试计划中通过函数 _P 进行引用,但是不能作为特定线程的变量值。4、JMeter属性可以通过_setProperty 函数来定义JMeter属性
5、JMeter属性是大小写敏感的
6、WorkBench中的属性查看组件:
WorkBench右键—>Add—>Non Test Elements—>Property Display 二、Jmeter中的变量:1、JMeter变量对于测试线程而言是局部变量。
2、在不同测试线程中,JMeter变量既可以是完全相同的,也可以是不同的。
3、JMeter变量引用方法:${name}
4、JMeter变量是大小写敏感的
5、如果有某个线程更新了变量,那么仅仅是更新了变量在该线程中复制的值
6、Jmeter中定义变量的地方:
a) 测试计划(Test plan),在右边的面板上添加User Defined Variables
b) 线程组,右键选择 配置元件( config element)–>User Defined Variables
c) 通过前置或后置处理器生成的变量
d)使用csv参数化的变量
注意:通过 a 和 b 两种方式定义的变量,在JMeter启动时对这个测试计划都是可见的。如果同一个变量在多个 b 中被定义,那么只有最后一个定义会生效。一旦某个线程启动后,那么整个变量集合的初始值就会被复制到该线程中。其他测试元件,例如 c 或者 d 可以被用来重新定义变量,这些重定义仅仅影响当前线程
Jmeter录制回放
打开badboy,点击录制按钮
输入网址,在网页中操作
导出脚本(File——Export to Jmeter)
用Jmeter打开对应脚本
BadBoy录制回放
Jmeter使用
模块名称(测试计划):每个模块独立划分为一个jmx文件(例如登陆模块),最好与接口类一一对应。对应的服务器信息,数据库信息等可存在这里。
数据准备:用于测试数据的准备(例如账号信息)。
结果查看:用于放置需要查看结果的控件(例如结果树)。
线程组:所有的接口测试用例放在线程组下,集中定义线程等信息
获取线程对应测试数据:用于获取针对独立线程的测试数据,例如在数据准备里面获得了账号信息,在这里根据账号信息去数据库获取对应的名称,ID等信息。
请求名称:用简单控制器为文件夹,内有不同的请求。简单控制器为一个独立的接口,不同请求对应不同的代码路径(例如成功请求,失败请求等)。建议请求名称最好用英文形式,否则后期持续集成或许会出现问题(no zuo no die!)。
在每条请求内放置正则匹配(用于应对需要返回值作为下次请求的参数的情况)以及断言。