如何在CICD流水线中运行QAF功能测试并配置Chrome自定义配置文件
完全可以通过Chrome自定义profile的方式实现你的需求,该方案可以完全绕过随机VDI本地Windows用户profile的限制,实现预配置的服务账号身份自动认证。
方案核心逻辑
提前生成服务账号完成身份认证后的Chrome配置包,批量同步到所有测试VDI的固定路径,运行测试时指定ChromeDriver加载该预配置的profile,无需依赖当前VDI登录的Windows用户信息。
详细操作步骤
步骤1:生成服务账号对应的预配置Chrome profile
- 准备一台干净的测试设备,使用你创建的服务账号登录Windows系统,打开Chrome浏览器,手动完成企业应用的全流程身份认证,确认登录状态正常后,关闭所有Chrome进程(可以通过任务管理器确认所有
chrome.exe进程都已终止) - 在Chrome地址栏输入
chrome://version,找到「个人资料路径」字段,默认路径格式为C:\Users\服务账号名\AppData\Local\Google\Chrome\User Data\Default,将整个Default文件夹复制出来,重命名为QAF-Auto-Test-Profile,该文件夹就是预配置好的Chrome profile包
步骤2:批量同步profile到所有测试VDI
- 通过企业VDI批量管理工具,将
QAF-Auto-Test-Profile文件夹统一推送到所有测试VDI的固定路径,比如C:\TestResource\ChromeProfile\QAF-Auto-Test-Profile,确保所有VDI的该路径完全一致,不依赖当前登录用户的个人目录
步骤3:在QAF框架中配置Chrome启动参数
QAF支持通过chrome.additional.capabilities参数配置Chrome启动选项,修改测试项目的application.properties配置文件,添加如下配置:
# 配置Chrome加载自定义预配置profile chrome.additional.capabilities={"goog:chromeOptions": {"args": ["user-data-dir=C:\\TestResource\\ChromeProfile\\QAF-Auto-Test-Profile", "--no-first-run", "--no-default-browser-check", "--disable-gpu", "--start-maximized"]}}
参数说明:
user-data-dir:为你同步到VDI的自定义profile的绝对路径,Windows路径的反斜杠需要做转义处理--no-first-run:跳过Chrome首次启动引导页--no-default-browser-check:跳过默认浏览器提示,避免打断测试流程
如果你的项目有自定义驱动初始化逻辑,可以参考如下Java代码实现:
import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; public class CustomDriverInit { public ChromeDriver getTestChromeDriver() { ChromeOptions options = new ChromeOptions(); options.addArguments("user-data-dir=C:\\TestResource\\ChromeProfile\\QAF-Auto-Test-Profile"); options.addArguments("--no-first-run"); options.addArguments("--no-default-browser-check"); return new ChromeDriver(options); } }
步骤4:配置Jenkins任务前置校验逻辑
在Jenkins测试任务的执行步骤前,添加一个批处理执行步骤,清理profile锁文件,避免上一次测试异常退出导致的profile占用问题:
del /f /q "C:\TestResource\ChromeProfile\QAF-Auto-Test-Profile\lockfile"
同时确保Jenkins执行账号对C:\TestResource\ChromeProfile目录有读写权限。
常见问题排查
- Chrome启动后无登录状态:确认导出profile时所有Chrome进程已关闭,同时检查VDI上的profile路径与配置中的路径是否完全一致
- 提示profile被占用:确保每次测试完成后调用
driver.quit()正常关闭Chrome进程,同时执行前置的lockfile清理步骤 - 权限不足报错:给所有测试VDI的
C:\TestResource目录开放读写权限即可,测试专用VDI无额外安全风险
内容的提问来源于stack exchange,提问作者Satish A
相关产品推荐
相关产品推荐

