| 编辑推荐: |
本文主要介绍了Postman接口测试练习相关内容,希望对您的学习有所帮助。
本文来自于CSDN,由火龙果软件Alice编辑、推荐。 |
|
1. 接口文档分析
接口文档通过Swagger文档提供
通过使用Swagger文档进行接口测试
开发会直接给Swagger文档链接,可以直接打开
Swagger文档:文档生成,描述,调用后端接口,展示后端想要暴露的接口;
通过Swagger UI 能够知道信息如下:
一个完整的 Swagger/OpenAPI 文档通常包含以下部分:
1.基本信息(Info Object)
- title:API 名称(如 “Swagger Petstore”)
- version:API 版本(如 “1.0.7”)
- description:详细描述
- termsOfService:服务条款 URL
- contact:开发者联系方式(邮箱等)
- license:开源许可证(如 Apache 2.0)
2.服务器信息(Servers in OAS 3.0;在 OAS 2.0 中为 host + basePath
+ schemes)
- host: petstore.swagger.io
- basePath: /v2
- schemes: 支持 http 和 https
重点关注:请求接口模块
业务接口模块,不同模块下有不同的请求接口
点击GET请求: 可以查看请求参数的名称-Name,参数描述-Description
点击Try it out 可以发送请求
发送流程:点击Try it out → 填写参数 → 再点击Execute按钮 → 查看响应结果
请求响应:可以查看响应状态码-200, 响应描述,响应具体返回的值等信息
Models: 接口字段描述
根据Swagger文档分析接口的增删改查,为下一步接口用例设计做准备工作;
2. 接口测试用例设计
设计接口测试用例冒烟用例:测试主流程
接口信息通过Swagger文档中获取
测试用例设计: -
用例编号:统计用例数量
- 模块:用例属于哪个功能模块
- 测试标题:描述接口用例的信息
- 优先级:执行测试用例的优先级
- 前置条件:自定义-看业务
- URL: 通过Swagger中的Request URL
- 请求方法:通过Swagger判断
- 请求参数:不同请求传递参数不同,自行判断
- 预期结果:
- 实际结果
3. Postman 进行接口测试
3.1 创建测试集:
创建测试集:创建测试项目,或postman支持导入swagger文档
操作测试集功能:运行测试集-批量执行接口用例,编辑,增加请求,增加文件夹,复制,导出,删除
3.2 编写断言-下列是常用JS断言
断言可以修改的地方:大部分是下述绿色部分
1.预期状态描述:可以修改
2.括号中的为预期的值,可以修改
3. json的单独考虑:使用键值对判断,需要修改key, 返回Json值单个,使用jsonData.key即可;多个json返回值,使用[0]这种索引判断;
pm.expect(jsonData[0].name).to.eql(“doggie”);
1.验证响应状态码
postman中标题 Status Code:Code is 200
pm.test("响应状态码为 200", function () {
pm.response.to.have.status(200);
});
|
2.验证响应体中是否包含某个字符串
postman中标题:Response Body:contains string
pm.test("响应体中包含预期的字符串", function () {
pm.expect(pm.response.text()).to.include("doggie");
});
|
3.验证 JSON 中的某个值是否等于预期的值
验证Json中某个Key的value是多少
postman中标题:Response Body:JSON value check
pm.test("宠物名称为 doggie", function () {
var jsonData = pm.response.json();
pm.expect(jsonData[0].name).to.eql("doggie");
});
>
|
4.验证响应体是否与某个字符串完全相同
postman中标题:Response Body:Is equal to a string
pm.test("响应体正确", function () {
pm.response.to.have.body("response_body_string");
});
|
5.验证响应头信息中的 Content-Type 是否存在
postman中标题是:Response Body:Content-Type header check
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
|
6.验证响应时间是否小于某个值
postman中标题是:Response time is less than 200ms
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
pm.response.to.have.body("response_body_string");
});
|
断言示例:
断言使用:根据请求和响应,
3.3 运行测试集
运行测试集方式:
1.测试集页面 -> Run 按钮
2.测试集后的…三个点更多中也有run按钮
运行测试集后,可以点击结果查看详细信息,点击接口查看请求头,参数,body等信息
测试集运行参数设置:
运行后可查看结果:点击任意一个接口,可以查看响应,请求头信息和请求信息
3.4 查看测试结果
断言通过示例如下:
post新增接口:
从接口测试用例,根据请求,url,参数,需要设置断言,变量,进行接口请求
postman修改接口
修改接口:PUT请求,url, 对应的修改请求的参数,在JSON中,预期获取的响应与修改的JSON一样即可;
【注】如果Json返回多个数据,需要使用[]索引判断了,如下jsonData[1].id 为第二个想要的id;
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData[1].id).to.eql(549747);
});
|
4. 定义变量
定义变量:提前接口中公共部分,可以复用
如:同一个接口地址,不同请求方法(GET,POST,PUT,DELETE等),将公共地址提取为变量使用,就算地址变了,只需要修改变量即可;
Postman 中变量的种类与作用域
4.1 Environment:环境范围-环境变量
适用范围:大部分接口都需要使用
设置方法: postman左侧边栏Environments -> +
环境变量设置:可以通过公共变量,快速切换生产环境和测试环境,提高测试效率
环境变量使用:公共url部分替换
4.2 Collection:测试集变量-集合范围生效
适用范围:
设置方法: 测试集页面 -> Variables
在测试集中设置变量示例如图:
可以设置权限,脚本,变量
测试集变量的使用示例:
红框中全是可以修改的地方,使用的JSON中包含值的断言,响应式Json格式;
4.3 Global:全局变量-全局范围
适用范围:切换不同测试环境
设置方法:postman左侧边栏Environments -> Globals
全局变量使用和断言示例:
全局变量参数解释: -
VARIABLE: 设置变量名
- TYPE: 一般默认类型
- INITIAL VALUE: 共享初始值,团队共享,提供他人使用的共享值;
- CURRENT VALUE: 当前变量值
- Persist All按钮: 把当前变量全部替换为共享初始值
- Reset All按钮: 把当前变量设置与共享初始值一样
旧版postman
新版postman
其他变量设置 -
Data:在测试集中上传的数据
- 数据驱动-json等批量数据
- Local:脚本变量-在脚本中设置的变量,脚本范围生效,断言JS中使用的就是Local变量;
4.4 变量优先级
变量重名,会根据优先级使用
优先级从高至低为:Data -> Enviroment -> Collection ->
Global -> Local
5. 变量的使用
第一种使用:地方
使用对象:在请求 URL, Params 参数、 Body 表格、JSON/XML 文本
使用方式:通过 {{变量名}} 使用
第二种使用地方
使用对象:在 Pre-request Script 和 Tests 脚本中使用
使用方式:
1.使用postman中封装好的JS语句获取
2.通过 {{变量名}} 设置对应变量
postman中封装了:对变量操作的方法如下 和 断言的方法
寻找:Scripts中的Pre-request/Post-response中的右下方</>Snippets点击即可
获取全局变量的方法:Get a global variable
设置全局变量的方法: Set an global variable
小技巧:postman调试
在Pre-request Script 和 Tests 脚本中使用console进行调试, 打开下方Console面板,查看对应信息
6. 小结:接口测试思路
1.首先获取接口需求文档(Swageer文档或者Apifox等),了解对应请求方式,接口参数,返回值,前置条件,功能模块划分,接口响应逻辑
2.设计接口测试用例:根据接口文档中的内容,设计接口测试用例
3.用例评审后,通过Postman等接口工具,执行接口用例
Postman: 创建测试集 → 创建不同功能模块文件夹 → 接口用例创建(GET,POST,PUT,DELETE等)
→ 公共环境变量设置(划分测试环境和生产环境)→ 执行测试用例中配置:参数配置,断言配置(请求前+响应后)
→ 单个运行可以,考虑测试集运行(多模块之间配合运行接口用例)→ 可以配置测试集运行参数 → 查看测试结果
4.bug管理:沟通,记录,提交,验证,回归
5.接口测试报告产
|