一、理论部分
1. 写在开始的话
在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性。而市场上有很多优秀的接口测试工具,比如SoapUI、Postman、JMeter、yapi等,能够高效地帮助后端开发人员独立进行接口测试。这里主要介绍如何使用Postman进行接口测试。
2. 简单了解一下Postman
Postman是一个接口测试工具,相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配。Postman与浏览器的区别在于,它更直观地展示接口返回的结果,特别是JSON格式的数据。
二、工具应用
1. 新建接口
1.1 创建Collection集合
在开始一个项目时,为了便于组织和管理,可以将同属该项目的多个API放在一组里。首先需要新建一个Collection:New -> Collection。
1.2 创建请求
在Postman中,你可以通过点击左上角的"Send"按钮或使用快捷键(默认为Ctrl+Enter)发送请求。在弹出的窗口中,你可以填写请求的URL、请求方法(GET、POST等)、请求头和请求体等信息。
三、接口实例
1. POST请求
POST请求是用来发送数据的。例如,产品经理的PRD文档要求分配加工厂接口里新增加工厂ID字段,整数类型,非必填。测试人员需要打开Postman,填写接口信息,结合测试用例,组合变换参数信息后,查看返回的JSON数据与PRD是否一致。
以注册用户为例,测试人员可以在Postman中设置如下请求:
- URL: http://115.28.108.130:5000/api/user/reg/
- Method: POST
- Header: Content-Type: application/json
- Body: 使用raw格式,输入JSON字符串:
json
{
"name": "小小",
"password": "123456"
}
发送请求后,可以通过响应结果验证接口是否正确处理了注册信息。
2. GET请求
GET请求是用来获取数据的。例如,XX系统获取出库账单接口,测试人员需要打开Postman,填写接口信息,结合测试用例,组合变换参数信息后,查看返回的JSON数据与PRD是否一致。
以获取出库账单为例,测试人员可以在Postman中设置如下请求:
- URL: https://api.example.com/purchase/prepareOrder/importListFromPlm
- Method: GET
- Query Parameters: 根据需要添加查询参数
- Response: 检查返回的JSON数据是否包含预期的账单信息。
四、断言与测试
Postman支持对响应结果进行断言和测试。断言可以帮助你检查响应结果中的特定内容或值,如检查JSON数据中的某个字段是否符合预期。测试则可以对整个响应结果进行验证,如检查响应状态码是否为200。
在测试过程中,可以使用Postman的断言功能来验证响应结果。例如:
- 断言状态码为200:
javascript
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
- 断言响应文本中包含特定字符串:
javascript
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("access_token");
});
```[^11^]。
五、集合与环境
在Postman中,你可以将多个请求组织到一个集合中,方便管理和复用。此外,你还可以为集合设置不同的环境变量,以便在不同的环境下发送请求时使用不同的参数值。
在测试不同环境的API时,可以使用环境变量来管理不同环境的配置。例如:
- 设置环境变量:
javascript
postman.setEnvironmentVariable("url", "http://192.168.1.21/oa/index.jsp");
- 在请求中使用环境变量:
plaintext
https://{{url}}/api/user/reg/
```[^11^]。
六、参数化与数据驱动测试
在Postman中,你可以使用参数化测试来复用测试用例,并通过数据驱动的方式传递不同的参数值。这样可以使你的测试用例更加灵活和健壮。
七、Mock服务器与挡板测试
Postman还支持Mock服务器和挡板测试功能。你可以使用Mock服务器模拟接口响应,以便在没有后端服务的情况下进行前端开发或测试。同时,挡板测试可以帮助你在开发过程中模拟接口请求和响应,以便更好地进行集成测试和调试。
相信你已经对Postman工具有了基本的了解和使用方法。在实际工作中,建议根据项目的需求和场景选择合适的接口测试方法和工具,以提高接口测试的效率和准确性。下面V 哥跟业务场景分讲解几个案例的使用。
八、使用案例
1. 用户注册接口测试
场景描述
测试用户是否可以成功注册到系统中。
步骤
-
创建一个新的Collection,命名为"用户注册测试"。
-
在Collection中创建一个新的POST请求。
-
设置URL为注册API的地址,例如:
https://api.example.com/register
。 -
在Headers中添加
Content-Type: application/json
。 -
在Body中使用raw格式,填入注册信息的JSON:
json{ "username": "newuser", "password": "password123", "email": "newuser@example.com" }
-
发送请求并检查响应状态码是否为201。
-
使用断言检查返回的JSON中是否包含用户信息。
2. 用户登录接口测试
场景描述
测试用户是否可以使用正确的凭证登录系统。
步骤
- 创建一个新的GET或POST请求(取决于API设计)。
- 设置URL为登录API的地址,例如:
https://api.example.com/login
。 - 如果是GET请求,添加查询参数
username
和password
。 - 如果是POST请求,在Body中以JSON格式添加用户名和密码。
- 发送请求并检查响应状态码是否为200。
- 使用断言检查返回的JSON中是否包含token信息。
3. 商品列表查询接口测试
场景描述
测试系统是否能够返回正确的商品列表。
步骤
- 创建一个新的GET请求。
- 设置URL为商品列表API的地址,例如:
https://api.example.com/products
。 - 添加可能的查询参数,如
category=books
或price=100
。 - 发送请求并检查响应状态码是否为200。
- 使用断言检查返回的JSON数组长度是否正确。
4. 商品添加到购物车接口测试
场景描述
测试用户是否可以将商品添加到购物车。
步骤
- 确保用户已经登录并获取到token。
- 创建一个新的POST请求。
- 设置URL为添加到购物车API的地址,例如:
https://api.example.com/cart/items
。 - 在Headers中添加
Authorization: Bearer <token>
。 - 在Body中以JSON格式添加商品ID和数量。
- 发送请求并检查响应状态码是否为200。
- 使用断言检查返回的JSON中购物车是否包含添加的商品。
5. 文件上传接口测试
场景描述
测试用户是否可以上传文件到系统。
步骤
- 创建一个新的POST请求。
- 设置URL为文件上传API的地址,例如:
https://api.example.com/upload
。 - 在Headers中添加
Content-Type: multipart/form-data
。 - 在Body中选择form-data格式,并添加键值对,键为
file
,值为选择文件按钮。 - 附加其他必要的表单字段,如文件描述。
- 发送请求并检查响应状态码是否为200或201。
- 使用断言检查返回的JSON中是否包含文件上传成功的确认信息。
6. 商品下单接口测试
场景描述
测试用户是否可以成功下单购买商品。
步骤
- 确保用户已经登录并获取到token。
- 创建一个新的POST请求。
- 设置URL为下单API的地址,例如:
https://api.example.com/orders
。 - 在Headers中添加
Authorization: Bearer <token>
。 - 在Body中以JSON格式添加订单信息,包括购物车中的商品ID列表和数量。
- 发送请求并检查响应状态码是否为200或201。
- 使用断言检查返回的JSON中是否包含订单确认信息。
7. 用户信息更新接口测试
场景描述
测试用户是否可以更新自己的个人信息。
步骤
- 确保用户已经登录并获取到token。
- 创建一个新的PUT请求。
- 设置URL为用户信息更新API的地址,例如:
https://api.example.com/user/profile
。 - 在Headers中添加
Authorization: Bearer <token>
和Content-Type: application/json
。 - 在Body中以JSON格式添加新的用户信息。
- 发送请求并检查响应状态码是否为200。
- 使用断言检查返回的JSON中是否包含更新后的用户信息。
8. 订单状态查询接口测试
场景描述
测试用户是否可以查询到自己订单的当前状态。
步骤
- 确保用户已经登录并获取到token。
- 创建一个新的GET请求。
- 设置URL为订单状态查询API的地址,例如:
https://api.example.com/orders/{orderId}
。 - 在Headers中添加
Authorization: Bearer <token>
。 - 替换URL中的
{orderId}
为实际的订单ID。 - 发送请求并检查响应状态码是否为200。
- 使用断言检查返回的JSON中是否包含订单的正确状态信息。
在执行这些测试案例时,请确保遵循实际的API规范,并根据API的特定要求调整步骤和参数。