Browserstack报告成功状态,但实际上测试失败

时间:2018-03-07 17:56:44

标签: node.js selenium-webdriver webdriver-io browserstack

我使用Webdriver.io + Browserstack遇到了问题。当我在浏览器中运行测试(自动化服务)时,没关系,我看到了正确的状态http://prntscr.com/ijw1rr,但是当我正在运行移动应用程序测试(App Automate)时,它显示我总是已完成http://prntscr.com/ijw277

在wdio.conf.js中我应该从REST API文档REST API粘贴此请求? 我也在这里找到类似的东西,但不知道我怎么能用它。 Browserstack reports successful even when test fails in Nightwatchjs

这是一个适合我的例子

afterTest: function (test) {
     var session = browser.sessionId;
     var request = require("request");
     request({uri: "https:/<user>:<key>@api.browserstack.com/app-automate/sessions/"+session+".json", method:"PUT", form:{"status":"completed","reason":""}});
 }

但它就像硬编码(每次都会完成或失败,取决于我指定的内容),我需要以某种方式填充此值取决于断言或测试是否失败。

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码块将browsestack上的测试标记为失败

afterTest: test => {
   if (!test.passed) {
        request({
        uri: `https://${user}:${key}@api.browserstack.com/app-automate/sessions/${browser.sessionId}.json`,
        method:'PUT',
        form:{ 'status':'error','reason': errors.join(' | ') },
    })
}

只有在测试失败时才会调用此api调用。因此,所有已完成的测试都将为绿色,失败的测试将标记为红色/错误/失败。