Перейти к содержимому

Фотография

Проблема с запуском нескольких классов через xml в testng


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 prostooleg1

prostooleg1

    Активный участник

  • Members
  • PipPip
  • 94 сообщений
  • Город:Москва


Отправлено 11 ноября 2011 - 09:31

Имеем два класса в одном 15 тестовых методов, в другом 4. Если через xml файл запускать оба класса, то один тест проходит, а другой валится с java.lang.NullPointerException. Хотя если запускать классы по отдельности через этот же xml, то все будет хорошо.

Сами классы:

package com.example.tests;

import java.util.concurrent.TimeUnit;

import org.testng.annotations.Test;
import org.testng.annotations.Test;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import org.apache.bcel.verifier.Verifier;
import org.apache.bcel.verifier.VerifierFactory;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;
/*
1) Кнопка «Регистрация» видна и при клике ведет страницу с присутствием тега div.
2) Кнопка «Вход» видна и при клике ведет страницу с присутствием тега div.
3) Ссылка «Знакомства" и при клике ведет страницу с присутствием тега div..
4) Ссылка "Топ-100" видна и при клике ведет страницу с присутствием тега div.
5) Ссылка "Попутчики" видна и при клике ведет страницу с присутствием тега div.
6) Ссылка «Свидания» видна и при клике ведет страницу с присутствием тега div.
7) Ссылка «Друзья» видна и при клике ведет страницу с присутствием тега div.
8) Ссылка «Помощь» видна и при клике ведет страницу с присутствием тега div.
9) Ссылка «Бар знакомств» видна и при клике ведет страницу с присутствием тега div.
10) Ссылка «Для мобильного» видна и при клике ведет страницу с присутствием тега div.
11) Ссылка «Поиск попутчиков» видна и при клике ведет страницу с присутствием тега div.
12) Ссылка «О компании» видна и при клике ведет страницу с присутствием тега div.
13) Ссылка «Партнерам» видна и при клике ведет страницу с присутствием тега div.
14) Ссылка «Реклама» видна и при клике ведет страницу с присутствием тега div.
15) Ссылка «Вакансии» видна и при клике ведет страницу с присутствием тега div.

1 класс
*/
public class Test6 extends TestBase {

@Test

public void LoginPageTestNg_test1() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("a.ui-btn.ui-btn-big"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}



@Test

public void LoginPageTestNg_test2() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("a.o-auth"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}




@Test

public void LoginPageTestNg_test3() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("div#MenuNav ul li.page-www a"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}




@Test

public void LoginPageTestNg_test4() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("li.page-top a"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}


@Test

public void LoginPageTestNg_test5() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("li.page-travel a"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}



@Test

public void LoginPageTestNg_test6() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("li.page-placecard a"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}


@Test

public void LoginPageTestNg_test7() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("li.page-diary a"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}



@Test

public void LoginPageTestNg_test8() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("li.link-support a"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}


@Test

public void LoginPageTestNg_test9() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("li.BarMenu a"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}


@Test

public void LoginPageTestNg_test10() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("li.WapMenu a"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}


@Test

public void LoginPageTestNg_test11() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("div#FindTravelers h2 a"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}


@Test

public void LoginPageTestNg_test12() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("div.MinimalWidth div.MW-Fix div a[href='http://www.corp.mamba.ru/']"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
///wd.findElement(By.xpath("//a[contains(@href,'http://www.corp.mamba.ru/')]")).click();
}


@Test

public void LoginPageTestNg_test13() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("div.MinimalWidth div.MW-Fix div a[href='http://www.corp.mamba.ru/partner/']"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}



@Test

public void LoginPageTestNg_test14() throws Exception {
wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("div.MinimalWidth div.MW-Fix div a[href='http://www.corp.mamba.ru/adv/audience.phtml']"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}



@Test

public void LoginPageTestNg_test15() throws Exception {
wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
WebElement myDynamicElement = wd.findElement(By.cssSelector("div.MinimalWidth div.MW-Fix div a[href='http://www.corp.mamba.ru/company/job.phtml']"));
myDynamicElement.click();
wd.findElement(By.cssSelector("div"));
}


}




package com.example.tests;

import org.testng.annotations.Test;
import java.util.concurrent.TimeUnit;

import org.testng.annotations.Test;
import org.testng.annotations.Test;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import org.apache.bcel.verifier.Verifier;
import org.apache.bcel.verifier.VerifierFactory;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.interactions.Actions;

/*
16) Логотип "Mamaba" виден и при клике ведет страницу с присутствием тега div.
17) Видны поля и крыжи: "Хочу найти", "Где, "Цель знакомства", "Кто рядом", "с веб камерой", "возраст(обя поля)", "Расширенный поиск"
Кнопка "Найти" присутствует на странице и при клике ведет страницу с присутствием тега div.
18) Виден блок Новые лица и при клике ведет страницу с присутствием тега div.
Виден блок Топ-100 и при клике ведет страницу с присутствием тега div.
19) Виден блок переключения языка, при клике раскрывается лаер, кликает на английский язык и при клике ведет страницу с присутствием тега div.
Снова открываем мамбу виден блок переключения языка, при клике раскрывается лаер, кликает на немецкий язык и при клике ведет страницу с присутствием тега div.

*/
public class Test7 extends TestBase {


/* 2 класс */
@Test

public void LoginPageTestNg_test16() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
Actions builder = new Actions(wd);
WebElement menubar_more = wd.findElement(By.cssSelector("div#HeadBlock div#Logo a img"));
builder.moveToElement(menubar_more).click().perform();
wd.findElement(By.cssSelector("div"));
}



@Test

public void LoginPageTestNg_test17() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
wd.findElement(By.cssSelector("div.form div.line div.first select")); /// поле "Кого хочу найти"
wd.findElement(By.cssSelector("div.line div.third select#SLocation")); /// поле "Где"
wd.findElement(By.cssSelector("div.form div.line div.fourth select")); /// поле "Цель знакомства"
wd.findElement(By.cssSelector("div.line2 label.withVideo input#withVideo")); /// крыж "с веб камерой"
wd.findElement(By.cssSelector("div.form div.line div.second span input[name='af']")); /// возраст первая галка
wd.findElement(By.cssSelector("div.form div.line div.second span input[name='at']")); /// возраст вторая галка
wd.findElement(By.cssSelector("div#formResize.SearchForm div.submit a.advSearch")); /// "Расширенный поиск"
wd.findElement(By.cssSelector("div#formResize.SearchForm div.submit input")).click(); /// Кнопка "Найти" нажимаем
wd.findElement(By.cssSelector("div"));

}





