我刚开始使用带有browserstack的夜视仪,我注意到当我们得到失败的测试时,nightwatch会记录失败,但是browserstack没有。 sample test I am using。 我也在使用BrowserStack的免费试用版。
我的问题是:
来自BrowserStack doc:
REST API
可以使用。将测试标记为通过或失败 以下代码段:
var request = require("request");
request({
uri: "https://user:key@www.browserstack.com/automate/sessions/<session-id>.json",
method: "PUT",
form: {
"status": "completed",
"reason":""
}
});
这两个 状态的潜在值可以完成或错误。 可选地,也可以通过原因。
我的问题是:
答案 0 :(得分:5)
关于BrowserStack的会话只有三种类型的状态: 已完成,错误或超时。如果测试已通过或失败,Selenium(以及BrowserStack)无法理解。通过您的测试中出现在控制台上的多个断言,您可以推断测试是否已通过/失败。但是,这些断言不会到达BrowserStack。正确识别后,如果您在控制台中发现故障,可以使用REST-API将会话状态更改为“错误”。
我建议在执行测试时获取测试的会话ID,因为在测试执行之后获取会话ID 是一个漫长的过程。在Nightwatch中,您可以按如下方式获取会话ID:
browser.session(function(session) {
console.log(session.sessionId);
});
答案 1 :(得分:0)
如果您是来这里寻找Python解决方案的,可以使用
requests.put(
"https://api.browserstack.com/automate/sessions/{}.json".format(driver.session_id),
auth=(USERNAME, ACCESS_KEY),
json={"status": "failed", "reason": "test failed"})