Postman接口自动化测试实例二
在《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接口自动化测试实例二的更多相关文章
- Postman接口自动化测试实例
一.实例背景 在实际业务中,经常会出现让用户输入用户密码进行验证的场景.而为了安全,一般都会先请求后台服务器获取一个随机数做为盐值,然后将盐值和用户输入的密码通过前端的加密算法生成加密后串传给后台服 ...
- Postman接口自动化测试实例用到的完整的SM2前端加密算法代码
var __g__ = {}; !function(t,e){"object"==typeof exports?module.exports=exports=e():"f ...
- python3+requests:接口自动化测试(二)
转载请注明出处:https://www.cnblogs.com/shapeL/p/9188495.html 前言:上篇文章python3+requests+unittest:接口自动化测试(一):ht ...
- Jmeter+Ant+Jenkins接口自动化测试(二)_测试方案设计及jmeter脚本开发
前言 根据之前部署好的测试环境,进行接口自动化测试的方案设计及Jmeter脚本开发.测试方案设计过程中采用了数据分离和对象分离等思路,因此直接通过特定的测试用例文档来驱动整个自动化接口测试的执行,相关 ...
- 【Python+postman接口自动化测试】(5)抓包工具Fiddler简介
Fiddler简介 Fiddler 4.6 下载 http://www.downza.cn/soft/234727.html 为什么使用Fiddler? 可以抓到请求数据,查看Raw格式/表单格式/J ...
- 【Python+postman接口自动化测试】(8)以青云客机聊天器人和图灵聊天机器人接口示范python发送get和post
以青云客机器人和图灵机器人接口示范python发送get和post 发送请求,我们这里主要使用Python的一个第三方包(需要先安装):requests. Python3自带的http.client和 ...
- 【Python+postman接口自动化测试】(7)Postman 的使用教程
Postman v6的使用 Postman: 简单方便的接口调试工具,便于分享和协作.具有接口调试,接口集管理,环境配置,参数化,断言,批量执行,录制接口,Mock Server, 接口文档,接口监控 ...
- 【Python+postman接口自动化测试】(4)HTTP 协议
前言 HTTP:超文本传输协议,是用于从WWW服务器传输超文本到本地浏览器的传输协议. HTTP协议是一种无状态协议,主要包含请求和相应两大部分. 请求(Request) get请求示范: GET h ...
- 【Python+postman接口自动化测试】(3)什么是接口测试?
什么是接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换.传递和控制管理过程,以及系统间的相互逻辑依 ...
随机推荐
- Javascript我学之五对象的创建与使用
本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘. 对象的创建 JavaScript对象有两种类型 1).Native:在ECMAScript标准中定义和描述,包括JavaScript内置 ...
- php正则验证车牌格式的函数
/** * 判断是否合法车牌号 * @name isCarLicense * @param $license * @return bool */ function isCarLicense($lice ...
- 【SQL】 MySql与SqlServer差异比较(MySql踩坑全集)
本文主要记录将数据库从SqlServer移植到MySql的过程中,发现的各种坑爹问题.以SqlServer为主,记录MySql的差异性. 一.IF语句 首先MySql中的的IF语法不同. IF Con ...
- freemaker 操作字符串
来源于博客:https://blog.csdn.net/qq_35624642/article/details/72926769 Freemarker操作字符串 1.substring(start,e ...
- 初探React Hooks & SSR改造
Hooks React v16.8 发布了 Hooks,其主要是解决跨组件.组件复用的状态管理问题. 在 class 中组件的状态封装在对象中,然后通过单向数据流来组织组件间的状态交互.这种模式下,跨 ...
- 【Linux】-- Linux上java运行环境的配置(JDK+TOMCAT)
1.JDK安装 安装之前首先要查询软件是否存可以直接使用yum安装 yum search java | grep open 选择需要的版本安装 注意:*星号代表下载该版本的所有文件,不能少. 验证是否 ...
- 【整理】Java 8新特性总结
闲语: 相比于今年三月份才发布的Java 10 ,发布已久的Java 8 已经算是老版本了(传闻Java 11将于9月25日发布....).然而很多报道表明:Java 9 和JJava10不是 LTS ...
- XVIII Open Cup named after E.V. Pankratiev. Ukrainian Grand Prix
A. Accommodation Plan 对于已知的$K$个点,离它们距离都不超过$L$的点在树上是一个连通块,考虑在每种方案对应的离$1$最近的点统计. 即对于每个点$x$,统计离它距离不超过$L ...
- angular.isArray()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Mac_安装Homebrew以及Maven
Mac OSX上的软件包管理工具,安装软件或者卸载软件. 打开终端输入(如不行,可参考homebrew官网): ruby -e "$(curl -fsSL https://raw.githu ...