文章目录

  • 1、引言
  • 2、对接口进行Tests测试
  • 3、简单实例测试(检查百度搜猫返回请求情况)
  • 4、环境变量管理使用
  • 5、实例二:将微信获取token的返回值提取token出来,在后面的接口中进行引用
  • 6、正则表达式使用(以获取微信的token为例)
  • 7、提出问题①(关于百度在不同环境访问问题):
  • 8、提出问题②(关于请求头封装隐藏问题)

1、引言

Postman的test本质上是JavaScript代码,通过我们编写测试代码,每一个tests返回True,或是False。
每一个tests实际上就是一个测试用例

2、对接口进行Tests测试

Tests断言:比较预期结果和实际结果
(编辑文本采用js语言,对于初学者来说可以直接点击右边的系统自带配置js)

引用变量{{变量名称}}


比如搜猫,那么我们就选择Response body:Contains string

pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
pm.test("检查返回内容是否正确", function () {pm.expect(pm.response.text()).to.include("<titile>猫_百度搜索</titile>");
});
  • 附百度搜猫抓过来的接口Url
http://www.baidu.com/s?wd=猫
  • 附JSON在线视图查看器
http://www.bejson.com/jsonviewernew/

3、简单实例测试(检查百度搜猫返回请求情况)

//1、检查返回值
pm.test("检查返回内容是否正确", function () {pm.expect(pm.response.text()).to.include("<title>猫_百度搜索</title>");
});
//2、检查状态码
pm.test("检查状态码", function () {pm.response.to.have.status(200);
});
//3、检查响应时间
pm.test("检查响应时间小于300ms", function () {pm.expect(pm.response.responseTime).to.be.below(300);
});
  • 显示结果
  • ps:检查响应时间会因网速而发生变化,返回Fail有时是正常的

4、环境变量管理使用

//1、检查返回值
pm.test("检查返回内容是否正确", function () {pm.expect(pm.response.text()).to.include("<title>猫_百度搜索</title>");
});
//2、检查状态码
pm.test("检查状态码", function () {pm.response.to.have.status(200);
});
//3、检查响应时间
pm.test("检查响应时间小于300ms", function () {pm.expect(pm.response.responseTime).to.be.below(300);
});
//4、获取状态码
var code=responseCode.code;
//5、设置全局变量
pm.globals.set("codename", code);
  • 通过js脚本我们获取状态码后,存在一个全局变量codename里面,然后我们打开环境变量管理进行查看,如下:


5、实例二:将微信获取token的返回值提取token出来,在后面的接口中进行引用

  • ① 在Tests中进行脚本测试
//1、获取jsonData数据包
var jsonData=JSON.parse(responseBody);
//2、通过json包获取对应字段名access_token
var token=jsonData.access_token;
//设置token全局变量
pm.globals.set("myToken",token);
  • ② 查看环境变量管理内容如下:

6、正则表达式使用(以获取微信的token为例)

  • 上面那个获取脚本的方式其实是有一个缺点的,那种方式只能获取一个JSON格式的值,而当我们切换类型后就没办法获取了,所以我们可以采用更好一点的方法,正则表达式
var token=responseBody.match(new RegExp('\access_token\":\"(.+?)\"'))[1];
pm.globals.set("weixin_token",token);

7、提出问题①(关于百度在不同环境访问问题):

当我们访问百度时,可以通过网址进行访问,也可以通过IP地址进行访问,那么我们切换不同的环境时,如何让它们都能用呢?

  • ① 如何查看百度的IP地址呢?
    首先WIN+R 进入cmd
    然后输出以下命令:

    nslookup www.baidu.com
    

于是我们能查看到如下内容(每个电脑的显示界面可能不一样)

通过查看,我们就能得到百度的三种环境:生产环境、测试环境、预发布环境

www.baidu.com            生产环境
IP地址:
183.232.231.172         测试环境
183.232.231.174         预发布环境
  • ②公司的环境有哪些?
    开发环境:开发人员用来编码调试
    测试环境:测试人员找bug
    预发布环境:模拟的真实环境
    生产环境:用户真实使用的

PS:那么我们将主机设置为全局变量,这样我们对于不同的环境都能够使用,此时我们打开Postman,进入之前的环境变量管理,点击Add然后添加这三个环境,注意我们的环境变量名称要统一

1、测试环境配置

2、生产环境配置

3、预发布环境配置

8、提出问题②(关于请求头封装隐藏问题)

  • ①提取返回值(正则表达式、json)
  • ②环境变量的设置
  • ③修改请求头
  • ④参数化循环取值

之前各个环境配置好了之后,我们发送send请求后,打开我们的Fiddler工具查看我们的请求头,发现在User-Agent会直接显示我们的Postmanxxx,这样的接口肯定会出问题的,我们应该如何进行隐藏封装呢?


很简单,就是我们直接去访问百度,去拿到百度的Headers的信息就好了,然后去修改我们自己接口的key-value值

下面是我从百度拷下来的Headers,可以直接使用

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36

然后在接口那选择Headers,采用文本方式直接复制过去即可


PS:我们这里是引用了全局变量baiduUrl,是之前配置的三个环境的变量名称

