JMeter接口测试-常用配置
1.添加CSV Data Set Config可以实现每次调用API传不用的参数
准备测试数据,保存在txt或者CSV文件里
需要参数化的变量用${变量名}替换
2.函数助手,可用于生成GUID,随机数等
例如最小值输入1,最大值输入100,用${__Random(1,100,)}替换变量,调用API时,被替换的变量每次会取(1,100)内的随机数
3.Jmeter关联参数,例如把接口1返回的access token值取出来后调用接口2,下面介绍正则表达式提取参数值
HTTP请求1->添加->后置处理器->正则表达式提取器
举例:接口1提取access_token
引用名称:自己定义的,这里注意下,不管提取一个还是多个值,引用名称都只能定义1个
正则表达式:
()表示括起来的部分就是要提取的
.表示匹配除换行外的任何字符串
+表示代表+号前面的字符必须至少出现一次(一次或多次)
?表示前面的字符最多可以出现一次,在找到第一个匹配项后停止(0次或1次)
(.*)表示贪婪模式,匹配尽可能多的字符
(.*?)或(.+?)表示匹配尽可能少的字符,一旦匹配到第一个就不往下走了
模板:若提取一个值,模板写成$1$;提取两个值,写成$1$$2$;提取多个值,通用模板:$1$$2$...$n$ (n大于等于3)
匹配数字:表示取响应数据里匹配到的第几个值,有的API可能会返回多个命名相同的值,0代表随机取,1代表取第一个,2代表取第二个,以此类推
缺省值:如果参数没有取到值,那默认给一个值让它取
提取一个参数值,引用的地方用${引用名称}替换
提取多个参数值,例如从name = "file.name" value = "readme.txt"中提取file.name和readme.txt,正则表达式:name = "(.+?)" value = "(.+?)"
假设:
引用名称:MYREF
模板:$1$$2$
如下变量的值将会被设定:
MYREF: file.namereadme.txt
MYREF_g0: name = "file.name"value = "readme.txt"
MYREF_g1: file.name
MYREF_g2: readme.txt
在需要引用的地方可以用${MYREF},${MYREF_g0},${MYREF_g1},${MYREF_g2}进行使用
接口2引用access_token
点击启动按钮运行,检查结果树,发现http请求2中的access_token值等于http请求1响应数据里的access_token值,说明取值成功了
补充:在结果树里选中http请求1,选择RegExp Tester模板,输入正则表达式,点击Test按钮,可以检查正则表达式匹配是否正确
4.响应断言,用于检查响应数据是否符合预期
http请求->添加->断言->响应断言
例如我期望http请求1的返回结果里包含access_token
点击启动按钮运行,查看结果树,绿色表示断言验证通过
假设我在响应断言里输入123,运行后查看结果树,响应断言验证失败