美文网首页工具
Postman使用手册之实战

Postman使用手册之实战

作者: 多夏_zoey | 来源:发表于2018-11-05 15:49 被阅读88次

主要介绍使用postman进行web api接口主流程场景的回归测试及测试过程中数据构造;主要用到的是get/post请求;以及使用过程中常用的参数化,简单的tests检查点以及如何取登录后的cookies

一、环境准备

1)在chrome中安装插件postman interceptor,这个截图是我已经安装好的

2)安装postman app

二、使用postman拦截post/get请求

1)打开Request Capture开关,并添加filter过滤你希望拦截的请求

2)启动postman app

3)postman中的interceptor开关打开

4)在chrome浏览器操作,发现请求被拦截在postman的history下

5)在collection下新建一个collection

点击切换到history下,点击请求后面的+,直接把请求放到刚刚新建的collection中,方便后期调试

6)导出保存的请求文件

三、调试及参数化post/get请求

以上通过interceptor插件安装的postman app是插件版本的,没有控制台窗口,不方便调试,此时可以在postman官网重新下载个非插件版的app,直接启动这个app

1)导入之前保存的脚本

2)参数化可变的值,从environment文件读取变量

PS:postman读取环境变量常见的有4种,本篇介绍从environment文件中读取

点击manage environments->点击add

然后编辑刚新建的环境变量文件,输入需要引用的变量名和变量值,点击update

在请求中引用环境变量,默认方式{{变量名}}

3)在Pre-request Script 和Tests编写脚本

Pre-request Script 是在请求发送前执行,Tests主要用于添加校验点以及获取response body中值作为下个请求中的参数;

PS:postman常用的方法,可参看官方文档

https://www.getpostman.com/docs/v6/postman/scripts/test_examples

4)调试打印变量,使用cosole.log(需要打印的内容)

 首先在Tests中使用cosole.log()方法,比如

打开console

点击send发送请求,发现控制台会打印出值

四、runner 运行collection

点击runner-->选择需要执行的collection-->选择需要用到的环境变量文件-->设置运行参数

PS:常见4类变量作用域:

Global: 全局变量,postman中所有请求都可以访问或者修改;

Environment: 构造请求时可以选择使用某个Environment,这样就可以访问或者修改该Environment下的所有变量;

Local: 脚本中定义的变量,只对脚本的当前作用域有用;

Data: 只有在使用 Collection Runner 的时候,可以通过导入 Data Files 来构造当前测试集中用到的数据。

作用域:Global<Collection<environment<local

1)关于变量引用遇到的问题

如果environment设置的变量,collection运行结束后environment中值无法变更

参考:https://www.cnblogs.com/majunBK/articles/9447021.html

原因:runner运行设置前没有勾选keep variable value,如果不勾选keep variable value,则运行Collection Runner中修改的任何变量都不会影响Postman主应用中对应的环境变量值,在Collection Runner运行完成后恢复environment原始的值

如果运行时勾选keep variable value,则Collection Runner运行完成后Postman主应用中对应的环境变量值变更,主要使用场景:比如第一个collection执行结束后环境变量值需要变更作为第二个collection执行环境变量值的输入

2、遇到的问题

1)runner时报错Data unavailable(Only data about the top 10 historical runs is stored)

详细原因:https://www.jianshu.com/p/b6e934e4601e

可能解决的办法:

1)调整请求执行顺序

2)在容易出现这个错请求的上一个请求tests中加等待时间

setTimeout(()=>console.log('等待'), 3000);

3、常用的方法总结

参考文档https://www.getpostman.com/docs/v6/postman/scripts/test_examples

1)取cookies里面的token

  var token = postman.getResponseCookie("a9a68f4fefd3b693f10be4a89799dc48").value

  console.log('token123',token);

  pm.environment.set("token", token);

2)环境变量

//清楚上一次执行保存的值

pm.globals.unset(onlineTradeNo);

//将订单号传入环境变量

pm.globals.set("onlineTradeNo",onlineTradeNo.data[0].tid);

//获取环境变量

pm.globals.get("AdminIdOne");

3)返回状态校验200

//校验response返回200

tests["Status code is 200"] = responseCode.code === 200;

4)获取response里面的tid

//获取response的body中生成的订单号,如果不是数组的话可直接取

var onlineTradeNo = JSON.parse(responseBody);

console.log("onlineTradeNo",onlineTradeNo.data[0].tid);---数组写法

console.log("onlineTradeNo", onlineTradeNo.data.tid);---非数组

5)从环境变量获取数组中1个值

//取环境变量中待审核的订单状态

var array=pm.environment.get("data_entry");

var value=JSON.parse(array)[0];

// console.log("value is"+" "+value);

//校验状态是否是期望值是否=audit

pm.test("applyStatus is audit", function () {

    var jsonData = pm.response.json();

    // console.log(jsonData.data.applyStatus);

    pm.expect(jsonData.data.applyStatus).to.eql(value);

});

6)Tests中设置等待时间

setTimeout(()=>console.log('等待'), 3000);

7)在Tests中通过设置脚本控制API的执行顺序

参考文档:https://www.jianshu.com/p/a3b4794ab283

当前请求Tests中添加:postman.setNextRequest('下一个需要执行请求名称')

最后1个请求Tests中添加:postman.setNextRequest("null")

8)for循环的使用,比如根据一个出库单可以查询出2条库存流水,需要把库存流水值相加

//获取出库单(可能是多条)和出库数量(相加)

var DN=pm.environment.get("deliveryOrder");

var number=parseFloat(pm.environment.get("delivery_num"));

var newstocks=0;

for(var i in jsonData.data.data){

    if(jsonData.data.data[i].relatedNo == DN){

    newstocks += jsonData.data.data[i].newChangeStocks;

   }

}

  pm.expect(newstocks).to.eql(number)

相关文章

  • PostMan使用手册

    Postman 使用手册系列教程: Postman软件安装Postman使用手册1——导入导出和发送请求查看响应P...

  • Postman实现接口数据监控

    目录 Postman代理 实战――APP 实战――web 一、postman内置代理 postman有一个可以捕获...

  • Postman使用手册之实战

    主要介绍使用postman进行web api接口主流程场景的回归测试及测试过程中数据构造;主要用到的是get/po...

  • [转载]Postman全教程

    Postman之Settings Postman小技巧与快捷键 Postman之集合(collections) P...

  • Postman

    目录 基础 接口测试简介,接口测试流程,接口测试用例设计,实战接口介绍 Postman简介和安装 Postman接...

  • Postman实战

    一、入门介绍 一款强大的网页调试与发送网页HTTP请求的工具。 1、版本 版本 Native APP: 优势1:可...

  • Mastering HTTP侧

    Http调试工具Postman使用 Postman Postman测试接口之JSON结构化数据提交 Postman...

  • Postman使用手册

    发送请求和查看响应 发送请求 Postman的界面分为左边的侧边栏和右边的请求构建器两部分。请求构建器允许你可以快...

  • Postman使用手册

    导读: 现在web测试和移动开发,长长回调用服务器提供restful接口进行数据请求,为了调试,一般会先用工具进行...

  • postman使用手册

    1、环境变量与全局变量 1)环境变量可以设置多组,但全局变量只能设置一组(Gloabs) 2)环境变量的优先级比全...

网友评论

    本文标题:Postman使用手册之实战

    本文链接:https://www.haomeiwen.com/subject/otysxqtx.html