Postman配置与部分脚本设置
1.postman下载:百度搜索Postman,从其官网下载即可:https://www.postman.com/
2.postman使用基础这里不再累赘,请参考:https://www.cnblogs.com/cocomoly/p/11725219.html
3.在postman左侧创建好需要测试的项目以及相关接口,如下图:
4.根据接口文档设置好相关入参,本次文档测试数据没有读取Excel,完全在postman内部进行设置,如果入参中有需要用到其他接口返回的参数,则需要把上一个接口返回的参数设置为环境变量,然后在本接口中进行调用,如下,token和imei均为登录接口所返回的参数,在房源接口中使用双花括号进行调用:
4.1.获取令牌并设置为环境变量代码如下:
1 var jsonData;
2 try {
3 jsonData = JSON.parse(responseBody);
4 //获取并设置token和userId
5 pm.environment.set("token", token值");
6 pm.environment.set("userId", userid值);
7 tests["token获取成功,token值为:" + jsonData.pager.content[0].token] = true;
8 tests["userId获取成功,userId值为:" + jsonData.pager.content[0].userId] = true;
9 } catch (err) {
10 tests["返回的JSON数据格式不正确,实际返回的响应体为:" + responseBody] = false;
11 console.error(err);
12 }
5.其中,Rre-request Script和Tests是测试中最重要的部分,Rre-request Script是请求前要执行的脚本,Tests中脚本是请求后要执行的脚本,要测试返回的结果是否正确,都在Tests中进行脚本编写,本人Tests中编写代码如下,该段代码通用性很强,每个返回参数都可以验证如下内容:
(1)返回体中是否包含某个字段
(2)包含字段的值是否符合预期(包括值是否正确和类型是否正确)
(3)该接口请求状态码,2xx,4xx,或5xx等,想验证其他状态码依然可以进行扩充
5.1.脚本如下(该脚本对比的预期结果是从excel中读取):
1 var state = responseCode.code;//获取返回状态
2 var number = (state.toString()).substr(0, 1);//将返回的number类型转为string类型,并获取第一位
3 switch (number) {
4 case '2':
5 test(); //2开头的状态,执行下面test函数
6 break;
7 case '4':
8 clientQue(); //4开头的状态,定义为客户端问题
9 break;
10 case '5':
11 serverQue(); //5开头的状态,定义为服务器问题
12 break;
13 default:
14 tests['测试不通过,状态码=' + state] = false; //如出现其他情况,则打印状态,并测试不通过
15 break;
16 }
17
18
19 function test() { //状态为200执行的函数
20 tests['接口请求状态码为:' + state + '--->RequestUrl为' + request.url] = true;
21
22 //需要验证的字段,取自Excel中
23 var success = (data.success);
24 var code = (data.code);
25 var msg = (data.msg);
26 var CheckPoint = (data.CheckPoint);
27
28
29 //获取返回的响应体
30 var jsonData;
31 try {
32 jsonData = JSON.parse(responseBody);
33
34 //success字段验证
35 if ("success" in jsonData) {
36 if (jsonData.success === success) {
37 tests["测试成功!" + "-->"
38 + "测试点:" + CheckPoint + ";[INFO]:"
39 + "预期结果(" + success + ")" + "-->"
40 + "实际结果(" + jsonData.success + ")"] = true;
41 }
42 else {
43 tests["测试失败!" + "-->"
44 + "测试点:" + CheckPoint + ";[INFO]:"
45 + "预期结果(" + success + ")" + "-->"
46 + "实际结果(" + jsonData.success + ")"] = false;
47 }
48 }
49 else {
50 tests["验证返回的响应体中包含success字段"] = false;
51 }
52
53 //code字段验证
54 if ("code" in jsonData) {
55 if (jsonData.code === code) {
56 tests["测试成功!" + "-->"
57 + "测试点:" + CheckPoint + ";[INFO]:"
58 + "预期结果(" + code + ")" + "-->"
59 + "实际结果(" + jsonData.code + ")"] = true;
60 }
61 else {
62 tests["测试失败!" + "-->"
63 + "测试点:" + CheckPoint + ";[INFO]:"
64 + "预期结果(" + code + ")" + "-->"
65 + "实际结果(" + jsonData.code + ")"] = false;
66 }
67 }
68 else {
69 tests["验证返回的响应体中包含code字段"] = false;
70 }
71
72
73 //msg字段验证
74 if ("msg" in jsonData) {
75 if (jsonData.msg === msg) {
76 tests["测试成功!" + "-->"
77 + "测试点:" + CheckPoint + ";[INFO]:"
78 + "预期结果(" + msg + ")" + "-->"
79 + "实际结果(" + jsonData.msg + ")"] = true;
80 }
81 else {
82 tests["测试失败!" + "-->"
83 + "测试点:" + CheckPoint + ";[INFO]:"
84 + "预期结果(" + msg + ")" + "-->"
85 + "实际结果(" + jsonData.msg + ")"] = false;
86 }
87 }
88 else {
89 tests["验证返回的响应体中包含msg字段"] = false;
90 }
91
92
93 } catch (err) {
94 tests["返回的JSON数据格式不正确,实际返回的响应体为:" + responseBody] = false;
95 console.error(err);
96 }
97 }
98
99
100
101 //客户端问题
102 function clientQue() {
103 tests['客户端问题(请求参数或方式错误)---测试失败---状态码为' + state + '。RequestUrl为' + request.url] = false;
104 }
105
106 //服务器或者网关问题
107 function serverQue() {
108 tests['服务器或网关问题---测试失败---状态码为' + state + '。RequestUrl为' + request.url] = false;
109 }
6.环境的设置
为了方便测试,我们一般需要配置一个该项目对应的环境,所有该项目的环境变量都设置在该环境中,如下我设置了一个名为:麦脉17环境 的环境,对应项目:麦脉-接口-买卖房源,所有该项目下的环境变量都设置在该环境下:
7.导出项目和环境
我们把需要测试的接口和相关配置,脚本,环境都设置好后,需要导出为json格式的文件方便后面使用
(1)项目导出:项目文件夹--->右键--->Export--->Collection v2.1 (recommended)-→点击Export
(2)环境导出:右上角齿轮(Manage Environments)-→点击对应环境的箭头
8.postman总结
导出文件样式如下:
至此,postman里相关的操作就到此结束了,一切的操作都为了最后导出可进行测试的项目和环境的json文件,后面一系列的自动化都会以这两个文件为基础,最后的测试结果也是根据这两个json文件而生成。





浙公网安备 33010602011771号