那么现在我们的Headers请求头就封装好了,我们再send一下,采用预发布环境试试~

结果很显然,修改成了百度的请求头了,说明隐藏成功!

学如逆水行舟,不进则退

2020 软件测试 Postman高级使用——Tests 断言校验返回结果相关推荐

  1. Postman系列之Tests断言

    ------·今天距2021年276天·------ 这是ITester软件测试小栈第104次推文 在上一篇:Collections集合管理,主要介绍了如何新建Collections.新建Folder ...

  2. 2020 软件测试实训记录 【整理】 目录

    文章目录 1.引言 2.软件测试基础 3.Fiddler+Postman接口自动化测试 1.引言 2.软件测试基础 2020 软件测试 软件缺陷知识[整理] 2020 软件测试 常见缺陷处理场景及软测 ...

  3. 【4】Postman之Tests(断言)

    简介:使用postman完成请求后,验证返回结果,会用到tests断言.官方提供了很多可以直接使用的方法~ 接下来主要介绍这些方法是如何使用. 1. 变量相关: Get an environment ...

  4. Postman高级应用——流程控制、调试、公共函数、外部数据文件

    postman客户端下载地址:https://www.getpostman.com/apps 流程控制 流程控制简言之就是设置接口的执行顺序,流程控制只有在collection runner或Newm ...

  5. Postman高级应用(5):再也不用注释签名代码了——自动生成签名

    场景 我们在写服务端接口时候,往往需要考虑安全问题,最基本的一点就是接口需要按照约定的规则进行签名校验.一旦接口校验签名,就意味着我们用Postman不能想以前那样顺利的测试了,服务端必定会返回签名失 ...

  6. 2020电工(高级)考试题库及电工(高级)模拟考试题

    题库来源:安全生产模拟考试一点通公众号小程序 2020电工(高级)考试题库及电工(高级)模拟考试题,包含电工(高级)考试题库答案解析及电工(高级)模拟考试题练习.由安全生产模拟考试一点通公众号结合国家 ...

  7. 绝对是最实用 PostMan测试进阶操作 token校验 参数传递 存为环境变量 避免重复copy

    绝对是最实用 PostMan测试进阶操作 token校验 参数传递 存为环境变量 免重复copy 之前学的少,大都自己用junit 测试一遍就可以,不怎么会去用postman测试. 但是此次和队友一起 ...

  8. 2020软件测试学习自学路线分享,附完整资料,绝对有用哟

    2020软件测试学习路线图,内附自学路线+视频+工具经验+面试篇 划重点!!! 资源链接:黑马程序员社区 想毕业后做测试相关的工作的,找学习资源找的头大,还好终于找到这么优质的可以系统地学习测试知识的 ...

  9. 软件测试行业未来发展趋势 2020软件测试行业现状及市场前景规模分析

    2020软件测试行业发展现状及市场前景规模分析 软件测试(英语:SoftwareTesting),描述一种用来促进鉴定软件的正确性.完整性.安全性和质量的过程.换句话说,软件测试是一种实际输出与预期输 ...

最新文章

  1. php的闭包函数use的使用
  2. 蓝桥杯:安慰奶牛(最小生成树)
  3. C++ vector用法 基本用法
  4. js随机生成4位验证码
  5. python spangt_python怎么爬去spanlt;/span中间标签的内容
  6. HttpClient4.5使用RequestConfig配置连接信息
  7. 如何将字符串数组的空格去除_java中如何将数组转换为List
  8. IIS7部署网站的一些细节问题。
  9. 各主流浏览器的JS执行能力测试
  10. Visual Studio 2008 安装失败(“Web 创作组件”)安装失败
  11. 高质量实时渲染课程笔记(一)——介绍和概览(高质量实时渲染的含义、学习前置、涉及的内容目录、发展史)
  12. 【Analytics Kit】【FAQ】集成华为分析服务问题集合 SDK初始化失败/应用调试界面没有数据/常见错误提示
  13. Extjs实现角色权限流控制,对fieldset,checkbox的动态控制
  14. 不再有“寒冬”的人工智能
  15. 计算机语言phal语言,phalapi
  16. 使用paython制作简单贺卡
  17. Canvas 原生实现图片涂抹打马赛克功能
  18. qcom 音频相关的dsp driver笔记(基于msm8996平台)
  19. 计算机网络-数据交换技术
  20. 蓝牙协议(bluetooth spec)

热门文章

  1. css背景渐变色: 标题两边渐变画线效果
  2. 监督学习和非监督学习中的算法分类
  3. 随机密码生成。编写程序,在26个字母大小写和9个数字组成的列表中随机生成10个8位密码
  4. 【报告分享】腾讯智慧医疗报告-需求篇-腾讯研究院(附下载)
  5. 电子产品开发-模块开发计划
  6. php登录关闭验证码,phpcms关闭后台登陆验证码的方法
  7. 膳食纤维可以降低心血管病风险,怎么吃才能保证摄入量
  8. Spark技术在京东智能供应链预测的应用
  9. 汉服新闻查询易语言代码
  10. matlab norm函数使用_matlab中norm与svd函数用法