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)什么是接口测试?
什么是接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换.传递和控制管理过程,以及系统间的相互逻辑依 ...
随机推荐
- 利用yarn capacity scheduler在EMR集群上实现大集群的多租户的集群资源隔离和quota限制
转自:https://m.aliyun.com/yunqi/articles/79700 背景 使用过hadoop的人基本都会考虑集群里面资源的调度和优先级的问题,假设你现在所在的公司有一个大hado ...
- 修改pip安装源加快python模块安装
用pip安装依赖包时默认访问https://pypi.python.org/simple/,但是经常出现不稳定以及访问速度非常慢的情况,国内厂商提供的pipy镜像目前可用的有: http://pypi ...
- Servlet(三):生命周期、常用方法、常见错误
Servlet的生命周期:从第一次调用,到服务器关闭.如果在web.xml 中配置了load-on-startup则是从服务器开启到服务器关闭. 注意: * init方法是对Servlet进行初始化的 ...
- Selenium断言的使用,等待
自动化测试常用断言的使用方法(python) 自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断. 这 ...
- Mapjoin和Reducejoin案例
一.Mapjoin案例 1.需求:有两个文件,分别是订单表.商品表, 订单表有三个属性分别为订单时间.商品id.订单id(表示内容量大的表), 商品表有两个属性分别为商品id.商品名称(表示内容量小的 ...
- python之psutil模块(获取系统性能数据)
psutil模块 1.介绍 psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等) ...
- 002.RHCS-配置Ceph存储集群
一 前期准备 [kiosk@foundation0 ~]$ ssh ceph@serverc #登录Ceph集群节点 [ceph@serverc ~]$ ceph health #确保集群状态正常 H ...
- (二)文档请求不同源之location.hash跨域
一.基本原理 用location.hash解决域名完全不同的跨域,例如,http://www.baidu.com#helloworld中的"#helloworld"就是locati ...
- bootstrap网格设置等高度
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
- 壁虎书7 Ensemble Learning and Random Forests
if you aggregate the predictions of a group of predictors,you will often get better predictions than ...