我有一个Maven POM文件,当我提供并行执行选项时,我没有在日志中看到任何并行执行的迹象.XML调试让我疯狂.有什么想法吗?
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.xxx.xxxx.testing.ranger</groupId>
<artifactId>ranger-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
<version>1.0.0</version>
</parent>
<artifactId>ranger-api-tests</artifactId>
<name>Ranger API Tests</name>
<description>Ranger API integration tests. Depends on the Ranger test framework project.</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<test.groups />
<surefire.and.failsafe.report.dir>C:/Users/xxx/Documents/Projects/LearnCubeAPIIT/tests/target</surefire.and.failsafe.report.dir>
</properties>
<dependencies>
<!-- Granite Testing framework -->
<dependency>
<groupId>com.xxx.xxxx.testing.ranger</groupId>
<artifactId>ranger-api-it-framework</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.16</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.16</version>
<configuration>
<parallel>classes</parallel>
<threadCount>4</threadCount>
<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory> …Run Code Online (Sandbox Code Playgroud) 当我尝试使用并行测试 Gem 并行运行我的规范时,我收到以下错误消息:
\n\nfoo:~/Projects/cucumber-capybara-saucelabs/spec/requests [] \xe2\x9e\x9c rake parallel:spec\n(in /Volumes/Storage/Projects/cucumber-capybara-saucelabs)\n8 processes for 5 specs, ~ 0 specs per process\nStarting Rails server on port 3001...\nStarting Rails server on port 3001...\nStarting Rails server on port 3001...\nStarting Rails server on port 3001...\nStarting Rails server on port 3001...\n[2013-05-22 14:40:12] INFO WEBrick 1.3.1\n[2013-05-22 14:40:12] INFO ruby 1.9.3 (2013-02-22) [x86_64-darwin12.3.0]\n[2013-05-22 14:40:12] INFO WEBrick::HTTPServer#start: pid=33256 port=3001\nRails server running!\nRails server running!\nRails server running!\nRails server running!\n[2013-05-22 14:40:12] INFO WEBrick 1.3.1\n[2013-05-22 14:40:12] INFO WEBrick 1.3.1\n[2013-05-22 14:40:12] INFO ruby 1.9.3 (2013-02-22) …Run Code Online (Sandbox Code Playgroud) 我已经使用 Junit 配置了 Selenium-cucumber maven 框架。添加 cucumber-jvm-parallel 插件和 maven-surefire 插件后,注释掉我们在 TestRunnerTest.java 文件中编写的 @CucumberOptions 中的语句。这样配置后,通过 CLI 运行。然后我的测试脚本失败了。但是 Runner 是自动为特征文件创建的。
POM文件如下所示:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>selcuc</groupId>
<artifactId>DemoEurasia</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>CucumberParallel</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<version.cucumber>3.0.2</version.cucumber>
<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>yyyy_MM_dd_HH_mm</maven.build.timestamp.format>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.14.0</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
<!-- <dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm</artifactId>
<version>1.2.5</version>
<type>pom</type>
</dependency> -->
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-jvm-deps -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm-deps</artifactId>
<version>1.0.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-picocontainer</artifactId> …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用testng并行运行我的自动化测试(Selenium webdriver).这是我正在运行的节点:
java -Dwebdriver.gecko.driver=chromedriver.exe -jar selenium-server-standalone-3.4.0.jar -role node -hub http://localhost:4444/grid/register -browser browserName=chrome,maxInstances=2 -maxSession 2
Run Code Online (Sandbox Code Playgroud)
这是我的测试类:
public class TestParallel {
Login login;
//@BeforeMethod(alwaysRun = true)
public SeleniumDriverCore testSetup() throws FileNotFoundException, IOException{
SeleniumDriverCore driver = new SeleniumDriverCore("config/chromeDriverConfig");
Properties config = new Properties();
config.load(new FileInputStream("config/testConfig"));
this.login = new Login(driver);
driver.browser.open("https://test.test.xyz");
driver.browser.maximize();
driver.waits.waitForPageToLoad();
return driver;
}
@Test(groups={"parallel"})
public void test_one() throws FileNotFoundException, IOException{
SeleniumDriverCore driver=testSetup();
login.navigateToPage(Pages.LOGIN);
login.assertion.verifyLoginPopupAndTitleDisplayed();
testCleanup(driver);
}
@Test(groups={"parallel"})
public void test_two() throws FileNotFoundException, IOException{
SeleniumDriverCore driver=testSetup();
login.navigateToPage(Pages.LOGIN);
login.assertion.verifyLoginPopupAndTitleDisplayed();
testCleanup(driver);
}
@Test(groups={"parallel"})
public …Run Code Online (Sandbox Code Playgroud)