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

Фотография

SleniumRC + NetBeans


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

#1 frei_by

frei_by

    Постоянный участник

  • Members
  • PipPipPip
  • 177 сообщений
  • ФИО:Дмитрий

Отправлено 12 октября 2010 - 14:22

Установил RC сервер из NetBeans.

пытаюсь выполнить какой-нибудь тест-кейс.

Выдаёт ошибку -

PHPUnit 3.5.0 by Sebastian Bergmann.

E

Time: 36 seconds, Memory: 4.75Mb

There was 1 error:

1) newSeleneseTest1::testMyTestCase
PHPUnit_Framework_Exception: Response from Selenium RC server for getNewBrowserSession(*chrome, http://localhost:8080/).
Failed to start new browser session: Unable to delete file C:\DOCUME~1\9335~1\LOCALS~1\Temp\customProfileDir7a5dfd53eb844c8ab272db7535e6ef19\parent.lock.



FAILURES!
Tests: 1, Assertions: 0, Errors: 1.


подскажите, в чём секрет?
Что не так?
  • 0

#2 ekulgavaya

ekulgavaya

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

  • Members
  • Pip
  • 50 сообщений
  • ФИО:Елена
  • Город:Minsk, Belarus


Отправлено 12 октября 2010 - 14:27

А Вам принципиально в ФФ запускать тест? У меня просто похожая проблема. Борюсь как могу. Попробуйте запустить в ИЕ Вместо *chrome используйте *piiexplore.
  • 0
In God we trust, the rest we test.

#3 frei_by

frei_by

    Постоянный участник

  • Members
  • PipPipPip
  • 177 сообщений
  • ФИО:Дмитрий

Отправлено 12 октября 2010 - 14:39

c открытием ff проблемы, зато получилось открыть *iexplore:

тескейс который ничего не делает проходит отлично:

<?php
require_once 'PHPUnit/Extensions/SeleniumTestCase.php';

class newSeleneseTest1 extends PHPUnit_Extensions_SeleniumTestCase {
function setUp() {
$this->setBrowser("*iexplore");
$this->setBrowserUrl("http://shop5.test.shop.by/");
}

function testMyTestCase() { }
}
?>


но если что-то посложнее - начинаются неполадки.

public function testMyTestCase()
{
$this->open("/");


возвращает

1) Example::testMyTestCase
PHPUnit_Framework_Exception: Response from Selenium RC server for testComplete().
Timed out after 30000ms.
D:\selenium\test_project\sel\test2.php:15


причём 15 линия это как раз
$this->open("/");

Видно, что броузер запускается, открывается страница. Я так понимаю, что почему-то от сервера не приходит ответ....
  • 0

#4 ekulgavaya

ekulgavaya

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

  • Members
  • Pip
  • 50 сообщений
  • ФИО:Елена
  • Город:Minsk, Belarus


Отправлено 12 октября 2010 - 15:06

Хм... А попробуйте ждать в цикле пока не появится какой-нибудь элемент на странице.

К сожалению не сильна в php, но на java это будет выглядеть примерно вот так

try{
selenium.open("/");
for (int second = 0;; second++) {
if (second >= 180) fail("timeout");
try { if (selenium.isElementPresent("Some_Element_on_the_Page")) break; } catch (Exception e) {}
Thread.sleep(1000);
}
  • 0
In God we trust, the rest we test.

#5 ekulgavaya

ekulgavaya

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

  • Members
  • Pip
  • 50 сообщений
  • ФИО:Елена
  • Город:Minsk, Belarus


Отправлено 12 октября 2010 - 15:09

И еще я не уверена по поводу команды open("/"), попробуйте может быть весь путь прописать? Ну то есть open("http://site_you_are_testing/")
  • 0
In God we trust, the rest we test.

#6 frei_by

frei_by

    Постоянный участник

  • Members
  • PipPipPip
  • 177 сообщений
  • ФИО:Дмитрий

Отправлено 13 октября 2010 - 08:46

Ну в общем я разобрался почему RC не хотел запускать Firefox. Правильный ответ - запускать нужно с новым профилем. Дело в том что Netbeans умеет сам запускать RC, причём делает это в двумя параметрами: serverport = 4444 и StartOnNetBeansStartUp = cheked.

Я создал bat файл
pause
java -jar C:\Program" "Files\selenium\selenium-server-1.0.3\selenium-server.jar -firefoxProfileTemplate "D:\selenium\profiles\ff368"
pause
pause - чтобы были паузы и возможнотсть прочитать output.
в папке ""D:\selenium\profiles\ff368" - создал новый профиль,
накатил на этот профиль screengrub, чтобы можно было снимать скриншоты,


и вот такой вот код:
class Example extends PHPUnit_Extensions_SeleniumTestCase
{
  protected function setUp()
  {
    //$this->setBrowser("*piiexplore");
    $this->setBrowser("*firefox3");
    $this->setBrowserUrl("http://_УРЛ_сайта_");
  }

  public function testMyTestCase()
  {
    $this->open('/');
    $this->getSpeed(100);

    // окно к размеру 1024
    $this->storeEval("window.resizeTo(1048, 666)");
    // скриншот главной страницы
    $loc = $this->getLocation();
    
    $this->captureEntirePageScreenshot("d:\shots\main.jpg");
   
  }

вполне даже успешно выполнился, в нужное место записалася скриншот.
С бубном при этом поплясать пришлось изрядно, с утра перелопатить пол-интернета полоумных блогов, в конце концов заглянуть в доки seleniumhq.org -
и я счастлив. Наконец-то я могу использовать возможности нормальных языков програмирования на полную мощность.

На правильный ответ натолкнуло вот это -
http://www.qaautomation.net/?p=15
  • 0

#7 frei_by

frei_by

    Постоянный участник

  • Members
  • PipPipPip
  • 177 сообщений
  • ФИО:Дмитрий

Отправлено 13 октября 2010 - 08:50

По поводу таймаута - да иногда бвает на тестируемый сайт ставят какую-нибудь постороннюю шпионскую приблуду типа гугль аналистик которая тормозит событие "окончание загрузки". Поэтому команда open возвращает ошибку после истечения таймаута.

Из того что вы писали на java (а java я не знаю вообще) - уловил что вы предлагаете делать обработку исключений для команды open и если команда open лажанётся, просто проверить что на странице присутствует искомый элемент - и соответственно ждать больше нет смысла.
  • 0

#8 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 13 октября 2010 - 18:05

Хорошо, что вам удалось после плясок с бубном справиться :)
Да, селениум-сервер в плагине для NB старой версии, которая не поддерживает FF 3.6, я недавно уже предупреждал об этом: http://software-test...dpost__p__77672
Но всё таки не понимаю -- зачем все эти ухищрения, чем стартовать сервер из консоли хуже, чем из IDE, где нельзя ни параметры запуска указать, ни логирование настроить?
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#9 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 14 октября 2010 - 17:47

Кстати, проблемы с запуском ФФ могли быть еще из-за того, что в это время было открыто какое-то окно ФФ. Когда селениум стартует ФФ, то он копирует профиль во временную папку, а поскольку базовый профиль уже занят, но некоторые файлы скопировать не удалось. Вот и вылезает подобная ошибка.
  • 0


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

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