Postman入门到精通
场景
-
开发接口的时候需要快速的调用接口,以便调试
-
测试的时候需要非常方便的调用接口,通过不同的参数去测试接口的输出
-
这些接口调用是需要保存下来的反复运用的
-
在运行过程中如果有断言(检查点)加持就更好了
Postman能做什么
- Developing APIs is hard
- Postman makes it easy
Postman的相关资料
- 官方文档:https://www.getpostman.com/docs/
- 社区及支持:https://www.getpostman.com/community
- 技术社区:http://www.testpub.cn
第一个API请求
- 测试对象:v2ex的API
- 文档: https://www.v2ex.com/p/7v9TEc53
- API地址:https://www.v2ex.com/api/topics/hot.json
http请求
HTTP消息是服务器和客户端之间交换数据的方式
有两种类型的消息:
- 请求–有客户端发送用来出发一个服务器上的动作
- 响应–来之服务器的应答
HTTP请求的构成
- 起始行
- Headers
- Body
HTTP请求之起始行
起始行包含3要素
- 一个HTTP方法,一个动词(GET、PUT、POST)或者一个名词(HEAD、OPTIONS),描述要执行的动作
- 请求目标(request target),通常是一个URL,或者是协议、端口和域名的绝对路径,通常以请求的环境为特征
- HTTP版本(HTTP version),定义了剩余报文的结构,作为对期望的响应版本的指示符
HTTP请求之headers
来自请求的HTTP headers 遵循和 HTTP header 相同的基本结构:不区分大小写的字符串,紧跟着的冒号(":")和一个结构取决于header的值。整个header(包括值)由一行组成,这一行可以相当长。
HTTP请求之body
请求的最后一部分是它的body
不是所有的请求都有一个body:例如获取资源的请求,GET、HEAD、DELETE和OPTIONS,通常他们不需要body。
有些请求将数据发送到服务器以便更新数据:常见的情况是POST请求(包含html表单数据)
HTTP响应的构成
- 状态行
- Headers
- Body
HTTP响应之状态行
HTTP响应的起始行被称作状态行(status line),包含以下信息:
- 协议版本,通常为HTTP/1.1
- 状态码(status code),表明成功或失败。常见的状态码是200、404或302.
- 状态文本(status text)
常见的状态码:
200 ok
201 Created
301 Moved Permanently(重定向)
302 Found
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error
502 Bad Gateway
HTTP响应之headers
响应的HTTP headers遵循和任何其他 HTTP header 相同的基本结构:不区分大小写的字符串,紧跟着的冒号(":")和一个结构取决于header的值。整个header(包括值)表现为单行形式。
HTTP响应之body
响应的最后一部分是body。不是所有响应都有body:具有状态码(201或204)的响应,通常不会有body。
增加断言
测试的3A原则
- Arrange: 准备被测功能相关的测试数据,比如往系统里录入一批工单以便测试工单的分页功能
- Act : 调用被测的功能,实际上这就是我们一直讲的测试步骤
- Assert: 断言
断言
预期与世界结果的判断
预期==实际:用例通过,写到报告里
预期!==实际:用例失败,写到报告里
给v2ex的API增加断言
- 返回的状态码必须是200
- 返回10条内容
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Your test name", function () {
var jsonData = pm.response.json();
console.log(jsonData.length)
pm.expect(jsonData.length).to.eql(10);
});