You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Pipeline中Playwright失败测试持续加载问题及解决咨询

Azure Pipeline测试失败后挂起的解决方法

问题根源

测试用例失败时,测试框架会启动本地HTTP服务用于展示HTML报告(输出提示Serving HTML report at http://localhost:9323. Press Ctrl+C to quit),但Azure Pipeline任务不会自动终止该服务,导致任务持续运行无法结束。

解决办法

1. 禁用报告自动启动HTTP服务

修改测试执行命令,添加参数阻止测试框架启动本地报告服务。以常用的pytest-html插件为例,添加--no-open参数:

pytest --html=test_report.html --no-open

不同测试框架的参数可能不同,可查阅对应框架文档找到禁用报告服务的参数。

2. 强制终止报告服务进程

如果无法禁用服务,可在测试命令后添加端口进程终止命令,杀掉占用9323端口的进程。根据Pipeline运行的操作系统选择对应命令:

  • Windows环境:
- script: |
    pytest your_test_suite.py
    netstat -ano | findstr :9323 | for /f "tokens=5" %a in ('findstr :9323') do taskkill /f /pid %a
  displayName: 'Run tests and stop report server'
  • Linux/macOS环境:
- script: |
    pytest your_test_suite.py
    lsof -ti:9323 | xargs kill -9
  displayName: 'Run tests and stop report server'

3. 本地复现失败用例的方法

  • 直接在本地执行与Pipeline完全相同的测试命令,确保本地安装的依赖包、Python版本与Pipeline环境一致
  • 若环境差异导致无法复现,可使用Azure Pipeline的本地代理(azpagent)在本地运行Pipeline任务,或者用Docker镜像复刻Pipeline的运行环境,保证执行环境完全匹配

YAML配置示例优化

假设你的原测试步骤如下,可修改为:

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.9' # 替换为你使用的Python版本
  displayName: 'Set Python version'

- script: |
    pip install -r requirements.txt
    pytest --html=test_report.html --no-open
  displayName: 'Install dependencies and execute tests'

内容的提问来源于stack exchange,提问作者Zeeshan ilyas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 13:42:37