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文件而生成。

posted @ 2020-12-31 09:08  Camillezxl  阅读(360)  评论(1编辑  收藏  举报