jmeter 添加 header
需要在线程组里面添加配置元件 —HTTP 信息头管理器
jmeter 上传文件
jmeter 参数化
入参经常变化的话,则可以设置成一个变量,方便统一修改管理;如果入参要求随机或可多种选择,则通过函数生成器或者读取文件形成一个变量。所以参数化有三种方式:用户定义的变量、函数生成器、读取文件。
用户定义的变量
需要添加配置元件 - 用户定义的变量。
函数生成器
需要用到函数助手功能,可以调用函数生成一些有规则的数据。常用的几个函数有_uuid、_random、_time。_uuid 会生成一个随机唯一 的 id,比如在避免 java 请求重发造成未处理数据太多的情况,接口请求可加一个唯一的请求 id 唯一的响应 id 进行一一对应;随机数_random,可以 在你指定的一个范围里取随机值;取当前时间_time,一些时间类的入参可以使用,如 {**time (,)} 是生成精确到毫秒的时间戳、{**time (/1000,)} 是生成精确到秒的时间戳、${__time (yyyy-MM-dd HH[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zRJunPU4-1691215558097)(https://cdn.learnku.com/assets/images/emoji/mm.png)]ss,)} 是生成精确到秒的当前时间。
从文件读取
需要在线程组里面添加配置元件 - CSV Data Set Config
其中 Recycle on EOF: 设置 True 后,允许循环取值
具体的例子如下所示:
jmeter 断言
jmeter 断言用来检测响应返回的结果和我们预期的是否一致。若针对整个线程组的话,则在线程组下添加断言 - 响应断言;若只是针对某个请求的话,则在请求下添加断言 - 响应断言。
4、jmeter 关联
接口请求之间存在参数调用,为了保存这个参数,建立 jmeter 关联。比如登陆接口和购买商品接口,购买商品接口就需要登陆接口返回的 token 等登陆信息,jmeter 关联就可以保存这个 token 信息,方便购买商品接口使用。
jmeter 关联可以通过二种方式来完成,获取到返回结果中指定的值。它们分别是正则表达式提取器、 json path extractor。
(1)正则表达式提取器
若想获取的返回值未匹配到,可以把正则表达式两边匹配的数据扩大点。
a. 关于正则表达式
():括起来的部分就是要提取的。
.:匹配除换行外的任何字符串。
+:代表 + 号前面的字符必须至少出现一次(一次或多次)。
?:代表?前面的字符最多可以出现一次,在找到第一个匹配项后停止(0 次或 1 次)。
:代表号前面的字符可以不出现,也可以出现一次或者多次(0 次、1 次或者多次)
(.):贪婪模式,匹配尽可能多的字符
(. ?)或(.+?):匹配尽可能少的字符,一旦匹配到第一个就不往下走了。
b. 关于模板
若想提取多个值的话,比如是 a 和 b 这两个值,则可以写成:1 112 22。无论要提取多少个值,引用名称就是一个的,比如名称为 id,i d g o : 获取整个字符串 a b , {id_go}: 获取整个字符串 ab,idgo:获取整个字符串ab,{id_g1}:获取的是 a,${id_g2}:获取的是 b。