在不同的环境中使用maven以其独特的API键作为标头运行重新启动的烟雾测试
我有一组重新启动的测试标记为冒烟测试,我使用maven通过命令行使用该命令运行它们 mvn测试-心理测试-Denv=QA env=QA在pom.xml中定义为系统属性。我知道,如果我需要在不同的环境(如dev、staging或prod)上运行此功能,我可以将其指定为命令行参数,并在测试中处理 但是,这些环境中的每一个都需要为作为API请求中的标头传递的环境使用不同的API密钥。我将密钥存储在一个单独的密钥文件中,并在代码中引用它们。然而,我希望避免这种情况,因为我不希望在将代码推入git之类的源代码repo时,密钥可见 在maven中有没有有效的处理方法?API密钥是否可以根据环境进行存储,而不必存储在重启框架内的单独文件中 以下是我的pom.xml代码片段:在不同的环境中使用maven以其独特的API键作为标头运行重新启动的烟雾测试,maven,rest-assured,Maven,Rest Assured,我有一组重新启动的测试标记为冒烟测试,我使用maven通过命令行使用该命令运行它们 mvn测试-心理测试-Denv=QA env=QA在pom.xml中定义为系统属性。我知道,如果我需要在不同的环境(如dev、staging或prod)上运行此功能,我可以将其指定为命令行参数,并在测试中处理 但是,这些环境中的每一个都需要为作为API请求中的标头传递的环境使用不同的API密钥。我将密钥存储在一个单独的密钥文件中,并在代码中引用它们。然而,我希望避免这种情况,因为我不希望在将代码推入git之类的源
<profile>
<id>SmokeTests</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<systemPropertyVariables>
<env>${env}</env>
</systemPropertyVariables>
<suiteXmlFiles>
<suiteXmlFile>SmokeTests.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
</profile>
可以使用与传递env类似的命令行变量传递api键
mvn test -PSmokeTests -Denv=QA -DapiKey="keyvalue123"
您可以使用以下命令访问java项目中的api密钥
String apiKey = System.getProperty("apiKey");
难道你不能把API密钥放在配置文件中吗?要避免把密钥信息放在任何可以在源代码repo中检查的文件中。有没有更好的方法来管理@Fenio?您可以在运行自动化测试的系统上设置环境变量,并使用maven概要文件“驱动”它们。这将从源代码中排除API键谢谢@Fenio。我会试试看,随时通知你。谢谢你的意见。
String apiKey = System.getProperty("apiKey");