即使在Nightwatchjs中testing失败,Browserstack也能报告成功

我刚开始使用带有浏览器的nightwatch,我注意到当我们得到一个失败的testing时,nightwatchlogging失败,但是browserstack没有。 我正在使用的样本testing 。 另外我正在使用BrowserStack的免费试用版。

我的问题是:

  1. testing运行失败时,有什么想法可以告诉浏览器吗?

从BrowserStack 文档 :

REST API

可以使用以下代码片段将testing标记为合格或不合格:

var request = require("request"); request({uri:"https://user:key@www.browserstack.com/automate/sessions/<session-id>.json", method:"PUT", form:{"status":"completed","reason":""}}) 

状态的两个潜在值可以完成或错误。 或者,也可以传递一个原因。

我的问题是:

  1. 如何在testing执行后获得'session-id'?
  2. 如果我可以在仪表板中看到“已完成”状态,该怎么办?

  1. BrowserStack上的会话只有三种状态: 已完成错误超时 。 selenium(因此,BrowserStack)没有一种理解方式,如果一个testing已经通过或失败。 它的testing出现在控制台上的多个断言,你推断,如果一个testing已经通过/失败。 但是,这些断言不会到达BrowserStack。 正如您正确地确定的那样,如果在控制台中看到失败,则可以使用REST-API将会话的状态更改为“错误”。

  2. 我build议在testing执行时提取testing的会话ID,因为在testing执行之后取得会话ID是一个漫长的过程。 在Nightwatch中,您可以按如下方式获取会话ID:

 browser.session(function(session) { console.log(session.sessionId); }); 
  1. 是的,一旦完成,您当然可以更改会话的状态。 这就是REST-API的帮助!
Interesting Posts