接口参数化、在软件测试面试过程中、经常被问到:
简单的接口测试流程、多接口调用、接口之间参数传递、接口返回值的入参、接口长时间未响应怎么处理、接口用例和功能用例区别等等,在使用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表示取值的第二个…
缺省值:如果正则表达式没有匹配到值(正则表达式写错),则使用该默认值
在需要调用的接口请求中使用 ${变量名称}
调用正则提取器设置的变量名称值
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!