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
希望对您有所帮助!
我有一个使用 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.
我相信你的代码应该如下:
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
希望对您有所帮助!