@Test

public void LoginPageTestNg_test18() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
wd.findElement(By.cssSelector("ul.TopPhotos li a.u-m-photo img")).click();
wd.findElement(By.cssSelector("div"));
wd.get("http://www.mamba.ru/");
wd.findElement(By.cssSelector("div.OverflowContainer ul li")).click();
wd.findElement(By.cssSelector("div"));

}


@Test
public void LoginPageTestNg_test19() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
wd.findElement(By.xpath("//div[@id='BlockUserInfo']//li[@class='link-lang']//img")).click();
wd.findElement(By.xpath("//div[@id='BlockUserInfo']//li[@class='link-lang active']//a[contains(@href,'lang_id=3')]")).click();
wd.findElement(By.cssSelector("div"));
wd.findElement(By.xpath("//div[@id='BlockUserInfo']//li[@class='link-lang']//img")).click();
wd.findElement(By.xpath("//div[@id='BlockUserInfo']//li[@class='link-lang active']//a[contains(@href,'lang_id=5')]")).click();
wd.findElement(By.cssSelector("div"));
wd.findElement(By.xpath("//div[@id='BlockUserInfo']//li[@class='link-lang']//img")).click();
wd.findElement(By.xpath("//div[@id='BlockUserInfo']//li[@class='link-lang active']//a[contains(@href,'lang_id=2')]")).click();
wd.findElement(By.cssSelector("div"));
}

}



package com.example.tests;

import java.net.URL;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.*;
import org.testng.xml.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.*;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.Augmenter;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import com.opera.core.systems.OperaDriver;
import com.thoughtworks.selenium.SeleneseTestNgHelper;

public class TestBase {


protected WebDriver wd;

@BeforeSuite
public void startSelenium() throws Exception {
wd = new RemoteWebDriver(

new URL("http://192.168.2.191:4444/wd/hub"),
DesiredCapabilities.firefox());

}





@AfterSuite
public void stopSelenium() {
wd.close();
}
}


