即使在Nightwatchjs中testing失败,Browserstack也能报告成功
我刚开始使用带有浏览器的nightwatch,我注意到当我们得到一个失败的testing时,nightwatchlogging失败,但是browserstack没有。 我正在使用的样本testing 。 另外我正在使用BrowserStack的免费试用版。
我的问题是:
- 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":""}})
状态的两个潜在值可以完成或错误。 或者,也可以传递一个原因。
我的问题是:
- 如何在testing执行后获得'session-id'?
- 如果我可以在仪表板中看到“已完成”状态,该怎么办?
-
BrowserStack上的会话只有三种状态: 已完成 , 错误或超时 。 selenium(因此,BrowserStack)没有一种理解方式,如果一个testing已经通过或失败。 它的testing出现在控制台上的多个断言,你推断,如果一个testing已经通过/失败。 但是,这些断言不会到达BrowserStack。 正如您正确地确定的那样,如果在控制台中看到失败,则可以使用REST-API将会话的状态更改为“错误”。
-
我build议在testing执行时提取testing的会话ID,因为在testing执行之后取得会话ID是一个漫长的过程。 在Nightwatch中,您可以按如下方式获取会话ID:
browser.session(function(session) { console.log(session.sessionId); });
- 是的,一旦完成,您当然可以更改会话的状态。 这就是REST-API的帮助!