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

Фотография

Один браузер - много тест-кейсов (тест-сьют), Selenium RC + Python


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

#1 mosketrem

mosketrem

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

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


Отправлено 02 марта 2011 - 10:09

Был на конференции SeleniumCamp. На своем докладе А.Баранцев рассказывал о способах оптимизации тестов. Один такой способ: запускать браузер наименьшее количество раз, т.е. один раз запустили и проганяете максимальное количество тестов в нем. Но так как я зашел в зал как раз, когда он заканчивал об этом рассказывать, а также потому, что я пишу на питоне, а не на java, я не понял как мне организовать такое поведение в моих тестах.
Может предложите конкретное решение для Selenium RC + python ? Я почему-то не могу сообразить. Разве что использовать следующую структуру:
from selenium import selenium
import unittest, time, re

class Untitled(unittest.TestCase):
    def setUp(self):
        self.verificationErrors = []
        self.selenium = selenium("localhost", 4444, "*chrome", "http://change-this-to-the-site-you-are-testing/")
        self.selenium.start()
    
    def test_untitled1(self):
        sel = self.selenium
    
    def test_untitled2(self):
        sel = self.selenium

    def test_untitled3(self):
        sel = self.selenium

    def tearDown(self):
        self.selenium.stop()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()

  • 0

#2 SMakc

SMakc

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

  • Members
  • Pip
  • 56 сообщений
  • ФИО:Максим
  • Город:Москва

Отправлено 02 марта 2011 - 10:45

Не знаю чем руководствовался Баранцев, но мы для атомарности для каждого нового теста запускаем новую сессию, что конечно сказывается на производительности, но позволяет избежать ошибок тестов из за "грязной" сессии.
  • 0

#3 OVA

OVA

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

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 02 марта 2011 - 11:55

Ну это зависит. Убивать сессию/чистить кеш/блаблабла по пять раз для проверки пары чекбоксов совсем не эффективно по времени.
  • 0

#4 bobax

bobax

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

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Vladimir


Отправлено 02 марта 2011 - 12:02

мы сами пришли к этому, о чем говорил Баранцев. т.к. наша среда ИЕ8, то куки-кеш-сессии убиваются нагорячую через микрософт девелопер тул встроенный
  • 0

#5 mosketrem

mosketrem

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

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


Отправлено 02 марта 2011 - 13:09

Не знаю чем руководствовался Баранцев, но мы для атомарности для каждого нового теста запускаем новую сессию, что конечно сказывается на производительности, но позволяет избежать ошибок тестов из за "грязной" сессии.

Вы совершенно правы на счет ошибок из-за "грязной" сессии. Но Баранцев объяснил свое предложение соответствием поведения тестов работе обычных пользователей. Ведь обычный пользователь не закрывает браузер после каждого простого действия. А если из-за таких сессий валятся тесты, значит мы нашли баг и его нужно репортить и исправлять. Я думаю, что в этом есть смысл.

Как бы то ни было, думаю не стоит превращать тему в спор на счет полезности такого поведения. Мне бы хотелось просто узнать как это правильно сделать.
  • 0

#6 bobax

bobax

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

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Vladimir


Отправлено 02 марта 2011 - 13:20

судя по рассуждениям и так и так правильно) на усмотрение тест менеджера)
  • 0

#7 barancev

barancev

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

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


Отправлено 02 марта 2011 - 14:27

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

#8 barancev

barancev

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

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


Отправлено 02 марта 2011 - 14:33

Либо можно использовать не стандартный фреймворк unittest, а более навороченный py.test, вот соответствующий фрагмент его документации: http://pytest.org/xunit_setup.html
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#9 polus

polus

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

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Поляруш Михаил Анатольевич
  • Город:Kiev


Отправлено 03 марта 2011 - 08:43

http://docs.python.o...module-fixtures


Единственное замечание, чтобы использовать setUpClass и tearDownClass, необходимо использовать питон версии версии 3 или уже ставить его руками для версии не ниже 2.7
  • 0

Практикующий консультант по автоматизации тестирования ПО и тренер

Портал по автоматизации тестирования ПО http://automated-testing.info

Онлайн обучение автоматизации тестирования http://lessons2.ru

Персональные консультации и менторинг SDConsulting

Личный сайт http://poliarush.com


#10 barancev

barancev

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

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


Отправлено 03 марта 2011 - 09:23


http://docs.python.o...module-fixtures

Единственное замечание, чтобы использовать setUpClass и tearDownClass, необходимо использовать питон версии версии 3 или уже ставить его руками для версии не ниже 2.7

Даже не версии 3, а версии 3.2 (там в документации по ссылке про это написано).
Так что я бы всё таки рекомендовал использовать py.test, если версия ниже 3.2, ставить новые модули на старый дистрибутив рискованно.

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


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

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