Как организовать параллельное тестирование
#1
Отправлено 07 февраля 2012 - 11:17
#2
Отправлено 07 февраля 2012 - 12:29
#3
Отправлено 07 февраля 2012 - 12:40
А если сделать просто параллельное выполнение 2х тестов. Один для первого юзера, другой-для второго.Просто создаёшь два инстанса селениума. И работаешь с каждым из них по отдельности
#4
Отправлено 07 февраля 2012 - 12:50
#5
Отправлено 07 февраля 2012 - 13:10
Вы используете Селениум ВебДрайвер или сервер? Я для таких целей пишу 2 разных теста и запускаю их по очереди. Открываются 2 окна фаерфокса. Главное не забыть поставить ожиданиеПодскажите новичку как создать 2 инстанса? Или может ссылку дадите на мануал, статьи? Спасибо
#6
Отправлено 07 февраля 2012 - 13:33
#7
Отправлено 07 февраля 2012 - 13:40
т.е. если действие произойдёт с интервалом в 1 или 2 секунды - это провал?Веб драйвер. Почему по очереди? Как же будут взаимодействовать 2 юзера? Мне кажется именно параллельно надо запускать.
#8
Отправлено 07 февраля 2012 - 13:51
А если один тест будет проходить шаги быстрее чем другой?) Самый лучший вариант в вашем случае, это:Веб драйвер. Почему по очереди? Как же будут взаимодействовать 2 юзера? Мне кажется именно параллельно надо запускать.
первый юзер сделал действие
второ юзер сделал действие
первый юзер
и т.д
В сейтапе вот так:
В тесте как-то такdriver1 = new FirefoxDriver();
driver2 = new FirefoxDriver();
driver1.findElement(..).click();
driver2.findElement(..).click();
и т.д.
Иначе придётся писать кучу проверок и ожиданий выполнения действий
#9
Отправлено 07 февраля 2012 - 14:08
#10
Отправлено 07 февраля 2012 - 14:14
ДаСпасибо! А если для варианта с селениум сервером? Можно ли так сделать?
#11
Отправлено 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();
#12
Отправлено 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();
#13
Отправлено 07 февраля 2012 - 14:53
#14
Отправлено 07 февраля 2012 - 18:43
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
#15
Отправлено 08 февраля 2012 - 08:53
#16
Отправлено 08 февраля 2012 - 09:03
ну как вариант запускать два селениум сервера)После логина второго юзера, в тесте выполнются команды только для selenium2
но впринципе вроде должно работать. Доберусь до ноута посмотрю в чём дело)
#17
Отправлено 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();
}
}
#18
Отправлено 08 февраля 2012 - 10:49
#19
Отправлено 08 февраля 2012 - 10:57
А что именно в своём тесте вы пытаетесь сделать?Проблема видимо в этом: Permission denied for <http://www.facebook.com> to get property Location.href. Странно. Вроде браузер с параметром *chrome запускается
#20
Отправлено 08 февраля 2012 - 11:02
1.Я переходу по ссылке на фейсбук приложение.А что именно в своём тесте вы пытаетесь сделать?
Проблема видимо в этом: Permission denied for <http://www.facebook.com> to get property Location.href. Странно. Вроде браузер с параметром *chrome запускается
При этом фейс предлагает авторизоваться.
2. Логинюсь 2мя юзерами
3. В итоге одному юзему удаются дальнейшие действия в приложении, а второй после логина ничего не может сделать.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных