如何将allure报告中的截图与webdriverIO集成

问题描述 投票:0回答:3

我尝试在测试的每个步骤之后在魅力报告中生成屏幕截图,或者在测试结束时仅生成一个屏幕截图。我已经参考了 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') } }

它的作用是在测试结束时截取屏幕截图并将其存储在我的根目录中,

enter image description here

但是图像无法显示在 Allure Report 上

enter image description here

如何附加要在 Allure 报告中显示的屏幕截图?

selenium testing webdriver-io allure
3个回答
2
投票

对我的代码进行大量检查后,我意识到我在这里做错了一件事。

我的配置文件中有另一个

afterTest
钩子,它被调用而不是捕获屏幕截图的钩子。为了解决这个问题,我对原始的
browser.takeScreenshot()
钩子使用了
afterTest
函数,这解决了我的问题。截图附在魅力报告的末尾。

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"}}');
        }
      },

enter image description here


0
投票

就我而言,我的

afterTest
文件上只有 1 个
wdio.conf.ts
命令。

我正在使用 ts ,我必须添加 async 和 wait ,之后它就得到解决并在魅力报告中附加屏幕截图:

 afterTest: async function(test, context, { error, result, duration, passed, retries }) {
            if (error) {
                await browser.takeScreenshot()
              }
        },

0
投票

就我而言,我只有一项功能,并且截屏功能不起作用。我使用 appium 使用 webdriver io 移动测试进行自动化,测试结束时,我想在我的记者中附上我的屏幕截图。

我的代码->

afterTest: async function (test, context, { error, result, duration, passed, retries }) {
        if (passed) {
            await browser.takeScreenshot();

        }
        else {
            await browser.takeScreenshot();
        }
    },

当我的测试结束时,不生成我的图像=/。

我的模块

├── @faker-js/[电子邮件受保护] ├── @types/[电子邮件受保护] ├── @types/[电子邮件受保护] ├── @wdio/[电子邮件受保护] ├── @wdio/[电子邮件受保护] ├── @wdio/[电子邮件受保护] ├── @wdio/[电子邮件受保护] ├── @wdio/[电子邮件受保护] ├── @wdio/[电子邮件受保护] ├── @wdio/[电子邮件受保护] ├── @wdio/[电子邮件受保护] ├── [电子邮件受保护] ├── [电子邮件受保护] ├── [电子邮件受保护] ├── [电子邮件受保护] ├── [电子邮件受保护] ├── [电子邮件受保护] ├── [电子邮件受保护] ├── [电子邮件受保护] ├── [电子邮件受保护] ├── [电子邮件受保护] ├── [电子邮件受保护] ├── [电子邮件受保护] ├── [电子邮件受保护] └── [电子邮件受保护]

在此输入图像描述 有人可以帮助我吗?

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.