Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不同的环境中使用maven以其独特的API键作为标头运行重新启动的烟雾测试_Maven_Rest Assured - Fatal编程技术网

在不同的环境中使用maven以其独特的API键作为标头运行重新启动的烟雾测试

在不同的环境中使用maven以其独特的API键作为标头运行重新启动的烟雾测试,maven,rest-assured,Maven,Rest Assured,我有一组重新启动的测试标记为冒烟测试,我使用maven通过命令行使用该命令运行它们 mvn测试-心理测试-Denv=QA env=QA在pom.xml中定义为系统属性。我知道,如果我需要在不同的环境(如dev、staging或prod)上运行此功能,我可以将其指定为命令行参数,并在测试中处理 但是,这些环境中的每一个都需要为作为API请求中的标头传递的环境使用不同的API密钥。我将密钥存储在一个单独的密钥文件中,并在代码中引用它们。然而,我希望避免这种情况,因为我不希望在将代码推入git之类的源

我有一组重新启动的测试标记为冒烟测试,我使用maven通过命令行使用该命令运行它们 mvn测试-心理测试-Denv=QA

env=QA在pom.xml中定义为系统属性。我知道,如果我需要在不同的环境(如dev、staging或prod)上运行此功能,我可以将其指定为命令行参数,并在测试中处理

但是,这些环境中的每一个都需要为作为API请求中的标头传递的环境使用不同的API密钥。我将密钥存储在一个单独的密钥文件中,并在代码中引用它们。然而,我希望避免这种情况,因为我不希望在将代码推入git之类的源代码repo时,密钥可见

在maven中有没有有效的处理方法?API密钥是否可以根据环境进行存储,而不必存储在重启框架内的单独文件中

以下是我的pom.xml代码片段:

    <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");