Postman

基本介绍

使用curl 后直接脚本执行更快

自动化接口测试的效果,那么在基本的模拟请求上还需要做哪些呢?

  • 如何判断接口是否请求成功
  • 如何进行接口批量、定期测试
  • 如何处理依赖接口问题(比如商品下单的接口必须要求先登录)
  1. 如何判断接口是否请求成功

工具 (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 (监视器))
请求依赖问题
问题变为:

  1. 接口调用顺序
    1. 按照Collection目录中的顺序(从上到下)
    2. 自定义执行顺序 postman.setNextRequest(“填写你要跳转的接口名”)
  2. 数据传递,将接口A返回的数据传递给后续的接口B、C、D
    1. 全局变量
    2. 多环境区分与切换,区别仅 url , 设置-manage environments,每个环境创建host,执行集合时选择环境即可

Dbeaver

数据库管理工具

方便的功能

  1. 指定不同环境的颜色,开发测试生产环境用不同颜色不容易混淆
  2. 文件系统一样管理Connection,太多连接难找
  3. 比较两张表

Another Desktop Manager

Redis 连接管理
如果key是按照.分割的,可以像目录一样分类查看key

Offset Exporer 2

kafka 连接