Postman使用switch语句编写HTTP状态码测试提示无可用测试的问题
解决Postman测试提示「无可用测试」的问题
我帮你捋清楚问题出在哪,以及怎么快速修复:
核心问题点
- 测试未被Postman识别:Postman要求所有测试逻辑必须包裹在
pm.test()方法中,不然工具会判定没有可用测试用例 - 变量未正确赋值:你定义了
statMessages但没给它赋值,根本没拿到实际的响应状态码,等于在空变量上做判断 - 状态码类型不匹配:Postman返回的响应状态码是数字类型(比如200、500),但你的case用了字符串('200'),会导致匹配失败
修正后的测试代码
// 定义测试用例,第一个参数是测试名称,第二个参数是测试逻辑 pm.test("根据状态码返回对应提示", function () { // 获取实际的响应状态码 const statusCode = pm.response.code; let statMessage; switch (statusCode) { case 200: statMessage = '200 Ok'; break; case 500: statMessage = 'Internal Server Error.'; break; case 503: statMessage = 'Service unavailable.'; break; default: statMessage = `未匹配到状态码: ${statusCode}`; } // 打印提示到控制台 console.log(statMessage); // 加上断言让测试有明确的通过/失败状态(可选但推荐) pm.expect(statMessage).to.not.be.empty; });
额外小提示
- 如果非要用字符串类型的状态码,可以把
pm.response.code转成字符串:const statusCode = pm.response.code.toString();,对应的case就用字符串('200') - 写完代码后记得保存测试脚本,再点击「运行」,就能正常识别到测试用例了
内容的提问来源于stack exchange,提问作者Simulator23
相关产品推荐
相关产品推荐

