如何使用 selenium java 在同一台机器上并行 运行 方法或 类
how to run methods or classes parallely on same machine using selenium java
我是 selenium 的新手,我想同时 运行 两个 classes 或两个方法,而不是一个接一个。我特地提到了很多 link this link 但是没有用。下面是我的testing.xml代码(用于测试方法),其中testStageDashboard
和prodDashboards1
是单个class中的测试方法:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="methods" thread-count="2">
<test name="Test 1">
<classes>
<class name="com.sd.selenium.FirstTestSelenium" />
<!-- <class name="com.sd.selenium.practice.Monday_Test_Selenium_Till_Scrum_Call"
/> -->
</classes>
</test>
</suite>
Testing.xml(用于测试 classes) :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="classes" thread-count="2">
<test name="Test 1">
<classes>
<class name="com.sd.selenium.FirstTestSelenium"/>
<class name="com.sd.selenium.practice.Monday_Test_Selenium_Till_Scrum_Call"/>
</classes>
</test>
</suite>
其中 FirstTestSelenium
和 Monday_Test_Selenium_Till_Scrum_Call
是两个不同的 classes 在不同的 packages.Do 我需要在 java 中为浏览器节点或其他东西写任何东西?以及如何 运行 这个?我所做的是右键单击我的项目,然后 运行 as > Test NG test。还需要什么吗?提前致谢:)
检查您是否为 类/ 方法添加了 @Test 注释,并将浏览器详细信息指定为测试参数。这是示例 testng.xml 文件
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="classes" thread-count="2">
<test name="Test">
<parameter name="myName" value="Test1"></parameter>
<parameter name="browserType" value="chrome"></parameter>
<parameter name="os" value="WINDOWS"></parameter>
<classes>
<class name="com.testng.session1.Session1" />
<class name="com.testng.session1.Session2" />
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
这是 类 的示例代码:
public class Session1 {
@Test
@Parameters ({"myName","browserType"})
public void login(String name, String browserType){
if(browserType.equalsIgnoreCase("firefox")){
WebDriver driver=new FirefoxDriver();
driver.get("www.google.co.in/");
}
else{
System.setProperty("webdriver.chrome.driver", "E:\Selenium\Jars\chromedriver_win32\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.co.in/");
}
System.out.println("login Successful");
System.out.println(name+"Thread ID: "+Thread.currentThread().getId());
}
}
下面是 运行 方法与两个线程并行的代码。
测试类:
package com.sd.selenium;
import org.testng.annotations.Test;
public class FirstTestSelenium {
@Test
public void test1(){
System.out.println("method1");
}
@Test
public void test2(){
System.out.println("method2");
}
}
Testng.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="methods" thread-count="2">
<test name="Test 1">
<classes>
<class name="com.sd.selenium.FirstTestSelenium" />
<!-- <class name="com.sd.selenium.practice.Monday_Test_Selenium_Till_Scrum_Call"
/> -->
</classes>
</test>
</suite>
如果您遇到任何异常,请告诉我。
我是 selenium 的新手,我想同时 运行 两个 classes 或两个方法,而不是一个接一个。我特地提到了很多 link this link 但是没有用。下面是我的testing.xml代码(用于测试方法),其中testStageDashboard
和prodDashboards1
是单个class中的测试方法:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="methods" thread-count="2">
<test name="Test 1">
<classes>
<class name="com.sd.selenium.FirstTestSelenium" />
<!-- <class name="com.sd.selenium.practice.Monday_Test_Selenium_Till_Scrum_Call"
/> -->
</classes>
</test>
</suite>
Testing.xml(用于测试 classes) :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="classes" thread-count="2">
<test name="Test 1">
<classes>
<class name="com.sd.selenium.FirstTestSelenium"/>
<class name="com.sd.selenium.practice.Monday_Test_Selenium_Till_Scrum_Call"/>
</classes>
</test>
</suite>
其中 FirstTestSelenium
和 Monday_Test_Selenium_Till_Scrum_Call
是两个不同的 classes 在不同的 packages.Do 我需要在 java 中为浏览器节点或其他东西写任何东西?以及如何 运行 这个?我所做的是右键单击我的项目,然后 运行 as > Test NG test。还需要什么吗?提前致谢:)
检查您是否为 类/ 方法添加了 @Test 注释,并将浏览器详细信息指定为测试参数。这是示例 testng.xml 文件
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="classes" thread-count="2">
<test name="Test">
<parameter name="myName" value="Test1"></parameter>
<parameter name="browserType" value="chrome"></parameter>
<parameter name="os" value="WINDOWS"></parameter>
<classes>
<class name="com.testng.session1.Session1" />
<class name="com.testng.session1.Session2" />
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
这是 类 的示例代码:
public class Session1 {
@Test
@Parameters ({"myName","browserType"})
public void login(String name, String browserType){
if(browserType.equalsIgnoreCase("firefox")){
WebDriver driver=new FirefoxDriver();
driver.get("www.google.co.in/");
}
else{
System.setProperty("webdriver.chrome.driver", "E:\Selenium\Jars\chromedriver_win32\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.co.in/");
}
System.out.println("login Successful");
System.out.println(name+"Thread ID: "+Thread.currentThread().getId());
}
}
下面是 运行 方法与两个线程并行的代码。
测试类:
package com.sd.selenium;
import org.testng.annotations.Test;
public class FirstTestSelenium {
@Test
public void test1(){
System.out.println("method1");
}
@Test
public void test2(){
System.out.println("method2");
}
}
Testng.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="methods" thread-count="2">
<test name="Test 1">
<classes>
<class name="com.sd.selenium.FirstTestSelenium" />
<!-- <class name="com.sd.selenium.practice.Monday_Test_Selenium_Till_Scrum_Call"
/> -->
</classes>
</test>
</suite>
如果您遇到任何异常,请告诉我。