求.gitlab-ci.yml中运行Karate UI自动化脚本的Maven配置命令与步骤
GitLab CI/CD 运行 Karate UI 自动化脚本(Maven 环境)
完整 .gitlab-ci.yml 配置
stages: - test karate-ui-automation: stage: test # 使用包含Maven和OpenJDK的基础镜像 image: maven:3.8.6-openjdk-11-slim # 缓存Maven仓库,加速后续构建 cache: paths: - ~/.m2/repository/ before_script: # 安装Chrome浏览器、驱动及依赖(适配无界面CI环境) - apt-get update && apt-get install -y --no-install-recommends wget unzip chromium chromium-driver # 配置Karate使用headless Chrome,规避无界面运行限制 - export CHROME_BIN=/usr/bin/chromium - export KARATE_CHROME_ARGS="--headless --no-sandbox --disable-dev-shm-usage" script: # 运行Karate UI测试:可通过-Dtest指定测试类,或-Dkarate.options指定标签/特性文件 # 示例1:指定测试类 - mvn test -Dtest=KarateUiTestSuite # 示例2:仅运行标记@ui的测试用例 # - mvn test -Dkarate.options="--tags @ui" artifacts: # 无论测试成功/失败,都保留测试报告 when: always paths: - target/surefire-reports/ # 报告保留7天,可按需调整 expire_in: 7d
关键配置说明
- 镜像选择:选用官方Maven+OpenJDK镜像,确保构建环境一致性;若需其他JDK版本,可替换镜像标签(如
maven:3.9.0-openjdk-17-slim)。 - 浏览器安装:CI环境默认无图形界面,需安装headless浏览器;上述配置用Chromium,若偏好Firefox,可替换
before_script中的安装命令为:apt-get install -y --no-install-recommends firefox-esr geckodriver export FIREFOX_BIN=/usr/bin/firefox-esr export KARATE_FIREFOX_ARGS="--headless --no-sandbox" - 测试执行命令:
-Dtest=xxx:指定要运行的测试类(需对应Java测试类名);-Dkarate.options="--tags @xxx":仅运行带有指定标签的Karate特性文件,灵活控制测试范围。
- 产物保存:将Surefire测试报告作为流水线产物保留,方便排查失败用例,可根据需求调整保留时长。
前置要求
- 项目的
pom.xml已正确引入Karate UI依赖,示例依赖配置:<dependency> <groupId>com.intuit.karate</groupId> <artifactId>karate-core</artifactId> <version>1.4.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.intuit.karate</groupId> <artifactId>karate-chrome</artifactId> <version>1.4.1</version> <scope>test</scope> </dependency> - GitLab Runner需支持Docker执行(或已预装浏览器的Shell Runner),确保流水线能正常拉取镜像或运行浏览器命令。
内容的提问来源于stack exchange,提问作者KK12
相关产品推荐
相关产品推荐

