摁...在测试时很常遇到 API 的测试呢
笔记一下,给未来需要的自己还有其他需要的人
环境准备
你只需要到 Postman 的官网就可以找到下载点啰
不建议使用 chrome 的扩充Postman 的界面目前长这个样子
今天主要的主题在写测试,所以就不加以着墨功能的部分做介绍(因为感觉蛮简单的XD)
使用 Postman 撰写测试
在 postman 的页面中,你可以看到Tests 点击进去就会到这个画面,右手边他就有许多客制化好的方法,只要点下去就可以运行
想要知道更多的 Test Scripts 就可以点击过去官网看
首先我在 MockAPI这个网站上 做了一些 Mock 的数据
其 Url 为 http://5b74423ea5837400141908c3.mockapi.io/Demo
使用get request 打过去回来数据 如下图
这时候使用右手边的 Test Scripts 来建立测试,测试code如下
postman 的测试 code 都是由 javascript 所撰写
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("first data id is 1", function () {
var jsonData = pm.response.json();
pm.expect(jsonData[0].id).to.eql("1");
});
pm.test("it has 15 records", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.length).to.eql(15);
});
以上测试 Code 主要判断
- response 的 status 是否为 200
- 第一笔数据的 id 是否为 1
- 总笔数是否为15笔数据
使用 Enviroment 来变更 domain 或 测试数据
首先拿url来当范例,如果需要将 domain 抽换,则将需要变更的 domain 变成 {{url}}
{{变量名称}} 这里的变量名称则是Enviroment 或是 global用的变量名称 postman 会自动帮你带入在右上角点击齿轮,可以看到你已经设定好的 environment
按下ADD之后就可以命名你的 Environment 名称,还有变化名称及初始值
Demo 15 records 的 environment 长这个样子 [5b74423ea5837400141908c3]
Demo 20 records 的 environment 长这个样子 [5b521e36d9b92700141c98ec]
这时候就可以尝试点选右上角的 No Environment 来变更你的 Environment 来做测试
当你使用 Demo 20 records 的环境时,会发现原本写的测试 fail了,原因是因为你的 Demo 20 records 的环境打过去回来的 response 数据笔数为 20 笔
所以这时候需要将测试数据抽换成 environment 的变量,就会这么做
先设定 environment 的变量
Demo 20 records 的 expectedRecords 设定为 20Demo 15 records 的 expectedRecords 设定为 15
修改测试 Code ,这时候判断笔数的测试 Code 就会长这个样子
expectedRecords = parseInt(pm.environment.get("expectedRecords"));
pm.test("it has"+ expectedRecords +" records", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.length).to.eql(expectedRecords);
});
先取得 environment 然后转型成 int (不转型的话会错误,原因是因为 environment 默认的变量型态为 string)
现在两个测试都可以因为 environment 改变而变动测试期望数据而通过了
Run Postman
在 postman 有个功能 可以帮你把一整包的 collection 来执行,执行后也能够将执行结果导出
现在把刚才写好的一支API测试存进一个 Collection然后到 Collection 的地方找到创建好的 Collection 来让 Postman run 写好的 测试
点击Run之后会出现下面这个画面
可以看到画面左边有
- Environment 可以让你选择
- Iterations 则是你需要 run几次这个collection
- Delay则是你run完这个 API 之后你需要等待几秒再开始打下一个 API
- Log Responses 则是可以让你选择纪录的 Response 型态为 fail 的时候要纪录或者是都要记录之类的 [旁边的提示有说 如果collection是比较大的 则有可能会影响到性能测试的结果]
- Data 选择你要使用的文件
- Keep variable values 如果勾起来则会把其中更动过的 变量保存起来
接下来就来run个 20 次 看会发生什么事吧!
可以看到每个 request的时间 跟测试结果(几个测试通过,几个失败),还有status
返回到刚才那页也可以看到刚才执行的结果
以上是今天的笔记,感谢各位收看,如有错误,请各位大大告诉我~
摁...明天下班有时间就写个 newman的东西好了,他可以帮助我们产生一些报表~
原文:大专栏 笔记 - 使用 Postman 进行 API 测试