postman-自动化接口测试
postman-自动化接口测试
概述
参考文章:
想当年(几个星期前)最开始用 postman 测试接口的时候都是一个一个编 url,填参数,然后鼠标一个个地点,这一点也不 elegant。当今凡是跟 自动化 沾点边的都很高大上,什么自动化办公、自动化测试……今天就先来学习一下使用 postman 自动化测试接口。
自动化的接口测试的普遍问题大致有三点:
- 如何判断接口是否请求成功?
- 如何进行接口批量、定期测试?
- 如何处理依赖接口问题(比如商品下单的接口必须要求先登录)?
后续的内容也将针对这三个问题条分缕析地展开。
要素
接口结果判断
编写判断脚本
首先,既然是自动化测试,那么我们肯定需要工具或者代码能帮我们直接判断结果是否符合预期。那么在接口测试上,大体就两个思路:
- 判断请求返回的状态码是否符合预期;
- 判断请求返回的内容中是否包含预期的内容(关键字)
我们主要在这个名为 Tests 的地方进行脚本的编写,使用的语言是 Javascript,侧边还有 snippets 推荐:
先来看看它提供的场景化代码
测试状态码符合预期:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
测试返回体内容符合预期:
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
测试含有指定的头部信息:
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
测试响应时间不超过指定时间:
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(300);
});
测试结果大致是这样的(不是完全对应的):
![image-20210930224726394](https://test-1300999732.cos.ap-guangzhou.myqcloud.com//img/typero/20210930224727.png)
看完这几条就能大致发现其中的规律了:
- 使用 pm 对象的 test 函数进行测试,参数有两个部分
- 测试名
- 测试函数
- 测试函数通过调用相应体和一些封装好的方法进行测试(可以只使用 pm 拿数据自己写测试方法)
可这本质上也还只是单例的测试,况且也是点击 send 测试,只是对返回结果进行了一些校验,这一点也不优雅,那我们继续。
批量测试脚本
想要进行接口的批量测试、管理,那么我们需要将待测试的接口全部都保存到同一个 collection 中:
那我们来添加几个常用的网站请求,然后只判断返回状态码为 200:
然后跳转到这个界面,其中中有个 Select File 的选项,后续传参可以使用:
run 就好了,结果如下:
除此之外,你还可以在 collection 级别编写测试脚本,在这个级别的脚本会对每个请求执行一次:
可你这只是简单的 get 请求,没有什么挑战,那么我们试试带上参数。
批量测试
使用变量
我们现在这个位置定义两个全局变量:
然后在 params 中引用,使用{{variable_name}}
引用即可:
这里我测试获取一下我的博客文章,成功!
从本地文件读入参数
我们可以通过设置之前留下的 Select File 来从本地文件读入参数值:
要注意在 run 界面填写 iteration 参数时,它代表的是你执行到第几个用例为止
依赖接口
……TODO