我正在一个大项目中工作,我想在不同的浏览器中并行运行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可以在不同浏览器中并行运行的功能? 或在控制台?
I'm working in a big project, i want to run eature cucumber in parallel in different browser I have the featuren the step definition ? the webdriverfactory and the shared preferences.
I have this method in webfactory and it works and i write the 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 -->I don't know how to change the other method because it didn't has any parameter to pass and it return a web driver. when I have changed all the other method in other classes have a problem with it any suggestion please. and is the cucumber-jvm can run feature in parallel in different browser ??? or in console ???
最满意答案
您确实可以使用Courgette-JVM并行运行Cucumber 功能和场景
当你运行你的测试时,你可以设置一个系统属性来定位你想要并行使用的浏览器。
WebDriver Binary Downloader是管理驱动程序二进制文件的另一个有用的库
然后您可以指定浏览器在运行时使用:
System.setProperty(“browser”,“chrome”);
要么
虚拟机选项-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!"); } }You can indeed run Cucumber features and scenarios in parallel using Courgette-JVM
When you run your tests, you can set a System property that would target the browser you wish to use in parallel.
Another useful library to manage your driver binaries is WebDriver Binary Downloader
You can then specify the browser to use at runtime using:
System.setProperty("browser", "chrome");
or
VM option -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!"); } }更多推荐
发布评论