编写脚本
AREX 通过脚本(JavaScript
代码片段)可实现在接口请求或集合测试时添加动态行为。
脚本可实现的功能
- 测试(断言)请求返回结果的正确性(后置脚本/test script)。
- 动态修改接口请求参数,如增加接口签名参数等(前置脚本/pre-request script)。
- 接口请求之间传递数据(使用脚本操作变量)。
以下两个环节可添加脚本:
- 在将请求发送到服务器之前,使用前置脚本。
- 收到响应后,使用后置脚本(断言测试)。
脚本运行顺序
对于单个请求来说,脚本运行顺序如下:
- 前置脚本将在请求发送前执行。
- 后置脚本将在请求发送后执行。
前置脚本
接口前置脚本
打开一个请求,进入 Pre-request Script 标签页。
点击 Pre-request Script 标签中 Add Script Block,为请求添加前置脚本。
点击 Send 发送请求,该脚本将在请求发送到接口前执行。
后置脚本
后置脚本是在请求发送完成后
执行的代码片段。主要用来断言
请求返回的结果是否正确,并可以将请求返回的结果数据写入环境变量等。
接口后置脚本
打开一个请求,进入 Tests 标签页。
点击 Add Script Block,为请求添加前置脚本。
点击 Send 发送请求,该脚本将在请求发送到接口后执行。
运行后,在 Result 中查看断言结果:
使用场景
1. 使用变量
环境变量
// 设置环境变量
pm.environment.set("variable_key", "variable_value");
// 获取环境变量
pm.environment.get("variable_key");
// 删除环境变量
pm.environment.delete("variable_key");
临时变量
// 设置临时变量
pm.variables.set("variable_key", "variable_value")
// 获取临时变量
pm.variables.get("variable_key")
// 删除临时变量
pm.variables.delete("variable_key")
2. 发送接口请求
发送 GET 请求
let response = await pm.sendRequest({method:"GET",url:"http://10.5.153.1:8090/api/config/schedule/useResult/appId/arex-0.2.4.test2"});
发送 POST 请求
let response = await pm.sendRequest({url:"http://10.5.153.1:8088/api/report/queryDifferences",method:"POST",data:"{"categoryName":"ServletEntrance","operationName":"/owners/{ownerId}","planItemId":"633184edc9af0157f44eaeba"}",headers:{"Content-Type":"application/json","access-token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbmZvIjoidGVzdCJ9.YeLmUW--fqrtmag1QTDmL8U7RVZlb34xPAAxorxSCPM"}});
3. 断言请求返回的结果是否正确:
// 设置断言,判断响应状态码是否为 200
pm.test("Status code is 200", ()=> {
pm.expect(pm.response.status).toBe(200);
});
//示例:验证响应结果中的 age 属性是否等于 18
pm.test("Check JSON response property", ()=> {
pm.expect(pm.response.body.age).toBe(18);
});