0

请原谅,我不擅长英语,但我会尽量以最好的方式提出这个问题。

要求:我有一个 HTML 文件,其中包含测试用户运行 selenium 测试的某些控件。

示例:我们有 4 个模块,例如 CAR、HOTEL、RAIL、FLIGHT 和环境详细信息(DEV、QA、PROD)。如果用户想在 DEV 环境中运行 CAR 模块,他可以从 HTML 页面中选择相同的。

一旦用户选择并单击 RUN 按钮,命令文件应该运行,并且根据用户选择,selenium 测试应该启动并通过 TESTNG.xml 运行

对 selenium 来说是全新的,我不知道如何配置 TESTNG XML 并控制测试类中​​的测试套件。

就我而言,如果我想在 PROD 环境中运行 FLIGHT 测试,我需要在 TESTNG XML 上进行哪些配置以及如何调用 FLIGHT 的测试集。

第二种情况,假设如果我想在 PROD 上运行所有 4 个模块,那么 TESTNG XML 和 CAR、FLIGHT、HOTEL、RAIL 测试的测试套件的配置是什么?

所有这些我想在命令提示符下运行而不打开 Eclipse。

4

2 回答 2

1
  1. 首先,您必须验证 TestNg XML 文件中的参数
  2. 然后您必须在测试之前配置它们,您可以从配置文件阅读器获取详细信息
  3. 您必须通过属性文件将参数详细信息传递给配置文件阅读器

请在下面找到示例

这是您要传递参数的 testng xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="false" thread-count="6" verbose="1">
    <!--Values Chrome Firefox HLChrome HLFirefox HTMLUnit phantomJS-->
    <parameter name="browser" value="Chrome"/>

    <!--Values QA_URL DEV_URL PROD_URL-->
    <parameter name="URL" value="QA_URL"/>

    <!--Values QA Dev Uat Prod -->
    <parameter name="Env" value="QA"/>

    <test name="Add Client">
        <classes>
            <class name="tests.client.AddUser_Valid"/>
        </classes>
    </test>
</suite>

这是您可以获取参数详细信息的方式

@BeforeTest
@Parameters({"browser","URL","Env"})
public void setupBrowserAndURL(String browser,String URL,String Env)  {
 if(Env.equalsIgnoreCase("QA")){
            if(URL.equalsIgnoreCase("QA_URL")){
                driver.get(configFileReader.applicationUrl_QA());
                commonOperations.waitUntilPageLoaded(driver);
}

您必须添加配置文件阅读器才能从属性文件中获取详细信息

public String applicationUrl_QA_URL() {
        String applicationUrl = properties.getProperty("applicationUrl_QA");
        if(applicationUrl != null) return applicationUrl;
        else throw new RuntimeException("url not specified in the Configuration.properties file.");
    }

    public String applicationUrl_Dev_URL() {
        String applicationUrl = properties.getProperty("applicationUrl_Demo");
        if(applicationUrl != null) return applicationUrl;
        else throw new RuntimeException("url not specified in the Configuration.properties file.");
    }

您必须在属性文件中添加 URL

applicationUrl_QA = http://xxxx.qa.xxxx.cloud applicationUrl__Demo = http://xxxx.demo.xxxx.cloud

于 2019-09-05T05:50:40.163 回答
0

假设您想使用 maven,这是一种方法,可能还有其他/更简单的方法:

您为 testEnv 创建一个变量,以及四个套件文件(每个套件一个),如下所示在您的 pom.xml 中:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.4.2</version>
            <configuration>
                <systemPropertyVariables>
                    <environment>${testEnv}</environment>
                </systemPropertyVariables>
                <suiteXmlFiles>
                    <suiteXmlFile>${suiteFile1}</suiteXmlFile>
                    <suiteXmlFile>${suiteFile2}</suiteXmlFile>
                    <suiteXmlFile>${suiteFile3}</suiteXmlFile>
                    <suiteXmlFile>${suiteFile4}</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
    </plugins>
</build>

然后RUN按钮可以构建/执行命令行参数如下:

mvn -f pom.xml -DtestEnv=DEV -DsuiteFile1=src/test/testsuite/CAR.xml -DsuiteFile2=src/test/testsuite/HOTEL.xml clean install
于 2015-08-03T19:39:07.907 回答