아래에 설명 된대로 Web Driver에 코드 조각이 있습니다. 두 개의 @Test
메서드가 하나의 클래스에 있는데, 이는 testng.xml
을 사용하여 병렬로 실행하려고합니다.webdriver 및 TestNG를 사용하여 단일 클래스 파일에서 두 개의 @Test 메서드를 실행하는 방법
아무도 내가 실행하고 때 나는 그것이 2 브라우저를 열고 4 배의 위의 코드 전체를 실행하지만 내 관심사는 내가 두 @Test
를 실행하려면이다, 여기에 잘못된
public class CrossBrowserScript {
WebDriver driver;
@BeforeTest
@Parameters("browser")
public void setup(String browser) throws Exception{
//Check if parameter passed from TestNG is 'firefox'
if(browser.equalsIgnoreCase("firefox")){
//create firefox instance
driver = new FirefoxDriver();
}
//Check if parameter passed as 'chrome'
else if(browser.equalsIgnoreCase("chrome")){
//set path to chromedriver.exe You may need to download it from http://code.google.com/p/selenium/wiki/ChromeDriver
System.setProperty("webdriver.chrome.driver","E:\\Maven\\chromedriver.exe");
//create chrome instance
driver = new ChromeDriver();
}
else if(browser.equalsIgnoreCase("ie")){
//set path to IEdriver.exe You may need to download it from
// 32 bits http://selenium-release.storage.googleapis.com/2.42/IEDriverServer_Win32_2.42.0.zip
// 64 bits http://selenium-release.storage.googleapis.com/2.42/IEDriverServer_x64_2.42.0.zip
System.setProperty("webdriver.ie.driver","E:\\Maven\\IEDriverServer.exe");
//create chrome instance
driver = new InternetExplorerDriver();
}
else{
//If no browser passed throw exception
throw new Exception("Browser is not correct");
}
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
}
package checking;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class test extends CrossBrowserScript{
@Parameters({ "browser" })
@Test
public void checking_value(){
//WebDriver driver = new FirefoxDriver();
driver.get("http://www.sourcefuse.com/");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
if(driver.getPageSource().contains("Our Work"))
{
System.out.println("Found the text");
}
else
{
System.out.println("Not able to found the text");
}
}
@Parameters({ "browser" })
@Test
public void second_method(){
driver.get("http://www.sourcefuse.com/");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
if(driver.getPageSource().contains("Our Work"))
{
System.out.println("Found the text");
}
else
{
System.out.println("Not able to found the text");
}
}
}
*************************************************************
TestNG.xml File
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Multiple Tests" parallel="tests" thread-count="2">
<test name="Test One">
<parameter name="browser" value="Chrome" />
<classes>
<class name="checking.test">
</class>
</classes>
</test>
<test name="Test two">
<parameter name="browser" value="Firefox" />
<classes>
<class name="checking.test">
</class>
</classes>
</test>
</suite>
를하고있는 중이 야 무엇을 말해 줄 수 2 개의 다른 브라우저에서.
당신이 아마도 TestNG가 Test로 referes하는 것을 혼란스럽게 할 것입니다. parallel = "tests"라고 말하면 ** Test One ** 및 ** Test two ** configuration에서 언급 한 모든 테스트를 고려해야합니다. 전체 클래스가 아닌 특정 테스트 만 포함하도록 구성을 변경하면 문제가 해결 될 수 있습니다. –
이봐, 이봐, 너는 나에게 내가 구글을 검색했지만 아무 것도 찾지 못했을 때, 나는 여러 개의 브라우저 병렬 모드에서 하나의 클래스 파일의 @tests를 실행하고 싶을 때 알려 주실 수 있습니까? – Akash
다른 사람 이 시나리오에서 나를 도와주세요 – Akash