如何基于Xray、Robot Framework(Python)与GitLab搭建测试自动化工作流?
基于Xray + Robot Framework + GitLab的自动化测试工作流搭建指南
一、环境基础准备
- 安装Python 3.8+版本,确保
pip命令可用 - 安装Robot Framework及Xray集成依赖:
pip install robotframework robotframework-xray requests - 在GitLab项目中注册Runner(推荐选docker executor做环境隔离),确保Runner有权限执行Python脚本和发起网络请求
二、GitLab项目初始化
- 创建GitLab项目后,本地克隆仓库,建立如下目录结构:
your-project/ ├── tests/ # 存放Robot测试用例 │ ├── sample_test.robot ├── .gitlab-ci.yml # CI/CD流水线配置 └── requirements.txt # 依赖清单(可选,方便批量安装) - 编写基础Robot测试用例示例(
tests/sample_test.robot):*** Settings *** Documentation 示例UI测试套件 Library SeleniumLibrary # 需UI测试时,额外安装robotframework-seleniumlibrary *** Test Cases *** 验证示例页面标题 [Tags] XRAY-1001 # 关联Jira Xray中的测试用例ID Open Browser https://example.com chrome Title Should Be Example Domain Close Browser
三、Xray与Jira配置
- 在Jira中安装Xray测试管理插件,创建测试项目并启用Xray模块
- 在Xray中创建测试用例(比如ID为XRAY-1001),将状态设为"准备执行"
- 获取Xray API认证信息:在Jira个人设置中生成API Token,记录Jira用户名和Token,用于后续同步测试结果
四、GitLab CI/CD流水线配置
编写.gitlab-ci.yml,定义三个核心阶段:
stages: - install_deps - run_tests - sync_to_xray install_deps: stage: install_deps script: - pip install -r requirements.txt # 用requirements.txt批量安装依赖,无则直接写安装命令 run_tests: stage: run_tests script: - robot --outputdir results tests/ # 执行测试,结果输出到results目录 artifacts: paths: - results/ # 保存测试结果,供后续同步阶段使用 sync_to_xray: stage: sync_to_xray script: # 用robotframework-xray工具上传测试结果到Xray - robot-xray upload --server https://your-jira-domain.atlassian.net --token $XRAY_TOKEN --project-key YOUR_PROJECT_KEY results/output.xml dependencies: - run_tests only: - main # 仅在main分支提交时同步结果,可按需调整分支规则
- 在GitLab项目的「设置 → CI/CD → 变量」中添加
XRAY_TOKEN(值为Jira API Token)、YOUR_PROJECT_KEY(Jira项目密钥),设置为「受保护」和「掩码」避免泄露
五、执行与验证
- 提交代码到GitLab仓库,自动触发流水线执行
- 查看GitLab流水线日志,确认测试执行、结果同步步骤无报错
- 进入Jira Xray模块,查看对应测试用例的执行状态、测试报告,验证结果已同步
实用技巧
- 本地调试:先在本地执行
robot tests/验证用例可正常运行,再推送到GitLab - 报告优化:在Robot命令中添加
--report report.html --log log.html生成更友好的本地报告 - 失败重试:在GitLab CI/CD中配置
retry: 2实现失败用例自动重试 - 并行执行:测试用例较多时,可通过GitLab Runner并行作业或Robot的
--parallel参数(需额外插件)提升执行效率
内容的提问来源于stack exchange,提问作者MKAmine
相关产品推荐
相关产品推荐

