在《Postman接口自动化测试实例》一文中,我是在获取随机因子的接口的Tests中对用户的密码进行加密处理的。其实正常做法应该是在请求验证接口前,即在Pre-request Script中对密码进行加密处理。

  下面对上一文的进行简单的修改处理。

一.获取随机数接口的Tests内容

tests["Status code is 200"] = responseCode.code === 200
tests["Response time is less than 200ms"] = responseTime < 200;
var respData = JSON.parse(responseBody);
tests["respCode"] = respData.code === '0';
tests["respMsg"] = respData.msg === '成功'; if(respData.code === '0') {
var respRadomNum = respData.data.radomNum;
var respRadomNumCode = respData.data.radomNumCode; postman.setGlobalVariable("respRadomNum", respRadomNum);
postman.setGlobalVariable("respRadomNumCode", respRadomNumCode);
   
//下面方式也可以
//pm.globals.set("respRadomNum", respRadomNum);
//pm.globals.set("respRadomNumCode", respRadomNumCode); }

  在Tests中把接口返回的随机数和随机数码通过postman.setGlobalVariable设置到全局变量中,以便后面的验密接口可以从全局变量中获取到。

  Headers、Body和Pre-request Script和上一文中的获取随机因子的接口是一样的。

二.验密接口的Pre-request Script内容

  从全局变量中获取随机数也可以用:var radomNum = pm.globals.get("respRadomNum");

  Headers、Body和Tests和上一文中的密码验证的接口是一样的。

三.执行效果依然是一样正确的

  获取随机因子运行效果:

  密码验证效果:

四.在pre-request和tests中获取变量的方法

  变量可以被使用在pre-request和test script中,因为这些部分是通过JavaScript来写的,你可以以不同的方式初始化和检索这些变量,可以在脚本中初始化变量,并将它们放在特定的范围内。
1.定义一个变量在脚本中
  在脚本中设置一个变量可以根据变量预定的范围通过如下方式设置变量。

pm.environment.set("variable_key", "variable_value");
postman.setGlobalVariable("variable_key", "variable_value"); postman.setEnvironmentVariable("variable_key", "variable_value");
pm.globals.set("variable_key", variable_value);

  当你发送请求的时候(请求前或后),脚本将会执行,值将会保存在变量中,如下图:

2.取一个预定义的变量
  一旦一个变量被设置,你可以使用如下方式去获取变量的值

//获取variable_key的环境变量
pm.environment.get("variable_key");
postman.getEnvironmentVariable("variable_key"); //获取variable_key的全局变量
pm.globals.get("variable_key");
postman.getGlobalVariable("variable_key");

  根据适合的范围去获取变量值,这些方法要求提供一个变量名作为参数去检索储存的值,如下图:

3.设置一个变量在作用域中

  可以访问环境变量在相应的环境模板,全局变量可以广泛的访问,不管选择的作用域。

参考文章:https://www.cnblogs.com/JHblogs/p/6418802.html

Postman接口自动化测试实例二的更多相关文章

  1. Postman接口自动化测试实例

    一.实例背景  在实际业务中,经常会出现让用户输入用户密码进行验证的场景.而为了安全,一般都会先请求后台服务器获取一个随机数做为盐值,然后将盐值和用户输入的密码通过前端的加密算法生成加密后串传给后台服 ...

  2. Postman接口自动化测试实例用到的完整的SM2前端加密算法代码

    var __g__ = {}; !function(t,e){"object"==typeof exports?module.exports=exports=e():"f ...

  3. python3+requests:接口自动化测试(二)

    转载请注明出处:https://www.cnblogs.com/shapeL/p/9188495.html 前言:上篇文章python3+requests+unittest:接口自动化测试(一):ht ...

  4. Jmeter+Ant+Jenkins接口自动化测试(二)_测试方案设计及jmeter脚本开发

    前言 根据之前部署好的测试环境,进行接口自动化测试的方案设计及Jmeter脚本开发.测试方案设计过程中采用了数据分离和对象分离等思路,因此直接通过特定的测试用例文档来驱动整个自动化接口测试的执行,相关 ...

  5. 【Python+postman接口自动化测试】(5)抓包工具Fiddler简介

    Fiddler简介 Fiddler 4.6 下载 http://www.downza.cn/soft/234727.html 为什么使用Fiddler? 可以抓到请求数据,查看Raw格式/表单格式/J ...

  6. 【Python+postman接口自动化测试】(8)以青云客机聊天器人和图灵聊天机器人接口示范python发送get和post

    以青云客机器人和图灵机器人接口示范python发送get和post 发送请求,我们这里主要使用Python的一个第三方包(需要先安装):requests. Python3自带的http.client和 ...

  7. 【Python+postman接口自动化测试】(7)Postman 的使用教程

    Postman v6的使用 Postman: 简单方便的接口调试工具,便于分享和协作.具有接口调试,接口集管理,环境配置,参数化,断言,批量执行,录制接口,Mock Server, 接口文档,接口监控 ...

  8. 【Python+postman接口自动化测试】(4)HTTP 协议

    前言 HTTP:超文本传输协议,是用于从WWW服务器传输超文本到本地浏览器的传输协议. HTTP协议是一种无状态协议,主要包含请求和相应两大部分. 请求(Request) get请求示范: GET h ...

  9. 【Python+postman接口自动化测试】(3)什么是接口测试?

    什么是接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换.传递和控制管理过程,以及系统间的相互逻辑依 ...

随机推荐

  1. SonarLint 代码质量管理

    Below are the instructions of how to install and use SonarLint. Install SonarLint Extensions in VS20 ...

  2. loj6077

    题解: 网上的做法好像都是容斥 那就先说一下容斥 首先问题等价于求下面这个式子的方案数 $$\sum_{i=1}^{n} ai (0<ai<i) =k$$ 直接$dp$复杂度是$nk$的, ...

  3. iOS开发常用第三库

    字典转模型 1.(MJExtension) https://github.com/CoderMJLee/MJExtension 2.(YYModel) https://github.com/ibire ...

  4. WPF中的逻辑树和可视化树

    WPF中的逻辑树是指XAML元素级别的嵌套关系,逻辑树中的节点对应着XAML中的元素. 为了方便地自定义控件模板,WPF在逻辑树的基础上进一步细化,形成了一个“可视化树(Visual Tree)”,树 ...

  5. 获取验证码倒计时60s

    倒计时函数: function time(btns) { if (wait == 0) { btns.css("background-color","#F84C02&qu ...

  6. 动态规划-数位DPwindy

    https://vjudge.net/contest/297216?tdsourcetag=s_pctim_aiomsg#problem/L #include<bits/stdc++.h> ...

  7. __x__(36)0908第五天__背景 background

    1. 背景 background: red url(img/cat.gif) repeat-x fixed; 2. 背景颜色 background-color: red; 3. 背景图片 backgr ...

  8. 传统方式和插件方式 分别实现 分页 功能 pageHelper 插件

    实现分页  这里提供两种方式  一种是传统的分页方式  一种是基于pageHelper插件 实现的分类     推荐使用后者 前者是一般开发的方式   思路  先手动创建一个 pageUtil 工具 ...

  9. java实现求最大子数组和的逐步显示

    package 最大的子数组和; import java.util.Scanner; public class shuzu { public static int maxArr(int a[]) { ...

  10. Vue.js的简介

    vue.js简介 Vue.js读音 /vjuː/, 类似于 view   Vue.js是前端三大新框架:Angular.js.React.js.Vue.js之一,Vue.js目前的使用和关注程度在三大 ...