5

我正在尝试在 Postman 中创建一个测试,以根据 switch 语句的结果返回不同的文本响应。但是,我不确定为什么当我单击“运行”时它说没有可用的测试我已经正确设置了我的 Get 方法,因为当我自己执行它时它返回例如 200 OK。我有以下内容:

var statMessages ;

switch (statMessages) {
  case '500':
    console.log('Internal Server Error.');
    break;
  case '200':
    console.log('200 Ok');
    break;
  case '503':
    console.log('Service unavailable.');
    break;
  case '502':
    console.log('502 bad gateway.');
    break;
  case '599':
    console.log('Network connect timeout error.');
    break;
  case '408':
    console.log('Request timedout.');
    break;
  default:
   console.log('Sorry, we are out of ' + statMessages + '.');
}
console.log("Try again?");
4

2 回答 2

1

在此处输入图像描述如果我没有误解你的问题,那么我认为你应该这样尝试。抓取 HTTP 状态代码,如您的statMessages

var statMessages = responseCode.code; // it'll return numeric code e.g 200

switch (statMessages) {
  case 500:
    tests["Internal Server Error."] = statMessages === 500;
    break;
  case 200:
    tests["200 Ok"] = statMessages === 200;
    break;
  case 503:
    tests["Service unavailable."] = statMessages === 503;
    break;
  case 502:
    tests["502 bad gateway."] = statMessages === 502;
    break;
  case 599:
    tests["Network connect timeout error."] = statMessages === 599;
    break;
  case 408:
    tests["Request timedout."] = statMessages === 408;
    break;
  default:
    tests["Sorry, we are out of" + responseCode.code]
}

于 2018-05-02T09:50:07.600 回答
0

我不确定在switch此处使用该语句的原因(我确定它是针对您的上下文中的某些内容),但如果您只是测试要返回的特定代码并查看日志消息,您可能只是有一些东西基本是这样的:

pm.test(`Status code check - Status Code was: ${pm.response.code}`, () => {
    pm.expect(pm.response.code).to.be.oneOf([500,200,502,599,408])
}) 

在此处输入图像描述

如果断言失败,测试将失败,错误将显示返回的状态代码。

在此处输入图像描述

于 2018-05-02T10:36:01.093 回答