请原谅,我不擅长英语,但我会尽力以最好的方式提出这个问题。
要求: 我有一个HTML文件,其中包含测试用户运行selenium测试的某些控件。
示例:我们有4个模块,如CAR,HOTEL,RAIL,FLIGHT和环境详细信息(DEV,QA,PROD)。如果用户想在DEV环境中运行CAR模块,他可以从HTML页面中选择相同的内容。
一旦用户选择并单击RUN按钮,命令文件应该运行,并且根据用户选择,selenium测试应该启动并运行TESTNG.xml
对于selenium来说是全新的,我不知道如何配置TESTNG XML并控制测试类中的测试套件。
就我而言,如果我想在PROD环境中运行FLIGHT Tests,我需要在TESTNG XML上完成哪些配置以及如何调用FLIGHT的测试集。
第二种情况,假设如果我想在PROD上运行所有4个模块,那么TESTNG XML的配置和CAR,FLIGHT,HOTEL,RAIL测试的测试套件是什么?
所有这些我想在命令提示符下运行而不打开eclipse。
答案 0 :(得分:1)
请在下面找到示例
这是您要传递参数的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
答案 1 :(得分: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