脚本增强:为了实现业务成功,一般会使用参数化和关联
参数化:数据只能够运行一次就不能用了,数据是有变化的,典型如:注册,删除,要确保每个用户每次操作都可以产生不同的测试数据
计数器:如果需要引用的数据量较大,且要求不能重复或者需要自增,那么可以使用计数器来实现, Maximum value:计数器的最大值,如果超过最大值,重新设置为初始值 (starting value),默认的最大值为Long.MAX_VALUE,2^63-1(如果持续压测,建议最好不要设置最大值)
---------------------------------------------------------------------------
线程数5,循环次数10,加上计数器设置递增,表示注册50个用户,且是不重复的
-----------------------------------------------------------
参数化(4种方法):
函数助手:_CSVRead、threadNum(每个用户)、time(每次操作)、偶然可能出现同一个用户的两次操作时同一个时间戳,可以再次加入随机数解决
CSV Data Set Config:CSV数据控件(方便修改添加可改变的数据)
User Variables:用户参数(用于测试中会改变的地方)
Uer Defined Variables:用户定义的变量(用于迭代测试中基本不会改变的地方)
1.用户定义的变量 新增变量:
引用变量:
2.用户参数 新增变量、用户
引用参数:
修改线程数 线程数 :虚拟用户数。 一个虚拟用户占用一个进程或线程。 设置多少虚拟用户数在这里也就是设置多少个线程数
新增断言:
3.CSV Data Set Config
新增文件格式为csv、uft-8 的表格,表头是变量名(自己可以随便取),对应的变量值根据实际需求赋予,需用自带的笔记本打开看格式是否正确,也可用制表符进行断开识别,这种方法适合需要变更大量不同数据的形式
引用变量,一定要将参数进行转义,编码栏打勾,不管是参数值里还是身体或者请求方式等都可以以${ 变量名}方式调用变量值
添加断言
CSV 数据文件设置,变量名称用中文逗号隔开,忽略表头,分隔符为逗号,制表符/t,线程数需要修改为3
4.函数助手:_CSVRead
新增文件格式为csv的变量表格,不需要表头
新增函数助手,0表示第一列
引用参数,表达式从函数助手中复制
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
关联:后面的请求需要用到前面的响应作为数据,它们之间存在关联
关联的数据特征:
1.要做关联的数据,肯定是个参数里的值
2.关联的数据是动态变化的(没有规律,也比较长)
3.关联的数据不是用户输入的,而是来源于前面的响应
什么时候需要关联?
1. 服务器返回的动态变化而且对业务有影响的需要关联。
2. 回放脚本看是否正确,检查下脚本,是否有动态数据影响
3. 一大串字符串,每次请求参数是否有变化
4. 可以找开发问问,接口是开发做的,最清楚了
JSON提取器作关联:
获取下一个用例需要测试的前置条件
使用提取器获得参数值
调用上一个用例结果的参数值
更改jmeter配置文件,使其响应结果能正常显示中文
边界提取器做关联:
获取前置条件---添加边界提取器获得参数值---在下一个用例中调用参数值
正则表达式提取器作关联:
懒惰模式正则 "(.*?)" .代表任意一串值 *代表n位字符 ?代表最近的取值
获取前置条件---添加正则表达式提取器获得参数值---在下一个用例中引用参数值
json是一种轻量级数据交换格式,易于人阅读和编写,同时也易于机器解析和生成
json path 可以检验自己的表达式是否正确
出现错误要查看报错,是服务器相应的正常报错还是自己弄错了,然后用不同的办法尝试解决问题,根据报错提示百度也可以