0

我正在开发一个用于测试 UI 和 API 的混合框架。

我想在 QA 和 UAT 环境中执行相同的测试。我有 qa 和 uat 的 .properties 文件。以及一个将执行测试的 testng.xml 文件。我有特定于环境的 UI 和 API 测试。

我想定义一个通用环境变量,在执行 UI 或 API 测试之前,在 maven 执行期间传递(mvn 测试)将由 .properties 文件阅读器读取 - 我如何/在哪里可以定义这个环境变量?

4

2 回答 2

0
            <configuration>
                <environmentVariables>
                    <environemnt>${environemnt}</environemnt>
                    <browser>${browser}</browser>
                </environmentVariables>
            </configuration>

在 pom.xml 文件的 maven-surefire-plugin 下添加上述配置后,即可在所需的环境和浏览器中执行所需的 testng.xml 文件。例如,

mvn test -Denvironment=qa -Dbrowser=firefox -DsuiteXmlFile=testng_ui.xml

于 2020-09-10T19:04:56.663 回答
0

通常当您创建一个框架时(假设从头开始;不推荐,因为有很多您可以直接选择然后根据您的需要进行定制)您应该负责读取属性文件。现在从等式中删除此细节,您可以将“通用环境变量”直接放入pom文件中。这是一个解决方案:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${maven-surefire-plugin.version}</version>
    <configuration>
        <systemProperties>
            <property>
                <name>myUniversalProperty</name>
                <value>Same in all envs</value>
            </property>
        </systemProperties>
    </configuration>
</plugin>

现在这将允许您使用System.getProperty("myUniversalProperty")表达式读取值。请注意,<value>在这种情况下,也可以在运行应用程序时作为命令行参数传递。

于 2020-09-10T19:05:06.037 回答