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>");
});
http://www.baidu.com/s?wd=猫
http://www.bejson.com/jsonviewernew/
3、简单实例测试(检查百度搜猫返回请求情况)
pm.test("检查返回内容是否正确", function () {
pm.expect(pm.response.text()).to.include("<title>猫_百度搜索</title>");
});
pm.test("检查状态码", function () {
pm.response.to.have.status(200);
});
pm.test("检查响应时间小于300ms", function () {
pm.expect(pm.response.responseTime).to.be.below(300);
});
4、环境变量管理使用
pm.test("检查返回内容是否正确", function () {
pm.expect(pm.response.text()).to.include("<title>猫_百度搜索</title>");
});
pm.test("检查状态码", function () {
pm.response.to.have.status(200);
});
pm.test("检查响应时间小于300ms", function () {
pm.expect(pm.response.responseTime).to.be.below(300);
});
var code=responseCode.code;
pm.globals.set("codename", code);
5、实例二:将微信获取token的返回值提取token出来,在后面的接口中进行引用
var jsonData=JSON.parse(responseBody);
var token=jsonData.access_token;
pm.globals.set("myToken",token);
6、正则表达式使用(以获取微信的token为例)
var token=responseBody.match(new RegExp('\access_token\":\"(.+?)\"'))[1];
pm.globals.set("weixin_token",token);
7、提出问题①(关于百度在不同环境访问问题):
当我们访问百度时,可以通过网址进行访问,也可以通过IP地址进行访问,那么我们切换不同的环境时,如何让它们都能用呢?
于是我们能查看到如下内容(每个电脑的显示界面可能不一样)
通过查看,我们就能得到百度的三种环境:生产环境、测试环境、预发布环境
www.baidu.com 生产环境
IP地址:
183.232.231.172 测试环境
183.232.231.174 预发布环境
PS:那么我们将主机设置为全局变量,这样我们对于不同的环境都能够使用,此时我们打开Postman,进入之前的环境变量管理,点击Add然后添加这三个环境,注意我们的环境变量名称要统一
1、测试环境配置
2、生产环境配置
3、预发布环境配置
8、提出问题②(关于请求头封装隐藏问题)
之前各个环境配置好了之后,我们发送send请求后,打开我们的Fiddler工具查看我们的请求头,发现在User-Agent会直接显示我们的Postmanxxx,这样的接口肯定会出问题的,我们应该如何进行隐藏封装呢?
很简单,就是我们直接去访问百度,去拿到百度的Headers的信息就好了,然后去修改我们自己接口的key-value值
下面是我从百度拷下来的Headers,可以直接使用
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*
然后在接口那选择Headers,采用文本方式直接复制过去即可
PS:我们这里是引用了全局变量baiduUrl,是之前配置的三个环境的变量名称
那么现在我们的Headers请求头就封装好了,我们再send一下,采用预发布环境试试~
结果很显然,修改成了百度的请求头了,说明隐藏成功!
学如逆水行舟,不进则退