我想在多个浏览器上运行测试用例,因为我想从属性值更改浏览器值。但我不想手动更改它。我可以使用cmd或使用任何其他选项更新值吗?
答案 0 :(得分:0)
1)在命令行中传递浏览器,如-Dbrowser=Chrome
2)在Java代码中获取命令参数值,如
String browser = System.getProperty("browser", "Chrome")
//当您在命令行
-Dbrowser=xxx
时,第二个参数是defautl值
答案 1 :(得分:0)
将您的脚本转换为testng。您可以在testng.xml文件中指定浏览器值。您可以在以下位置指定浏览器:
<parameter name="browser" value="Firefox"/>
并在您的测试用例中将浏览器的值传递为:
@Parameters({ "browser" })
@BeforeTest
public void beforetest(String browser) throws Exception
{
try {
if (browser.equalsIgnoreCase("Firefox")) {
System.out.println(browser);
System.setProperty("webdriver.gecko.driver","path_to\\geckodriver.exe");;
driver = new FirefoxDriver();
} else if (browser.equalsIgnoreCase("chrome")) {
System.out.println(browser);
System.setProperty("webdriver.chrome.driver","path_to\\chromedriver.exe");
driver = new ChromeDriver();
} else if (browser.equalsIgnoreCase("IE")) {
System.setProperty("webdriver.ie.driver", "path_to\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
}
} catch (WebDriverException e) {
System.out.println(e.getMessage());
}
以下是testng.xml文件示例
<suite name="Suite" thread-count="2" parallel="true">
<test name="Test1">
<parameter name="browser" value="Firefox"/>
<classes>
<class name="stackoverflow.parallel"/>
</classes>
</test>
<test name="Test2">
<parameter name="browser" value="chrome"/>
<classes>
<class name="stackoverflow.parallel"/>
</classes>
</test>
</suite>