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

Фотография

Несколько сессий с разными юзерами в одном тесте


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

#1 alex7kir

alex7kir

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

  • Members
  • PipPip
  • 75 сообщений
  • ФИО:Алексей


Отправлено 07 августа 2009 - 10:49

Почитал доки, но чего-то так и не сообразил (с SeleniumRC и Java я пока на "вы") ...
В некоторых тестах, где нужно взаимодействие двух юзеров веб-приложения, хотелось бы запускать две различных сессии браузера, в которых авторизоваться под разными логинами и, переключаясь между ними, выполнять тест (постоянно делать logout-login в тесте как-то не хочется).
Как это правильно делается в Selenium RC? В смысле как запустить 2 браузера, как их различать, переключаться между ними и давать команды в определенный браузер? (использую Eclipse+Maven+TestNG)
  • 0

#2 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 07 августа 2009 - 19:55

Достаточно просто открыть две сессии, у них будут разные профили, а соответственно можно работать с двумя одновременно залогиненными пользователями.
  • 0

#3 alex7kir

alex7kir

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

  • Members
  • PipPip
  • 75 сообщений
  • ФИО:Алексей


Отправлено 08 августа 2009 - 09:37

Достаточно просто открыть две сессии, у них будут разные профили, а соответственно можно работать с двумя одновременно залогиненными пользователями.


Это понятно, но как именно? И как их отличать друг от друга?
  • 0

#4 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 08 августа 2009 - 09:56

Это понятно, но как именно? И как их отличать друг от друга?

Не совсем понимаю проблему, что значит отличать? Зачем их отличать вообще? Каждая сессия - это отдельный объект, например:
Selenium s1 = new DefaultSelenium(...);
s1.start(); // Запускаем первый браузер.
Selenium s2 = new DefaultSelenium(...);
s2.start(); // Запускаем второй браузер.
И так дальше с ними и работаем, хотим в первой сессии что-то сделать - значит используем s1, хотим во второй - используем s2.
  • 0

#5 alex7kir

alex7kir

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

  • Members
  • PipPip
  • 75 сообщений
  • ФИО:Алексей


Отправлено 08 августа 2009 - 16:12

Не совсем понимаю проблему, что значит отличать? Зачем их отличать вообще? Каждая сессия - это отдельный объект, например:
И так дальше с ними и работаем, хотим в первой сессии что-то сделать - значит используем s1, хотим во второй - используем s2.

Проблема в том, что вопрошающий еще слабо понимает в Java. :)
Спасибо большое за пример, теперь понятно.
  • 0

#6 hachapuri

hachapuri

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

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Сиробаба Александр Эдуардович

Отправлено 24 сентября 2009 - 14:00

Ошибка при запуске двух сессий одновременно (java.lang.nullPointerException)
Логи:

16:54:04.656 INFO - Command request: getNewBrowserSession[*firefox, https://dev.
vyke.com, ] on session null
16:54:04.671 INFO - creating new remote session
16:54:04.781 INFO - Allocated session 2ee8a16ac8c846b0948885415734dff1 for https
://xxx.xxx.com, launching...
16:54:04.875 INFO - Preparing Firefox profile...
16:54:07.484 INFO - Launching Firefox...
16:54:10.265 INFO - Got result: OK,2ee8a16ac8c846b0948885415734dff1 on session 2
ee8a16ac8c846b0948885415734dff1
16:54:10.265 INFO - Command request: getNewBrowserSession[*firefox, http://ac-se
rvice.info, ] on session null
16:54:10.265 INFO - creating new remote session
16:54:10.265 INFO - Allocated session 456757c7c35c4fdc9414f2b6eff14806 for http:
//ac-service.info, launching...
16:54:10.296 INFO - Preparing Firefox profile...
16:54:12.906 INFO - Launching Firefox...
16:54:15.984 INFO - Got result: OK,456757c7c35c4fdc9414f2b6eff14806 on session 4
56757c7c35c4fdc9414f2b6eff14806

Код:
public class testNew1 extends SeleneseTestCase{	public DefaultSelenium s,s2;@Before	public void setUp(){	Selenium s2 = new DefaultSelenium("localhost", 4444, "*firefox","https://xxx.xxx.com");s2.start();Selenium s = new DefaultSelenium("localhost", 4444, "*firefox","http://ac-service.info");s.start();}@Afterpublic void tearDown() {          s.stop();          s2.stop();         }@Testpublic void testNew() throws Exception{	s.windowFocus();

  • 0


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

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