testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="SomeTests" parallel="classes" thread-count="3">
<test name="Tests">
<classes>
<class name="SomeOneTest"/>
<class name="SomeTwoTest"/>
<class name="ApiTest"/>
</classes>
</test>
</suite>
build.gradle
plugins {
id "java"
id "com.github.ben-manes.versions" version "0.11.3"
}
group 'com.tests'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
configurations {
agent
}
ext {
aspectjVersion="1.8.6"
allureVersion="1.4.16"
}
dependencies {
compile "org.testng:testng:6.9.6"
compile "org.seleniumhq.selenium:selenium-server:2.47.1"
compile "com.codeborne:selenide:2.21"
compile "ru.yandex.qatools.allure:allure-report-data:${allureVersion}"
compile "ru.yandex.qatools.allure:allure-testng-adaptor:${allureVersion}"
compile "com.jayway.restassured:rest-assured:2.4.1"
compile "com.google.code.gson:gson:2.3.1"
compile "com.typesafe:config:1.3.0"
agent "org.aspectj:aspectjweaver:${aspectjVersion}"
}
test.doFirst {
jvmArgs "-javaagent:${configurations.agent.singleFile}"
}
test {
useTestNG() {
suiteXmlFiles << new File(rootDir, "testng.xml")
systemProperties = [
browser: System.getProperty('browser', 'firefox'),
]
}
}
Три тестовых класса
import com.jayway.restassured.RestAssured;
import org.testng.annotations.Test;
public class ApiTest {
@Test
public void apiTest1() {
RestAssured
.get("http://google.com")
.then()
.statusCode(200);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Test
public void apiTest2() {
RestAssured
.get("http://google.com")
.then()
.statusCode(200);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
второй
import com.codeborne.selenide.Selenide;
import org.openqa.selenium.By;
import org.testng.annotations.Test;
import ru.yandex.qatools.allure.annotations.Description;
import ru.yandex.qatools.allure.annotations.Title;
import static com.codeborne.selenide.Selenide.$;
public class SomeOneTest {
@Test
@Title("Test 1 Class 1")
@Description("Description to test 1")
public void test1() {
Selenide.open("http://google.com");
$(By.name("q")).setValue("honda").pressEnter();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Test
@Title("Test 2 Class 1")
@Description("Description to test 1")
public void test2() {
Selenide.open("http://google.com");
$(By.name("q")).setValue("toyota").pressEnter();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
третий
import com.codeborne.selenide.Selenide;
import org.openqa.selenium.By;
import org.testng.annotations.Test;
import ru.yandex.qatools.allure.annotations.Description;
import ru.yandex.qatools.allure.annotations.Title;
import static com.codeborne.selenide.Selenide.$;
public class SomeTwoTest {
@Test
@Title("Test 1 Class 2")
@Description("Description to test 1")
public void test1() {
Selenide.open("http://google.com");
$(By.name("q")).setValue("nissan").pressEnter();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Test
@Title("Test 2 Class 2")
@Description("Description to test 1")
public void test2() {
Selenide.open("http://google.com");
$(By.name("q")).setValue("subaru").pressEnter();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Вот ссылкана архив с проектом который четко воспроизводит проблему - Dropbox - Error - Simplify your life
Суть такова - открываются лишние инстансы браузера которые просто висят, ничего не делают а потом еще и не закрываются
Все совету и соображения по поводу приветствуются