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

用Postman做接口测试的时候,要把多条用例一起执行,就需要把用例连接起来,一次性执行

目录

串行传参

动态传参

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

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

其次获取access_token

接口调用说明:

https请求方式: GET,

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)));

Postman 串行传参和动态传参详解的更多相关文章

  1. Java 反射 设计模式 动态代理机制详解 [ 转载 ]

    Java 反射 设计模式 动态代理机制详解 [ 转载 ] @author 亦山 原文链接:http://blog.csdn.net/luanlouis/article/details/24589193 ...

  2. 【转】java的动态代理机制详解

    java的动态代理机制详解   在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们 ...

  3. 关于IPB帧与恒定比特率、动态比特率的详解

    之所以写这篇文章是因为有朋友对IPB帧的设置比较感兴趣,回复中说得比较简单,因此在这里详细的写一下,虽然说一般情况下我们很少去设置这个IPB帧,不过,如果真的学好了,并且清楚的了解了这个IPB帧的概念 ...

  4. 【VB技巧】VB静态调用与动态调用dll详解

    本文“[VB技巧]VB静态调用与动态调用dll详解”,来自:Nuclear'Atk 网络安全研究中心,本文地址:http://lcx.cc/?i=489,转载请注明作者及出处! [[请注意]]:在以下 ...

  5. java的动态代理机制详解-----https://www.cnblogs.com/xiaoluo501395377/p/3383130.html

    java的动态代理机制详解-----https://www.cnblogs.com/xiaoluo501395377/p/3383130.html

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

    Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件 用Postman做接口测试的时候,要把多条用例一起执行,就需要把用例连接起来,一次性执行 目录 串行传参 动态传参 使用 ...

  7. MySQL锁(表锁,行锁,共享锁,排它锁,间隙锁)使用详解

    锁,在现实生活中是为我们想要隐藏于外界所使用的一种工具.在计算机中,是协调多个进程或县城并发访问某一资源的一种机制.在数据库当中,除了传统的计算资源(CPU.RAM.I/O等等)的争用之外,数据也是一 ...

  8. 动态内存管理详解:malloc/free/new/delete/brk/mmap

    c++ 内存获取和释放 new/delete,new[]/delete[] c 内存获取和释放 malloc/free, calloc/realloc 上述8个函数/操作符是c/c++语言里常用来做动 ...

  9. React中使用 react-router-dom 路由传参的三种方式详解【含V5.x、V6.x】!!!

    路由传值的三种方式(v5.x) params参数 //路由链接(携带参数): <Link to='/demo/test/tom/18'}>详情</Link> //或 <L ...

随机推荐

  1. mongodb菜鸟整理 2 C#Driver使用

    一下载 从官网上下载... 二 引用 下载完了将其解压到某个文件夹内,打开vs建立一个工程 右键引用,找到刚才解压的目录,把里面说有的dll文件全部添加就好 三 命名空间 我都是先打然后alt+shi ...

  2. JS中的事件以及DOM 操作

    [DOM树节点] DOM节点分为三大节点:元素节点,文本节点,属性节点. 文本节点,属性节点为元素节点的两个子节点通过getElment系列方法,可以去到元素节点 [查看节点] 1 document. ...

  3. 删除git项目

    主页,点击右上头像-->your profile-->Popular repositories ,看到你要删除的项目,点击进去 --> 上面 选择settings-->到页面最 ...

  4. nginx正向代理

    通过把Nginx设置为正向代理,我们就可以在局域网中用运行着Nginx的主机作为正向代理服务器了.那什么是正向代理和反向代理呢?正向代理和反向代理-百度百科 正向代理:如果把局域网外的Internet ...

  5. 别只用hive写sql -- hive的更多技能

    hive是Apache的一个顶级项目,由facebook团队开发,基于java开发出面向分析师或BI等人员的数据工具(常用作出具仓库),它将文件系统映射为表,使用SQL实现mapreduce任务完成分 ...

  6. [自制操作系统] JOS文件系统详解&支持工作路径&MSH

    本文分为两部分: 第一部分将详细分析JOS的文件系统及文件描述符的实现方法. 第二部分将实现工作路径,提供新的系统调用,完善用户空间工具. 本文中支持的新特性: 支持进程工作目录 提供getcwd与c ...

  7. 团队作业4----第一次项目冲刺(Alpha版本)4.29

    a.站立式会议照片 会议内容: 会议讨论有一些内容要放在beta版本,所以燃尽图可能有些未完成.初级阶段我们只打算先写java代码的统计和显示.这是最基本的任务.在繁忙的任务中,不需要全部按照燃尽图. ...

  8. 【Beta】 第五次Daily Scrum Meeting

    一.本次会议为第五次meeting会议 二.时间:10:00AM-10:20AM 地点:陆大楼 三.会议站立式照片 四.今日任务安排 成员 昨日任务 今日任务 林晓芳 帮助完善登录界面 对目前完成的模 ...

  9. Java学习3——java介绍

    Java程序运行过程: Java两种核心机制: Java虚拟机(Java Virtual Machine),提供程序运行的解释环境,使Java成为一种与平台无关的语言. Java虚拟机可以理解成一个以 ...

  10. 201521123089 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1.代码阅读:Child压缩包内源代码1.1 com.parent包中Child.java文件能否编译通过?哪 ...