接口参数化、在软件测试面试过程中、经常被问到:
简单的接口测试流程、多接口调用、接口之间参数传递、接口返回值的入参、接口长时间未响应怎么处理、接口用例和功能用例区别等等,在使用postman做接口测试的时候,在多个接口的测试中需要前一个接口的返回值、作为下一个接口的入参
一、在请求的时候会遇到需要带TOKEN的请求,就需要先请求一次获取TOKEN 的请求再将返回的值粘贴到下次要请求的地方,这样很麻烦
可以使用这种接口参数化的方式去处理
1、拿到上一个接口的返回值、存储到变量中
2、将返回值设置成环境变量或者全局变量 globals
3、设置下一个接口的参数形式
具体操作流程
- 发送接口成功、接收响应数据
获取响应报文中的json数据
var json = JSON.parse(responseBody);
设置全局变量
pm.globals.set("appId",jsonData.data.appId);
pm.globals.set("scene",jsonData.data.scene);
-
先运行第一个接口、将环境变量的值保存
-
在第二个接口中引用变量、一般用{}方式取值
用{{scene}} 和{{appId}} 就可以取到 scene和appId的值了
如果是get请求直接在url里面{{变量名}} 引用
Post请求当时的、在body中引用
二、正则表达式提取器
一个登录接口响应数据中的token值,
在后续的接口(比如:创建用户)中需要用到。
jmeter 登录后的响应数据:
{
"id":167,
"username":"laownag",
"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InhpYW9oZWkiLCJpZCI6NzY3LCJpYXQiOjE1OTIzNjQ3OTksImV4cCI6MTY3ODc2NDc5OX0.ObD1Qr4WPpF_AZW8AR0joSKTrYArKnPoq0Fbtrhsp44"
}
在察看结果树中选择RegExpTester(正则表达式测试器),
输入提取值的正则表达式,点击Test(测试)即可查看数据是否可提取。
登录接口发送完成后、 右键添加 --> 选择后置处理器 --> 正则表达式提取器
正则表达式提取器填写的值
正则表达式取值: 由于取得token值在登录的响应数据中是以 “token”:" 开头,中间()填写的是正则表达式,以 " 结尾的。
正则表达式注释: 可写多个正则表达式,用逗号隔开
. 表示匹配任意字符
- 表示匹配一个或者多个,不可以匹配空字符
- 表示匹配零个或者多个,可以匹配空字符
? 表示匹配0次或1次
模板解释:1 11 表示取第一个正则表达式的值,多个正则时用1 11,2 22
匹配数字:0表示随机取值;1表示取值的第一个;2表示取值的第二个…
缺省值:如果正则表达式没有匹配到值(正则表达式写错),则使用该默认值
在需要调用的接口请求中使用 ${变量名称}
调用正则提取器设置的变量名称值
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!