Azure Pipeline中Selenium Webdriver测试日志与截图未在构件中展示问题咨询
可能导致Azure Pipeline构件缺失Selenium日志/截图的配置问题
1. 构件发布任务的路径配置变更
- 检查
PublishBuildArtifacts/PublishPipelineArtifact任务的TargetPath参数,确认是否和Selenium生成文件的输出路径匹配,近期如果调整过测试项目的输出目录、相对路径规则,会导致发布任务找不到对应文件 - 注意Azure Pipeline的工作目录路径大小写敏感,比如本地Windows路径不区分
/Screenshots和/screenshots,但Linux代理上会判定为不同目录 - 如果近期切换了管道的代理操作系统(比如从Windows代理换成Linux/ macOS代理),要检查路径分隔符配置,C#代码里硬编码
\\的Windows分隔符在非Windows代理上会生成错误路径,导致文件存到异常位置无法被发布任务捕获
2. 测试执行的权限配置问题
- 检查管道代理服务账号对测试输出目录的写入权限,如果近期调整了代理的运行身份、目录权限规则,会导致Selenium运行时无法把截图/日志写入目标路径
- 如果测试在容器内运行,要检查容器的挂载目录配置,是否把测试输出目录挂载到了代理可访问的宿主机路径,没有挂载的话文件会留在容器内部随容器销毁而丢失
3. 测试过滤/清理规则变更
- 检查管道中是否新增了
DeleteFiles/清理临时文件的任务,确认清理路径没有包含Selenium的输出目录 - 如果近期调整了测试失败后的后续任务执行规则,比如设置了测试失败后直接终止管道、跳过后续的构件发布步骤,要确认构件发布任务的
continueOnError、condition参数是否正确配置为always(),确保不管测试成功失败都执行发布 - 检查是否调整了构件保留策略,小体积的其余构件符合保留规则,但截图等大文件触发了大小限制被自动清理
4. 测试运行环境的变量配置问题
- 确认管道中定义的输出路径环境变量和本地测试用的变量一致,比如代码中从环境变量读取
TEST_OUTPUT_PATH的配置,管道侧近期修改了该变量值会导致文件生成到未被发布的目录 - 检查Selenium驱动的版本和本地是否一致,部分驱动版本在无UI的Azure代理环境下运行时,截图生成逻辑会抛出未捕获的异常,导致文件未生成,可在管道测试步骤中添加异常日志输出确认是否存在该问题
内容的提问来源于stack exchange,提问作者Alan Spindler
相关产品推荐
相关产品推荐

