如何使用 webdriverIO 将 allure 报告中的屏幕截图集成
How to integrate screenshots in allure report with webdriverIO
我试图在测试的每个步骤后在我的魅力报告中生成屏幕截图,或者在测试结束时只生成一个屏幕截图。我已经参考了 webdriverIO 文档,看来我应该将 afterStep
函数与 .takeScreenshot
方法一起使用。我已经在我的配置文件中尝试过,但没有截图
这是我的 afterStep 函数:
afterStep: function (test, scenario, { error, duration, passed }) {
if (!error) {
browser.takeScreenshot() } }
最接近我想要的结果的是使用这个
afterTest: function (test, scenario, { error, duration, passed }) {
if (!error) {
browser.saveScreenshot('test.png') } }
它的作用是在测试结束时截图并保存在我的根目录下,
但是图片无法显示在倾城报告中
如何附上要在 Allure 报告中显示的屏幕截图?
仔细检查我的代码后,我意识到我在这里做错了一件事。
我的配置文件中有另一个 afterTest
挂钩,它被调用而不是捕获屏幕截图的挂钩。为了解决这个问题,我对原始 afterTest
挂钩使用了 browser.takeScreenshot()
函数,这解决了我的问题。截图附在魅力报告末尾。
browser.saveScreenshot
将屏幕截图保存到您的本地文件夹,同时 browser.takeScreenshot
将其附加到魅力报告。
我的全afterTest
勾
afterTest: async function (test, context, { error, result, duration, passed, retries }) {
if(passed) {
await browser.takeScreenshot();
browser.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed","reason": "Assertions passed"}}');
} else {
browser.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "At least 1 assertion failed"}}');
}
},
在我的例子中,我的 wdio.conf.ts
文件只有 1 个 afterTest
命令。
我正在使用 ts 并且我必须添加 async & await ,在此之后它得到解决并在魅力报告中附上屏幕截图:
afterTest: async function(test, context, { error, result, duration, passed, retries }) {
if (error) {
await browser.takeScreenshot()
}
},
我试图在测试的每个步骤后在我的魅力报告中生成屏幕截图,或者在测试结束时只生成一个屏幕截图。我已经参考了 webdriverIO 文档,看来我应该将 afterStep
函数与 .takeScreenshot
方法一起使用。我已经在我的配置文件中尝试过,但没有截图
这是我的 afterStep 函数:
afterStep: function (test, scenario, { error, duration, passed }) {
if (!error) {
browser.takeScreenshot() } }
最接近我想要的结果的是使用这个
afterTest: function (test, scenario, { error, duration, passed }) {
if (!error) {
browser.saveScreenshot('test.png') } }
它的作用是在测试结束时截图并保存在我的根目录下,
但是图片无法显示在倾城报告中
如何附上要在 Allure 报告中显示的屏幕截图?
仔细检查我的代码后,我意识到我在这里做错了一件事。
我的配置文件中有另一个 afterTest
挂钩,它被调用而不是捕获屏幕截图的挂钩。为了解决这个问题,我对原始 afterTest
挂钩使用了 browser.takeScreenshot()
函数,这解决了我的问题。截图附在魅力报告末尾。
browser.saveScreenshot
将屏幕截图保存到您的本地文件夹,同时 browser.takeScreenshot
将其附加到魅力报告。
我的全afterTest
勾
afterTest: async function (test, context, { error, result, duration, passed, retries }) {
if(passed) {
await browser.takeScreenshot();
browser.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed","reason": "Assertions passed"}}');
} else {
browser.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "At least 1 assertion failed"}}');
}
},
在我的例子中,我的 wdio.conf.ts
文件只有 1 个 afterTest
命令。
我正在使用 ts 并且我必须添加 async & await ,在此之后它得到解决并在魅力报告中附上屏幕截图:
afterTest: async function(test, context, { error, result, duration, passed, retries }) {
if (error) {
await browser.takeScreenshot()
}
},