Конфигурационный файл:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/te...estng-1.0.dtd">
<suite name="Default suite">
<test name="Write new post" preserve-order="true">
<classes>
<class name="com.example.tests.Test6"/>
<class name="com.example.tests.Test7"/>
</classes>
</test>
</suite>


Ошибки с которой валятся тесты:

java.lang.NullPointerException
at com.example.tests.Test6.LoginPageTestNg_test1(Test6.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:691)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:883)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1208)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:753)
at org.testng.TestRunner.run(TestRunner.java:613)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:335)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:330)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
at org.testng.SuiteRunner.run(SuiteRunner.java:241)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1169)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1094)
at org.testng.TestNG.run(TestNG.java:1006)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:107)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:199)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:170)
  • 0

#2 prostooleg1

prostooleg1

    Активный участник

  • Members
  • PipPip
  • 94 сообщений
  • Город:Москва


Отправлено 11 ноября 2011 - 10:30

Разобрался
  • 0

#3 mzzz

mzzz

    Новый участник

  • Members
  • Pip
  • 28 сообщений
  • ФИО:Ольга
  • Город:Харьков

Отправлено 27 января 2012 - 09:20

Вопрос на понимание. Необходимо запускать ряд тестов, один за другим, но одновременно в нескольких браузерах на двух разных машинах. Используется Selenium Grid 2.
Вопрос: для этого мне необходимо, например, с помощью TestNG в xml файле указать запуск тестов параллельно? То есть Selenium Grid 2 позволяет указать, где какие нужные нам браузеры находятся, а конкретно для запуска тестов необходим инструмент, который позволит запустить несколько тестов сразу?
  • 0

#4 curiosity

curiosity

    Новый участник

  • Members
  • Pip
  • 17 сообщений

Отправлено 16 февраля 2012 - 07:36

Разобрался

в чем была проблема?
  • 0

#5 prostooleg1

prostooleg1

    Активный участник

  • Members
  • PipPip
  • 94 сообщений
  • Город:Москва


Отправлено 25 февраля 2012 - 11:20


Разобрался

в чем была проблема?



Не помню, где то я там забыл поле вебдрайвера статическом указать, по моему так.
  • 0

#6 CaPsULe

CaPsULe

    Новый участник

  • Members
  • Pip
  • 24 сообщений

Отправлено 05 марта 2012 - 10:20

Похожая ошибка повторяется, если запускать две тестовые методы. По отдельности каждый метод запускается.

PHPUnit 3.6.7 by Sebastian Bergmann.

Time: 47 seconds, Memory: 10.50Mb

There was 1 failure:

