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

Фотография

Разрыв соединения с сервером


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

#1 TorchTT

TorchTT

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

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

Отправлено 20 февраля 2014 - 10:44

На сайте имеется форма и кнопка. При нажатии на кнопку на сервер отправляется запрос. Запрос посылается примерно каждые 2 секунды. Из-за частых запросов сервер периодически меня блокирует.

 

Мне необходимо, чтобы через каждое определенное количество запросов соединение с сервером разрывалось. 

 

Подскажите, пожалуйста, можно ли это сделать средствами Selenium? Если да, то каким образом?


  • 0

#2 Petrov.Sergey

Petrov.Sergey

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

  • Members
  • PipPipPipPip
  • 446 сообщений
  • ФИО:Petrov Sergey
  • Город:МО, Лобня


Отправлено 20 февраля 2014 - 10:50

Не понятен вопрос.

 

А) Кто запрос посылает?

 

Б) В каком формате? Вариантов 2:

Б.1) открылось соединение - запрос - запрос - запрос - запрос - ...

Б.2) открылось соединение - запрос - закрылось соединение - открылось соединение - запрос - закрылось соединение - открылось соединиение - запрос - ...


  • 0
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).

#3 TorchTT

TorchTT

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

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

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

А) Я, используя Selenium, открываю сайт. Заполняя форму авторизации и нажимаю кнопку "Войти". После этого запрос отправляется на сервер.

 

Б) Вероятнее всего открывается соединение и далее пошли запросы без прерывания, поскольку ввод данных в поле и нажатие на кнопку находятся в обычном цикле и никаких прерывающих команд, отсящихся к Selenium, нет


  • 0

#4 barancev

barancev

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

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


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

Попросите администраторов отключить ограничение на сервере.

 

Если это "чужой" сервер -- не нарушаете ли Вы условия его использования?


  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#5 TorchTT

TorchTT

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

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

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

barancev

Не нарушаю)

 

Попросить отключить ограничение нет возможности.


  • 0

#6 Petrov.Sergey

Petrov.Sergey

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

  • Members
  • PipPipPipPip
  • 446 сообщений
  • ФИО:Petrov Sergey
  • Город:МО, Лобня


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

А) Я, используя Selenium, открываю сайт. Заполняя форму авторизации и нажимаю кнопку "Войти". После этого запрос отправляется на сервер.

 

Б) Вероятнее всего открывается соединение и далее пошли запросы без прерывания, поскольку ввод данных в поле и нажатие на кнопку находятся в обычном цикле и никаких прерывающих команд, отсящихся к Selenium, нет

 

Скорее всего, стоит антибот-контроль (раз после частых запросов сайт Вас блокирует).

Либо стоит ограничение на количество попыток входа. Вы ведь, насколько я понял, либо много раз пытаетесь войти с неверной парой логин-пароль (и на N-ной итерации Вас режут), либо Вы выполняете корректный вход и сразу выход, а дальше по циклу.

 

Рискну предположить, что Вы пытаетесь подобрать пароль (заполняете форму авторизации и жмёте "Войти" в цикле).

Если так, то на своём тестовом сервере сообщите админам.

А если на стороннем, то ай-яй-яй! :acute:


  • 0
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).

#7 barancev

barancev

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

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


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

Зачем для решения этой задачи вообще Selenium? Возьмите более простой HTTP-клиент, и будете иметь больший контроль над соединением.

 

Если всё таки очень нужно Selenium -- соединение поддерживает браузер, поэтому просто периодически перезапускайте его.


  • 1
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#8 TorchTT

TorchTT

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

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

Отправлено 20 февраля 2014 - 12:14

barancev

Не помогает. У меня предполагается 100000 запросов. Сначала сервер позволил сделать примерно 2000 запросов, затем 400, теперь каждые 200 запросов рвется соединение.


  • 0

#9 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 20 февраля 2014 - 12:19

Уважаемый, вам с такими цифрами прямая дорога к JMeter или соапюай.


  • 0

#10 barancev

barancev

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

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


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

C такими цифрами вообще через пользовательский интерфейс не надо делать -- для таких задач целевой сайт должен предоставлять API.


  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#11 leipreachan

leipreachan

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

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

Отправлено 20 февраля 2014 - 13:15

barancev

Не помогает. У меня предполагается 100000 запросов. Сначала сервер позволил сделать примерно 2000 запросов, затем 400, теперь каждые 200 запросов рвется соединение.

 

bash-скрипт + curl, вот ваше решение. Не нужен вам Селениум, скорее всего


  • 0

#12 TorchTT

TorchTT

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

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

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

Могу ошибаться, но вроде проблема решена. На данный момент уже проверено 900 комбинаций.

 

Моя задача - пройти авторизацию на тестовом сервере. При разрыве соединения появлялась ошибка с соотвествующим текстом. Помимо этого, если бы была сгенерирована комбинация, открывающая доступ к сайту, то DOM бы изменился и пропала возможность обратиться по XPath к кнопке из предыдущего окна. В итоге, при корректной комбинации логин\пароль - создается ошибка невозможности обращения к элементу по указанному пути.

 

Таким образом, у нас две ошибки, одна из которых говорит об успешном поиске пары логин\пароль, а другая о разрыве соединения. Стоит заметить, что после можно снова подключиться к серверу после перезагрузки браузера.

 

Для решения этой проблемы написал код, который при разрыве соединения со стороны сервера перезапускается браузер и перебор продолжается, а при нахождении корректной комбинации логин\пароль, выражающейся сменой адреса в адресной строке, - программа завершается:

 

try:
    driver.find_element_by_xpath("//div[@class='nameId']/div[@sbisname='simpleDialogOk']/div").click();
except Exception:
    if (driver.current_url != "<адрес сайта>"):
        print ("Password found: " + str(j));
        driver.quit();
    else:
        driver.quit();
        driver = webdriver.Firefox()
        driver.get("адрес сайта")

#В качестве предосторожности разрываю соединение каждые 300 комбинаций
#j - рассматриваемая комбинация пароля
if j%300 == 0 & j!=0: 
    driver.quit();
    driver = webdriver.Firefox()
    driver.get("<адрес сайта>")

  • 0


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

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