以添加会议室接口为例,测试异常场景
测试数据

token name capacity
30个字符 10
错误的token 30个字符 10
正确的token 0个字符 10
正确的token 31个字符 10
正确的token 30个字符 0

添加对应的期望结果
image.png

动态设置token值

token值因为有时间的限制,
所以需要根据接口中需要动态设置token,在prerequest 中设置

  1. // 运行之前根据csv文件中的定义,动态设置 token 值以及name值
  2. // 1. 先获取到csv文件中的定义
  3. var csv_token = pm.variables.get("token");
  4. if (csv_token == ""){
  5. var error_token = "";
  6. // 更新变量token的值
  7. pm.globals.set("newtoken", error_token);
  8. }
  9. // 如果csv文件中定义的是错误的token 这里要准备一个错误的token值 使用代码准备
  10. if (csv_token == "错误的token"){
  11. var error_token = "xxxxxxyyyyxyxyxyx";
  12. // 更新变量token的值
  13. pm.globals.set("newtoken", error_token);
  14. }
  15. if(csv_token == "正确的token"){
  16. // 设置正确的token
  17. // 先去获取token
  18. var tokenurl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ww88fc20d87e4cdfa1&corpsecret=8kZYaPdkie4nuh3itIwhgUKpam5Xyoq5hU4uivaswp4"
  19. // 使用代码的方式发送请求 获取token值 设置为变量
  20. pm.sendRequest(tokenurl, function (err, response) {
  21. // 服务器返回
  22. var jsondata = response.json();
  23. pm.globals.set("newtoken", jsondata["access_token"]);
  24. });
  25. }

断言

从csv文件中提取变量值设置断言

  1. // 获取csv文件中定义的变量
  2. const errcode = pm.variables.get("errcode");
  3. const errmsg = pm.variables.get("errmsg");
  4. pm.test("errcode值为"+errcode, function () {
  5. var jsonData = pm.response.json();
  6. pm.expect(jsonData["errcode"]).to.eql(errcode);
  7. });
  8. pm.test("errmsg值包含"+errmsg, function () {
  9. var jsonData = pm.response.json();
  10. pm.expect(jsonData["errmsg"].indexOf(errmsg)>=0)
  11. });

批量执行。
image.png