1) EnableSettings::disableAffliateProgram with data set #0 ('example@example.com', '1234')
Unsuccessful WebDriver command: 13 - UnknownError - An unknown server-side error occurred while processing the command.
Command: POST - http://localhost:4444/wd/hub/session/1330929082651/refresh - 
Response: {"status":13,"sessionId":"1330929082651","value":{"message":null,"localizedMessage":null,"cause":null,"class":"java.lang.NullPointerException","hCode":628003988,"stackTrace":[{"fileName":"WebDriverHandler.java","class":"java.lang.StackTraceElement","lineNumber":44,"className":"org.openqa.selenium.remote.server.handler.WebDriverHandler","nativeMethod":false,"methodName":"handle","hCode":-1140139241},{"fileName":"ResultConfig.java","class":"java.lang.StackTraceElement","lineNumber":196,"className":"org.openqa.selenium.remote.server.rest.ResultConfig","nativeMethod":false,"methodName":"handle","hCode":517694411},{"fileName":"DriverServlet.java","class":"java.lang.StackTraceElement","lineNumber":586,"className":"org.openqa.selenium.remote.server.DriverServlet","nativeMethod":false,"methodName":"handleRequest","hCode":-473868790},{"fileName":"DriverServlet.java","class":"java.lang.StackTraceElement","lineNumber":523,"className":"org.openqa.selenium.remote.server.DriverServlet","nativeMethod":false,"methodName":"doPost","hCode":-1874935473},{"fileName":"HttpServlet.java","class":"java.lang.StackTraceElement","lineNumber":727,"className":"javax.servlet.http.HttpServlet","nativeMethod":false,"methodName":"service","hCode":1081440705},{"fileName":"DriverServlet.java","class":"java.lang.StackTraceElement","lineNumber":490,"className":"org.openqa.selenium.remote.server.DriverServlet","nativeMethod":false,"methodName":"service","hCode":1913428376},{"fileName":"HttpServlet.java","class":"java.lang.StackTraceElement","lineNumber":820,"className":"javax.servlet.http.HttpServlet","nativeMethod":false,"methodName":"service","hCode":1081440798},{"fileName":"ServletHolder.java","class":"java.lang.StackTraceElement","lineNumber":428,"className":"org.openqa.jetty.jetty.servlet.ServletHolder","nativeMethod":false,"methodName":"handle","hCode":1066597463},{"fileName":"ServletHandler.java","class":"java.lang.StackTraceElement","lineNumber":677,"className":"org.openqa.jetty.jetty.servlet.ServletHandler","nativeMethod":false,"methodName":"dispatch","hCode":1390736796},{"fileName":"ServletHandler.java","class":"java.lang.StackTraceElement","lineNumber":568,"className":"org.openqa.jetty.jetty.servlet.ServletHandler","nativeMethod":false,"methodName":"handle","hCode":-1689621667},{"fileName":"HttpContext.java","class":"java.lang.StackTraceElement","lineNumber":1530,"className":"org.openqa.jetty.http.HttpContext","nativeMethod":false,"methodName":"handle","hCode":1685351422},{"fileName":"HttpContext.java","class":"java.lang.StackTraceElement","lineNumber":1482,"className":"org.openqa.jetty.http.HttpContext","nativeMethod":false,"methodName":"handle","hCode":1685351374},{"fileName":"HttpServer.java","class":"java.lang.StackTraceElement","lineNumber":909,"className":"org.openqa.jetty.http.HttpServer","nativeMethod":false,"methodName":"service","hCode":1779095622},{"fileName":"HttpConnection.java","class":"java.lang.StackTraceElement","lineNumber":820,"className":"org.openqa.jetty.http.HttpConnection","nativeMethod":false,"methodName":"service","hCode":-1150970931},{"fileName":"HttpConnection.java","class":"java.lang.StackTraceElement","lineNumber":986,"className":"org.openqa.jetty.http.HttpConnection","nativeMethod":false,"methodName":"handleNext","hCode":1892375929},{"fileName":"HttpConnection.java","class":"java.lang.StackTraceElement","lineNumber":837,"className":"org.openqa.jetty.http.HttpConnection","nativeMethod":false,"methodName":"handle","hCode":-954717551},{"fileName":"SocketListener.java","class":"java.lang.StackTraceElement","lineNumber":243,"className":"org.openqa.jetty.http.SocketListener","nativeMethod":false,"methodName":"handleConnection","hCode":91812189},{"fileName":"ThreadedServer.java","class":"java.lang.StackTraceElement","lineNumber":357,"className":"org.openqa.jetty.util.ThreadedServer","nativeMethod":false,"methodName":"handle","hCode":-1347859605},{"fileName":"ThreadPool.java","class":"java.lang.StackTraceElement","lineNumber":534,"className":"org.openqa.jetty.util.ThreadPool$PoolThread","nativeMethod":false,"methodName":"run","hCode":172881957}]},"class":"org.openqa.selenium.remote.Response","hCode":2128384958}


FAILURES!
Tests: 2, Assertions: 151, Failures: 1.


  • 0

#7 CaPsULe

CaPsULe

    Новый участник

  • Members
  • Pip
  • 24 сообщений

Отправлено 07 марта 2012 - 06:15

Я тоже разобрался.
  • 0

#8 nokia5530982

nokia5530982

    Новый участник

  • Members
  • Pip
  • 4 сообщений

Отправлено 28 июня 2014 - 10:44

))


  • 0

#9 nokia5530982

nokia5530982

    Новый участник

  • Members
  • Pip
  • 4 сообщений

Отправлено 28 июня 2014 - 10:45

Я тоже разобрался.

Как вы разобрались?Подскажите, пожалуйста, у меня аналогичная проблема)


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных