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,运行后查看结果树,响应断言验证失败

posted @ 2020-12-31 14:38  Mr.Chiang  阅读(416)  评论(0编辑  收藏  举报