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

Фотография

Как организовать параллельное тестирование


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

#1 Gromozeka

Gromozeka

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

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

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

Стоит задача сделать тест в котором участвуют 2 пользователя фейсбука. К примеру один отправляет инвайт второму, тот принимает его и отправляет что-то первому и так далее. Такое возможно сделать с помощью селениума?
  • 0

#2 D2Phoenix

D2Phoenix

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

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


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

Просто создаёшь два инстанса селениума. И работаешь с каждым из них по отдельности
  • 0

#3 Gromozeka

Gromozeka

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

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

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

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

А если сделать просто параллельное выполнение 2х тестов. Один для первого юзера, другой-для второго.
  • 0

#4 Gromozeka

Gromozeka

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

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

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

Подскажите новичку как создать 2 инстанса? Или может ссылку дадите на мануал, статьи? Спасибо
  • 0

#5 appmen

appmen

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

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

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

Подскажите новичку как создать 2 инстанса? Или может ссылку дадите на мануал, статьи? Спасибо

Вы используете Селениум ВебДрайвер или сервер? Я для таких целей пишу 2 разных теста и запускаю их по очереди. Открываются 2 окна фаерфокса. Главное не забыть поставить ожидание :acute:
  • 0

#6 Gromozeka

Gromozeka

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

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

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

Веб драйвер. Почему по очереди? Как же будут взаимодействовать 2 юзера? Мне кажется именно параллельно надо запускать.
  • 0

#7 appmen

appmen

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

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

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

Веб драйвер. Почему по очереди? Как же будут взаимодействовать 2 юзера? Мне кажется именно параллельно надо запускать.

т.е. если действие произойдёт с интервалом в 1 или 2 секунды - это провал?
  • 0

#8 D2Phoenix

D2Phoenix

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

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


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

Веб драйвер. Почему по очереди? Как же будут взаимодействовать 2 юзера? Мне кажется именно параллельно надо запускать.

А если один тест будет проходить шаги быстрее чем другой?) Самый лучший вариант в вашем случае, это:
первый юзер сделал действие
второ юзер сделал действие
первый юзер
и т.д
В сейтапе вот так:

driver1 = new FirefoxDriver();
driver2 = new FirefoxDriver();

В тесте как-то так

driver1.findElement(..).click();
driver2.findElement(..).click();
и т.д.


Иначе придётся писать кучу проверок и ожиданий выполнения действий
  • 0

#9 Gromozeka

Gromozeka

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

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

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

Спасибо! А если для варианта с селениум сервером? Можно ли так сделать?
  • 0

#10 D2Phoenix

D2Phoenix

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

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


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

Спасибо! А если для варианта с селениум сервером? Можно ли так сделать?

Да
  • 0

#11 Gromozeka

Gromozeka

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

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

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

Это будет выглядеть так?
Selenium selenium1 = new DefaultSelenium(
"localhost", 4444, "*firefox", "http://www.yoursite.com");
selenium1.start();
Selenium selenium2 = new DefaultSelenium(
"localhost", 4444, "*firefox", "http://www.yoursite.com");
selenium2.start();
а в коде:
selenium1.click();
selenium2.click();

  • 0

#12 D2Phoenix

D2Phoenix

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

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


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

Это будет выглядеть так?

Selenium selenium1 = new DefaultSelenium(
"localhost", 4444, "*firefox", "http://www.yoursite.com");
selenium.start();
Selenium selenium2 = new DefaultSelenium(
"localhost", 4444, "*firefox", "http://www.yoursite.com");
selenium.start();
а в коде:
selenium1.click();
selenium2.click();

угум)
только

selenium1.start();
...
selenium2.start();


  • 0

#13 Gromozeka

Gromozeka

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

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

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

Большое спасибо! Попробуемс
  • 0

#14 Gromozeka

Gromozeka

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

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

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

Для сервера не получится сделать параллельное тестирование. Да он создает 2 окна браузера, но работает только с последним.
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://www.facebook.com:8080");
		 selenium.start();
		 FirstUserLogIn();
		 selenium2 = new DefaultSelenium("localhost", 4444, "*chrome", "http://www.facebook.com:8080");
		 selenium2.start();
		  SecondUserLogIn();
После логина второго юзера, в тесте выполнются команды только для selenium2
  • 0

#15 appmen

appmen

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

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 08 февраля 2012 - 08:53

так как я описал - работает, но вы правы - придётся ставить дополнительные проверки
  • 0

#16 D2Phoenix

D2Phoenix

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

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


Отправлено 08 февраля 2012 - 09:03

После логина второго юзера, в тесте выполнются команды только для selenium2

ну как вариант запускать два селениум сервера)
но впринципе вроде должно работать. Доберусь до ноута посмотрю в чём дело)
  • 0

#17 D2Phoenix

D2Phoenix

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

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


Отправлено 08 февраля 2012 - 09:21

У меня всё работает. Вот пример:

import java.io.IOException;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.SeleneseTestCase;
import com.thoughtworks.selenium.Selenium;

@SuppressWarnings("deprecation")
public class Test1 extends SeleneseTestCase
{
Selenium selenium2;

public Test1()
{
}

@Before
public void setUp() throws IOException
{
selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://google.com");
selenium.start();
selenium2 = new DefaultSelenium("localhost", 4444, "*firefox", "http://google.com");
selenium2.start();
}

@Test
public void testCalculateNumberOfSearchTermsForAllTime() throws InterruptedException
{
selenium.open("http://google.com");
selenium2.open("http://google.com");
selenium.goBack();
selenium2.goBack();
}

@After
public void tearDown()
{
selenium.stop();
selenium2.stop();
}

}


  • 0

#18 Gromozeka

Gromozeka

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

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

Отправлено 08 февраля 2012 - 10:49

Проблема видимо в этом: Permission denied for <http://www.facebook.com> to get property Location.href. Странно. Вроде браузер с параметром *chrome запускается
  • 0

#19 D2Phoenix

D2Phoenix

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

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


Отправлено 08 февраля 2012 - 10:57

Проблема видимо в этом: Permission denied for <http://www.facebook.com> to get property Location.href. Странно. Вроде браузер с параметром *chrome запускается

А что именно в своём тесте вы пытаетесь сделать?
  • 0

#20 Gromozeka

Gromozeka

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

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

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


Проблема видимо в этом: Permission denied for <http://www.facebook.com> to get property Location.href. Странно. Вроде браузер с параметром *chrome запускается

А что именно в своём тесте вы пытаетесь сделать?

1.Я переходу по ссылке на фейсбук приложение.
При этом фейс предлагает авторизоваться.
2. Логинюсь 2мя юзерами
3. В итоге одному юзему удаются дальнейшие действия в приложении, а второй после логина ничего не может сделать.
  • 0


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

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