Postman
基本介绍
使用curl 后直接脚本执行更快
自动化接口测试的效果,那么在基本的模拟请求上还需要做哪些呢?
- 如何判断接口是否请求成功
- 如何进行接口批量、定期测试
- 如何处理依赖接口问题(比如商品下单的接口必须要求先登录)
- 如何判断接口是否请求成功
工具 (Postman) 或者代码能帮我们直接判断结果是否符合预期。那么在接口测试上,大体就两个思路:
- 判断请求返回的 code 是否符合预期
- 判断请求返回的内容中是否包含预期的内容(关键字)
Tests 功能区 — JavaScript
- responseCode :包含请求的返回的状态信息(如:code)
- responseBody:为接口请求放回的数据内容(类型为字符串)
- tests :为键值对形式,用于表示我们的测试结果是成功与否,最终展示在 Test Results 中。
- key :(如:code 200)我们可以用来当做结果的一个描述
- value:其值为布尔型,ture 表示测试通过, false 表示测试失败。
使用
获取返回数据的头部信息:postman.getResponseHeader(“”)
设置全局变量:postman.setGlobalVariable(“variable_key”, “variable_value”);
Status code : Code is 200
tests[“Status code is 200”] = responseCode.code === 200;
Response body: Contains string
判断返回的内容中是否存在“关键字”。(tests 的 key 可修改,将不再强调)
tests[“Body matches string”] = responseBody.has(“这里可以改为你要判断的关键字内容”)
Response body: is equal to string
tests[“Body is correct”] = responseBody === “这里可以改为你的预期内容”;
Response body: JSON value check
//上文提到,responseBody 为字符串类型,支持转为 Json 格式
var jsonData = JSON.parse(responseBody);
tests[“Your test name”] = jsonData.value === 100;
Response time is less than 200ms
tests[“Response time is less than 200ms”] = responseTime < 200;
集合(批量)测试
变化的参数数据
Pre-request Script 与 Tests 类似,区别:在执行请求之前/之后运行
参数变量设置为{{username}} {{psw}}
//设置全局变量
postman.setGlobalVariable(“username”, “test1”);
postman.setGlobalVariable(“psw”, “123”);
测试数据集 Data File,以csv格式为例:
username,password
test1,123456
定期任务 ( Monitors (监视器))
请求依赖问题
问题变为:
- 接口调用顺序
- 按照Collection目录中的顺序(从上到下)
- 自定义执行顺序 postman.setNextRequest(“填写你要跳转的接口名”)
- 数据传递,将接口A返回的数据传递给后续的接口B、C、D
- 全局变量
- 多环境区分与切换,区别仅 url , 设置-manage environments,每个环境创建host,执行集合时选择环境即可
Dbeaver
方便的功能
- 指定不同环境的颜色,开发测试生产环境用不同颜色不容易混淆
- 文件系统一样管理Connection,太多连接难找
- 比较两张表
Another Desktop Manager
Redis 连接管理
如果key是按照.分割的,可以像目录一样分类查看key
Offset Exporer 2
kafka 连接