Cucumber Report 插件显示 base64 编码图像损坏 link

Cucumber Report Plugin showing base64 encoded image as broken link

我有一个使用 Ruby-Cucumber-Watir 的自动化套件,我正试图从 Jenkins 在 windows 服务器上执行它。除了编码为 base64 的屏幕截图在 Jenkins Cucumber 报告中显示为断开的链接外,一切正常。

Cucumber 报告插件 - 4.9.0

ruby - 2.6.0p0

黄瓜 - 3.1.2

瓦提尔 - 6.16.5

当我将它们嵌入为 PNG 文件而不是 base64 编码图像时,屏幕截图显示正确。

下面是截图代码:

image = @browser.driver.screenshot_as(:base64)
embed("data:image/png;base64,#{image}", 'image/png')

我在下面的 cucumber.yml 文件中为 cucumber-report 插件生成 JSON 文件:

-f pretty -f json -o results/temp/JSON/results.json

当我保存文件然后将其嵌入如下时,它工作正常:

@browser.screenshot.save 'screenshot.png'
embed 'screenshot.png', 'image/png'

请注意,当我在本地 运行 使用 Base64 的代码工作正常。使用 report_builder gem.

构建的 HTML 报告中所有图像均正确显示

我相信你的代码应该如下:

image = @browser.driver.screenshot_as(:base64)
embed(image, 'image/png;base64')

其他一些示例:

Given("you have attached 3 files") do
  require 'base64'
  an_image_in_text = 'features/upload-files/base64image.txt'
  content = File.read(an_image_in_text)
  embed(content, 'image/png;base64')

  content02 = File.read('my_html_file.html')
  embed(content02, 'text/html;base64')

  image = File.open('my_image.png', 'rb') do |img|
      Base64.strict_encode64(img.read)
    end
  embed(image, 'image/png;base64')
end

More about mime types

希望对您有所帮助!