Postman高级应用——串行传参和动态传参详解

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件
html

用Postman作接口测试的时候,要把多条用例一块儿执行,就须要把用例链接起来,一次性执行json

 

目录api

串行传参微信

动态传参app

 

使用的接口是微信公众号开发文档里面的接口,详细请看开发文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432dom

首先须要获取到接口测试号,开始开发>接口测试号申请>得到appID和appsecret,位置为:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421137522post

其次获取access_token测试

接口调用说明:ui

https请求方式: GET,spa

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
输入appID和appsecret获得access_token,以下图所示:

 

串行传参

举例:先获取到access_token值,而后再查看已建立的标签

1.提取接口返回值

 在获取access_token的接口中,Tests下输入以下代码:

let json = JSON.parse(responseBody);//声明一个变量json,将JSON返回Body里面的值解析并给变量json
tests["a"] = json.expires_in ===7200;//设置一个断言 pm.globals.set("token", json.access_token);//获取json里面的access_token的值给token,运行一次就更新一次,并将token值设置为全局变量

操做以下图所示:

2.将提取到的返回值做为下一个接口的入参(查看已建立的标签)

接口调用说明,详见:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837

http请求方式:GET(请使用https协议)

https://api.weixin.qq.com/cgi-bin/tags/get?access_token=ACCESS_TOKEN

此处的access_token值就为上一步提取到的值,由于access_token值只能用2小时,为了不麻烦,因此设置为全局变量为{{token}}

操做以下图所示:

运行一次便自动添加,设置为全局变量后,每一次的token值都会发生改变,以下图所示:

将这两个接口用例保存到同一文件夹下,并运行,以下图所示:

运行后的结果以下图所示:

 

动态传参

作自动化测试时,有些接口不适合把参数写死,因此就须要动态传递参数

动态传参有三种实现方式:

1.Postman有如下内建变量,适合一次性使用

    ①{{$guid}}//生成GUID
    ② {{$timestamp}}//当前时间戳
    ③{{$randomInt}}//0-1000的随机整数
2.参数依赖上一个请求的返回
    上个请求的Tests里提取参数存环境变量,这个请求里用{{变量名}}取值
3.参数每次都不一样,但以后的断言或别的请求里可能还要用
    在Pre-request Script里写代码处理,存为环境变量,参数里用{{变量名}}取值
 
举例为百度接口,http://www.baidu.com/s?,请求方式为GET

实现方式一:

①{{$guid}}//生成GUID
生成GUID值,操做以下图所示:
② {{$timestamp}}//当前时间戳
时间戳是根据1970-01-01开始进行计算的,经过该方法获取到的值,进行转换后,就是当前的时间值
转换地址为: http://tool.chinaz.com/Tools/unixtime.aspx,转换以下图所示:

③{{$randomInt}}//0-1000的随机整数

产生0-1000的随机整数,可用于自动化用户名操做,操做以下图所示:

实现方式二:

和串行传参方式同样,此处再也不复述

实现方式三:

在Pre-request Script里写代码处理,存为环境变量,参数里用{{变量名}}取值
Pre-request Script和Tests的区别:
比如如TestNG里面的用例与前置条件
Pre-request Script是设置前置条件的,不能设置断言,在运行Tests里面的代码时,会先运行Pre-request Script里面的代码
Tests能够设置断言,提取返回值等

所以,存为环境变量,是在Pre-request Script里写代码,以下图所示:

两种格式均可惜,任选其一便可,代码以下所示:

postman.setGlobalVariable("value","test"+(parseInt (Math.random()*100)));//*100是指只取0~99之间的随机值
pm.globals.set("value", "test"+(parseInt (Math.random()*100)));

 

本文仅表明做者观点,系做者@温一壶清酒发表。转载请注明出处:http://www.cnblogs.com/hong-fithing/
相关文章
相关标签/搜索