今天我是属于还有空余时间去学习的人,奥里给
学习中的小白,写的不好的,欢迎大家予以指出,谢谢大家
postman接口测试
一、Postman说明
Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果
二、GET和POST的区别
GET 使用URL 或Cookie 传参,而POST将数据放在Body 中
GET的URL 在长度上会有限制,而POST没有。
POST比GET相对安全,因为在地址栏不可见。
一般POST请求用来获取数据,POST请求用来发送数据。
三、发送HTTP请求
点击上图中蓝色Send图标即可发送请求,验证请求结果是否正确。下图是对应的响应结果,包含Body和Headers两个部分,Body即响应体正文,Headers即为响应头信息,响应头不包含响应状态码和状态信息部分
响应体包含三种查看模式,分别为:Pretty默认模式、Raw原始数据格式,Preview预览模式(此模式针对HTML页面效果很好)
四、接口用例
4.1 用例设计
Postman支持的是csv文件作为数据用例
数据用例包含三大部分:用例标题(title),入参(grant_type,appid,secret),期望结果(expected)
4.2 用例参数化
在csv文件中编写好了数据用例,且保证第一行为参数的名称
将请求中入参值依次进行替换,在Postman中参数的编写规格为两个花括号,如:{{appid}}
4.3 设置迭代器
五、断言
Postman的断言功能在Test模块中,比如要测试返回结果是否含有某一字符串,就需要在Test中编写相应的代码,Test中的代码使用的是JavaScript语法
5.1 Postman自带Tests函数
Postman提供了参考代码供我们选择即可,主要断言代码有如下几种:
断言状态码是否为200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
断言响应文本中是否包含某个数据串
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
检查响应正文中是否包含某个子串
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
响应信息包含列表中其中某一个
pm.test("Successful POST request", function () {
pm.expect(pm.response.code).to.be.oneOf([201,202]);
});
5.2 手工Tests函数
使用断言并赋值的形式
常见的断言代码:
检查response的body中是否包含字符串
tests["Body matches string"] = responseBody.has("string_you_want_to_search");
检查JSON节点的值和节点元素的个数为5
var data = JSON.parse(responseBody).city; //把JSON字符串转化为对象
tests["Your test name"] = data.value===100;
tests["program's lenght"] = data.programs.length===5;
验证Response time是否小于某个值
tests["Response time is less than 200ms"] = responseTime < 200;
六、执行测试
设置完迭代,点击执行,开始执行接口测试