能否通过Ruby-Watir测试向Slack发送截图?
如何通过Ruby-Watir将本地截图发送到Slack
当然可以实现,你只需要利用slack-notifier的文件上传功能,把本地已保存的截图直接发送到Slack。以下是修改后的代码示例:
首先,你需要明确screenCapture函数生成的截图的完整本地路径。如果screenCapture本身会返回截图路径,直接复用即可;如果没有,就按照你的保存规则手动拼接路径:
require 'watir' require_relative 'regression_config.rb' require 'date' require 'faker' require 'slack-notifier' # SLACK # 生成截图并获取本地路径 # 情况1:如果screenCapture返回截图完整路径 screenshot_path = screenCapture(browser,"Origination Portal - Login",test_id) # 情况2:如果screenCapture不返回路径,按保存规则拼接(示例) # screenshot_path = "./screenshots/#{test_id}_Origination_Portal_-_Login.png" # Slack配置 notifier = Slack::Notifier.new "https://hooks.slack.com/services/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" # 发送文本通知+截图 notifier.post( text: ">>>>>Auto Regression was not run. Possible login / environment issue<<<<<", attachments: [ { text: "登录页异常截图", fallback: "无法显示截图", image_url: "attachment://login_error.png" } ], file: File.open(screenshot_path), filename: "login_error.png" )
关键说明:
file: File.open(screenshot_path):传入本地截图的文件对象,告诉Slack要上传的文件filename:设置截图在Slack中显示的文件名- 通过
attachments里的image_url: "attachment://文件名",可以让截图直接在消息中预览,不用点击下载
注意事项:
- 确保截图路径正确,否则会抛出文件找不到的错误
- Slack单文件上传最大支持5GB,测试场景下一般不会超出限制
- 你的Slack webhook默认具备文件上传权限,无需额外配置
内容的提问来源于stack exchange,提问作者bobbie_j
相关产品推荐
相关产品推荐

