我正在一个大项目中工作,我想在不同的浏览器中并行运行eature cucumber 我有步骤定义的功能吗? webdriverfactory和共享首选项。
我在webfactory中有这个方法,它可以工作,我编写了testng.xml
public WebDriver driver;
public static WebDriver get() {
WebDriver driver = null ;
System.setProperty("webdriver.chrome.driver","D:\\Drive\\chromedriver_win32\\chromedriver.exe");
driver= new ChromeDriver();
return(driver);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="SuiteSopraHR" parallel="tests">
<test name="testie">
<!-- <parameter name="myBrowser" value="ie" /> -->
<classes>
<class name="com.driver.WebDriverFactory"/>
</classes>
</test> <!-- Test -->
<test name="testchrome">
<!-- <parameter name="myBrowser" value="chrome" /> -->
<classes>
<class name="com.driver.WebDriverFactory"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
我不知道如何更改其他方法,因为它没有任何参数要传递,它返回一个Web驱动程序。 当我更改了其他类中的所有其他方法时,它有问题 任何建议请。 并且是黄瓜-jvm可以在不同的浏览器中并行运行功能???或在控制台???
答案 0 :(得分:1)
您确实可以使用Courgette-JVM
并行运行Cucumber 功能和方案运行测试时,可以设置一个系统属性,该属性将以您希望并行使用的浏览器为目标。
另一个管理驱动程序二进制文件的有用库是WebDriver Binary Downloader
然后,您可以使用以下命令指定要在运行时使用的浏览器:
System.setProperty(“browser”,“chrome”);
或
VM选项-Dbrowser =“chrome”
private WebDriver driver;
public void createDriver() {
final String browser = System.getProperty("browser", "chrome").toLowerCase();
switch (browser) {
case "chrome":
WebDriverBinaryDownloader.create().downloadLatestBinaryAndConfigure(BrowserType.CHROME);
driver = new ChromeDriver();
case "firefox":
WebDriverBinaryDownloader.create().downloadLatestBinaryAndConfigure(BrowserType.FIREFOX);
driver = new FirefoxDriver();
default:
throw new RuntimeException("Invalid browser specified!");
}
}
答案 1 :(得分:0)
我认为,您需要在方法和参数中添加开关构造 - 来自testng.xml的浏览器类型。 另外,据我所知,并行执行仅适用于非静态驱动程序。
答案 2 :(得分:0)
我们正在使用QAF-Gherkin-client,您可以使用一个或多个xml测试节点configure。{您也可以并行运行场景。您无需为驱动程序管理或其他功能测试常见需求编写任何代码。
<suite name="AUT Test Automation" verbose="0" parallel="methods">
<test name="Tests on chrome">
<parameter name="driver.name" value="chromeDriver"/>
<classes>
<class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
</classes>
</test>
<test name="Tests FF">
<parameter name="driver.name" value="firefoxDriver"/>
<classes>
<class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
</classes>
</test>
</suite>