全局变量的使用
描述:通常情况下,我们共同使用的部分可以存放在全部变量里,调用的时候只需要{{变量名}}即可,适用全部的接口
环境变量的使用
描述:公司中不同的环境,配置不同环境的数据,调用的时候只需要{{变量名}}即可,适用当前环境的接口
接口关联
面试官的问题
1:接口测试中,接口关联如何实现
2:接口测试中如何实现上一个接口返回值为下一个接口的参数
接口关联的方式:json提取器
实现方式:json提取
// 返回值转成json对象
var jsondata=pm.response.json()
console.log(jsondata)
// 通过json表达式提取值
var doer = jsondata.result.city
console.log(doer)
// 设置全局变量
pm.globals.set("cs", doer);
// 获取响应体的文本内容
var resbody = responseBody;
console.log(resbody)
// 转成json对象
var jsonobj = JSON.parse(responseBody)
// 通过json表达式提取值
var pro = jsonobj.result.province
pm.globals.set("prodes", pro);
话术:
将第一个接口设置断言,拿到返回体内容转成json对象,通过json表达式提取想要的值,将这个值设置全局变量,在第二个接口中使用{{变量名}}代替,实现接口关联
断言
描述:经常用于预期结果和实际结果的对比
在postman中经常使用的断言有哪些
Tests响应断言的几种方式
(1)Status code:code is 200 (校验响应头是否包含某个值)
(2)response body:contains string (校验返回结果中是否包含某个字符串)
(3)response body:Json value check (校验返回结果中某个字段是否等于某个值)
(4)response header:content-type header check (校验响应头是否包含某个值)
(5)response time is less than200ms (校验响应时间是否少于200ms)
(6)response body:Is equal to string (校验返回结果中是否等于该字符串)使用少
演示
验证接口中状态码
pm.test("验证状态码", function () {
pm.response.to.have.status(200);
});
// 验证返回体是否存在该字符串
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("Return Successd!");
});
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.error_code).to.eql(0);
});
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
pm.test("Content-Type is present", function () {
pm.response.to.have.header("host");
});
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(10);
});
动态参数
描述:经常用于参数不能重复的数据
{{$timestamp}}:生成当前时间的时间戳
{{$randomInt}}:生成0~1000的随机数
{{$guid}}:生成随机的guid字符串