接口
1.1 接口包含
请求:请求行(请求方式,请求路径,http版本),请求头(Accept:游览器接受的数据类型;Accept
Encoding:游览器接受的数据压缩格式;Refere:请求来源;connect:游览器保持连接状态;host:请访
问的目标地址),请求文本(请求参数信息)
响应:响应行(状态码),响应头(Content-Encoding:服务器发送给浏览器的数据压缩类
型;Content-Length:服务器发送给浏览器的数据长度;Content-Language:服务器支持的语
言;Content-Type:服务器发送给浏览器的数据类型),响应文本
1.2 接口流程
拿到后端开发提供的接口文档,分析接口中的功能,请求方式,请求头,请求参数(参数是否必填,类
型,长度,是否唯一等),编写接口测试用例,最后使用postman工具进行接口测试
1.3 接口测试用例
用例编号,所属模块,用例功能,请求方式,请求头,请求体,请求路径,请求参数,预期结果,实际结果
2:postman
2.1 全局变量
通常情况下,我们共同使用的部分可以存放在全部变量里,调用的时候只需要{{变量名}}即可,适用全部的接
口
2.2 接口关联
将第一个接口设置断言,拿到返回体内容转成json对象,通过json表达式提取想要的值,将这个值设置全局
变量,在第二个接口中使用{{变量名}}代替,实现接口关联
// 获取响应体的文本内容
var resbody = responseBody;
console.log(resbody)
// 转成json对象
var jsonobj = JSON.parse(responseBody)
// 通过json表达式提取值
var pro = jsonobj.result.province
pm.globals.set("prodes", pro);
2.3 断言
用于预期结果和实际结果的对比
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("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);
});