繁体   English   中英

接收非 200 状态代码时,如何防止 WebLOAD wlHttp 模块中止回合?

[英]How to prevent WebLOAD wlHttp module from aborting round when receiving non-200 status code?

我最近的任务是在 WebLOAD 中工作以测试 API 的功能。 由于项目的要求,不能将 WebLOAD 的替代品用于该任务。

我负责编写的一些测试用例涉及提交格式错误的请求并确保返回 400 响应代码。 我的问题是每次收到非 200 响应时,wlHttp 都会在控制台中引发错误并中止当前回合。

我试过用 try/catch 来包围wlHttp.Get调用,但这没有用。 任何帮助将不胜感激,从本文档来看,似乎应该可以在收到非 200 状态代码后继续。

下面是一个 MVP,类似于我为我的测试用例编写的代码。 在控制台输出(在 MVP 下方)中,您可以看到记录了“1”,但是在记录了有关 400 的错误后立即停止了执行,而console.log("2")从未运行过。

function InitAgenda() {
    wlGlobals.GetFrames = false;
    wlGlobals.SaveSource = true;
    wlGlobals.SaveHeaders = true;
}

/***** WLIDE - ID:5 - JavaScript *****/

wlHttp.ContentType = "application/json";

console.log("1");
wlHttp.Get("https://httpstat.us/400");
console.log("2");

// END WLIDE
0.00        *** Script Execution Start Time:  Thu Aug 15 17:15:56 2019 ***  
0.33        Start round 1 (1 of 1)  
0.34        1   
0.76        400 Bad request. Requested URL: https://httpstat.us/400. in main_agenda at line 15  
1.85        End round 1 (1 of 1)    
2.06        *** Script Execution End Time:  Thu Aug 15 17:15:58 2019 ***    
2.06        Test Failed: The number of errors is equal to or greater than 1.    

您应该使用wlHttp.ReportHttpErrors=false

使用 document.wlStatusNumber 检查响应。

见示例:

function InitAgenda()
{

wlGlobals.GetFrames = false;
    wlGlobals.SaveSource = true;
    wlGlobals.SaveHeaders = true;
}
/***** WLIDE - ID:5 - JavaScript *****/

wlHttp.ContentType = "application/json";

console.log("1");
wlHttp.ReportHttpErrors=false
wlHttp.Get("https://httpstat.us/400");
if (document.wlStatusNumber != 400) {
    WarningMessage("hmm, expected 400 but got " + document.wlStatusNumber + ", " + document.wlStatusLine)
}
console.log("2");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM