如何在QA、生产等不同环境运行Rest-Assured API自动化测试脚本
Java+Rest-Assured+Cucumber 多环境测试配置实现方案
步骤1:拆分多环境独立配置文件
直接在项目src/test/resources目录下按环境拆分properties文件,不要把所有环境配置堆在同一个文件里:
config-qa.properties:存储QA环境全量配置,比如base.url=https://qa.your-domain.com/api,对应QA环境的鉴权密钥、测试账号等配置统一存在该文件config-prod.properties:存储生产环境全量配置,比如base.url=https://www.your-domain.com/api,对应生产环境的测试账号、鉴权信息单独存储
注意:生产环境的敏感配置不要直接提交到公共代码仓库,建议配合本地环境变量或CI/CD平台的密钥注入能力读取,避免信息泄露。
步骤2:配置Maven profile实现环境选择
打开项目根目录的pom.xml,添加如下配置,支持构建时动态指定执行环境:
- 先在
<project>节点下添加环境profile配置,默认激活QA环境:
<profiles> <profile> <id>qa</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <run.env>qa</run.env> </properties> </profile> <profile> <id>prod</id> <properties> <run.env>prod</run.env> </properties> </profile> </profiles>
- 在
<build>节点下添加测试资源配置,让Maven可以根据选中的环境加载对应配置文件:
<build> <testResources> <testResource> <directory>src/test/resources</directory> <filtering>true</filtering> </testResource> </testResources> </build>
步骤3:调整原有配置读取逻辑
不需要推翻你已经写好的properties读取方法,只需要加个环境参数判断即可,参考实现:
public class ConfigLoader { private static final Properties PROPS = new Properties(); static { // 优先读取启动传入的环境参数,未传默认加载QA环境配置 String env = System.getProperty("run.env", "qa"); String configFileName = String.format("config-%s.properties", env); try (InputStream inputStream = ConfigLoader.class.getClassLoader().getResourceAsStream(configFileName)) { if (inputStream == null) { throw new FileNotFoundException("未找到对应环境的配置文件:" + configFileName); } PROPS.load(inputStream); } catch (IOException e) { throw new RuntimeException("配置文件加载失败", e); } } public static String getBaseUrl() { return PROPS.getProperty("base.url"); } // 其余原有配置读取方法保持不变即可 }
步骤4:测试执行方式
原有测试脚本里的Rest-Assured baseUri赋值逻辑不需要修改,还是通过ConfigLoader.getBaseUrl()获取地址即可,启动时通过参数切换环境:
- 本地IDE执行:在运行配置的VM Options中添加参数,比如切生产环境就加
-Drun.env=prod,不加参数默认跑QA环境 - 命令行执行:
- 执行QA环境测试:直接运行
mvn test即可 - 执行生产环境测试:运行
mvn test -Pprod -Drun.env=prod
- 执行QA环境测试:直接运行
小技巧:如果对接CI/CD流水线,只需要在不同环境的流水线任务里加对应的
-P参数,就能实现提交代码后自动在对应环境执行测试,不需要手动改配置。
内容的提问来源于stack exchange,提问作者Qa Automation
相关产品推荐
相关产品推荐

