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

如何在Azure DevOps中配置Ubuntu 22.04代理的分辨率?

解决Azure DevOps Ubuntu 22.04代理1920x1080分辨率配置问题

问题背景

团队近期将多数项目迁移至Azure DevOps,部署过程整体顺利,但在Ubuntu 22.04代理上遇到分辨率配置问题——需要将分辨率设置为1920x1080。微软的Screen Resolution Utility仅支持Windows环境,且部署完全基于YAML文件。已尝试以下方法均无效:

  • 使用带xvfb参数的Docker脚本
  • 尝试仅支持Windows的屏幕分辨率工具
  • 谷歌及StackOverflow搜索未找到有效方案
  • 执行PowerShell任务(Ubuntu环境下该命令不生效)

目前尝试通过Bash配置,但不熟悉相关操作,最坏打算需切换至Windows环境。

已尝试的无效脚本

Docker脚本

docker run -t --rm --shm-size=256m -v "$(pwd)":/tmp/project katalonstudio/katalon katalonc.sh -projectPath=/tmp/project --disable-gpu --init**xvfb run -a -n 0 -s '-screen 0 1920x1080x24'**-browserType="Chrome" -retryStrategy=failedExecutions -statusDelay=15 -testSuitePath="Test Suites/OrganisatiePortaal/OP_BestuursEenhedenNIEUW" -apikey=xxx

PowerShell任务YAML

job: Build_Katalon
pool:
  vmImage: ubuntu-22.04

steps:
- task: PowerShell@2
  inputs:
    script: Set-DisplayResolution -Width 1920 -Height 1080 -Force

- checkout: self
  fetchDepth: 1
  clean: true

有效解决方案

方案1:修正Docker脚本中的xvfb使用方式

之前的脚本错误地将xvfb run作为katalonc.sh的参数,正确做法是用xvfb包裹整个katalon启动命令,确保虚拟显示器先启动再运行测试:

docker run -t --rm --shm-size=256m -v "$(pwd)":/tmp/project katalonstudio/katalon xvfb run -a -n 0 -s '-screen 0 1920x1080x24' katalonc.sh -projectPath=/tmp/project --disable-gpu --init -browserType="Chrome" -retryStrategy=failedExecutions -statusDelay=15 -testSuitePath="Test Suites/OrganisatiePortaal/OP_BestuursEenhedenNIEUW" -apikey=xxx

核心调整:把xvfb run ...放在katalonc.sh之前,让xvfb先创建指定分辨率的虚拟屏幕,再执行测试命令。

方案2:在Azure DevOps YAML中直接用Bash配置虚拟显示器

如果不使用Docker,直接在Ubuntu代理上配置,可通过Bash任务安装并启动xvfb,设置分辨率:

job: Build_Katalon
pool:
  vmImage: ubuntu-22.04

steps:
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: |
      # 安装xvfb(Ubuntu 22.04镜像默认可能已安装,保险起见执行安装)
      sudo apt-get update && sudo apt-get install -y xvfb
      # 启动xvfb虚拟显示器,设置1920x1080分辨率
      Xvfb :99 -screen 0 1920x1080x24 &
      # 将DISPLAY环境变量指向虚拟显示器
      export DISPLAY=:99
- checkout: self
  fetchDepth: 1
  clean: true
# 后续添加你的测试任务(比如Katalon执行命令)

说明:Azure DevOps的Ubuntu代理是无头环境,必须通过xvfb创建虚拟X服务器来模拟显示器,PowerShell的Set-DisplayResolution是Windows专属命令,在Linux环境下完全无效,所以必须用Bash结合xvfb来配置。

方案3:直接配置Chrome浏览器启动参数

如果测试用的是Chrome,也可以在启动Chrome时直接指定窗口大小,无需修改系统分辨率:
在测试命令中,给Chrome添加启动参数:

--window-size=1920,1080 --start-maximized

比如在Katalon命令中,调整-browserType参数部分:

-browserType="Chrome" -chromeOptions="--window-size=1920,1080 --start-maximized"

这种方式不需要依赖xvfb的分辨率设置,直接让浏览器以指定尺寸启动,适合仅需浏览器窗口满足分辨率要求的场景。

关键注意点

  • Ubuntu无头环境下必须依赖xvfb提供虚拟显示器,PowerShell命令不适用于Linux系统
  • Docker中使用xvfb时,要确保xvfb是容器内已安装的工具(katalonstudio/katalon镜像默认已包含xvfb)
  • 如果使用Chrome,直接指定窗口参数是更轻量化的方案,避免配置系统级分辨率的麻烦

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:05:36