Maven驱动的API自动化测试套件在CI/CD工具上的运行机制问询
关于API测试框架在CI/CD工具上的运行方式解答
运行环境:CI/CD工具的构建节点服务器
你的测试框架不会在自身服务器运行,而是在Jenkins/Bamboo的构建节点(Agent)服务器上执行。CI工具的核心调度节点仅负责触发任务、分配资源,实际的代码拉取、依赖下载、测试执行全都是在它管理的构建节点上完成——这些节点可能是CI工具自带的,也可能是你自行部署并注册到CI工具的服务器/容器。
运行方式:无需提前打包Jar包
你的TestNG测试套件不需要先构建生成Jar包再运行,Maven可以直接编译并执行测试,具体流程如下:
- CI构建节点从代码仓库拉取你的测试框架源码到本地工作目录
- 执行指定的Maven测试命令,例如:
mvn test -Dspring.profiles.active=test - Maven自动完成以下操作:
- 下载所有依赖(rest-assured、Spring、TestNG、Allure等)到节点的本地Maven仓库
- 编译
src/main/java中的框架核心代码到target/classes目录,编译src/test/java中的测试用例到target/test-classes目录 - 加载Spring上下文(根据指定的Profile读取
src/main/resources中的对应配置文件) - 通过
maven-surefire-plugin调用TestNG执行测试用例,同时Allure收集测试结果到临时目录
- 测试完成后,可追加命令生成Allure报告:
mvn allure:report - CI工具可配置将生成的Allure报告归档,或直接在平台上展示
额外细节
- 若你的框架包含
src/main/java下的自定义工具类,Maven会自动将编译后的class文件加入类路径,无需打包成Jar即可被测试用例调用 - Spring Profile的切换完全通过Maven命令的系统参数
-Dspring.profiles.active=xxx实现,无需修改代码 - 构建节点需提前配置好JDK和Maven环境;若使用Docker容器作为构建环境,可直接选用预装JDK、Maven的镜像,简化节点配置
内容的提问来源于stack exchange,提问作者Soma
相关产品推荐
相关产品推荐

