異なるブラウザー (Firefox、Chrome、および Safari) で同じテストを実行したい。これを行うために、テストでパラメーター化を使用しています。ブラウザがクロムの場合、クロムを実行するなど。
そして、testng.xml
テストを並行して実行するように指定し、いくつかの<test>
タグの下で同じテストを繰り返しました。
実行するテストが非常に多い場合はどうなりますか。<test>
タグに同じテストをコピーして貼り付けます。最適なソリューションが表示されません。
どうすればこれを修正できますか?
これが私が試したものです:
public class SameTestDifferentBrowsers {
WebDriver driver;
@BeforeMethod
@Parameters("browser")
public void openBroswer(String browser) {
if (browser.equalsIgnoreCase("Chrome")) {
System.out.println(System.getProperty("user.dir"));
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")+"//lib//browsers//chromedriverMac");
driver = new ChromeDriver();
} else if (browser.equalsIgnoreCase("Firefox")) {
driver = new FirefoxDriver();
} else if (browser.equalsIgnoreCase("safari")) {
System.setProperty("webdriver.safari.driver", System.getProperty("user.dir")+"//lib//browsers//SafariDriver.safariextz");
driver = new SafariDriver();
}
}
@AfterMethod
public void closeBrowser() {
driver.quit();
}
@Test
public void login_TestCase() {
driver.get("https://www.google.com");
}
}
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="tests">
<test name="Firefox Test">
<parameter name="browser" value="browser"/>
<classes>
<class name="ParallelBrowser.SameTestDifferentBrowsers"/>
</classes>
</test>
<test name="Chrome Test">
<parameter name="browser" value="browser"/>
<classes>
<class name="ParallelBrowser.SameTestDifferentBrowsers"/>
</classes>
</test>
<test name="Safari Test">
<parameter name="browser" value="browser"/>
<classes>
<class name="ParallelBrowser.SameTestDifferentBrowsers"/>
</classes>
</test>
</suite>