Автоматизація тестування з допомогою Selenium Марина Мельниченко Junior QC Engineer SoftServe
Автоматизація тестування з допомогою SeleniumМарина МельниченкоJunior QC Engineer SoftServe
Про що поговоримо
Selenium Компоненти Selenium Робота з Selenium IDE
Selenium – безкоштовний (open source) набір утиліт для автоматизації тестування веб-аплікацій в різних браузерах і на різних платформах.
Був створений Джейсоном Хаггісом в 2004 році, в 2008 з`явився Selenium2.Знайомств
о з Selenium
Компоненти Selenium
Selenium Suite
Selenium IDE
Selenium RC
Selenium WebDriver
Selenium Grid
Selenium2
Selenium Integrated Development Environment
Переваги
1. Дуже легко встановлювати і видаляти
2. Не потребує досвіду в програмуванні
3. Може експортувати тести в формати, які використовуються Selenium RC і WebDriver
4. Має вбудований модуль виводу тестових результатів
5. Надає підтримку розширень
Недоліки
1. Доступний тільки в Firefox
2. Розроблений для створення простих кейсів
3. Не підтримує ітерації і умовні операції
4. Виконання тестів повільне в порівнянні з Selenium RC та WebDriver
Selenium Remote Control
Переваги
1. Кросс-браузерний і кросс-платформенний
2. Підтримує цикли і умовні операції
3. Підтримує data-driven тестування
4. Має АРІ5. Швидший, ніж IDE
Недоліки
1. Інсталяція складніша, ніж в IDE
2. Потребує знань програмування
3. Вимагає запущеного RC Server
4. Повільніший, ніж WebDriver
Selenium WebDriver
Переваги
1. Легше інсталювати, ніж Selenium RC
2. Звертається напряму до браузера
3. Не потребує інших компонентів, таких як RC Server
4. Швидший, ніж IDE та RC
Недоліки
1. Інсталяція складніша, ніж в IDE
2. Потребує знань програмування
3. Не має вбудованого механізму генерування результатів тестів
Selenium Grid
Особливості
1. Дозволяє одночасно запускати тести в різних браузерах та середовищах
2. Значно економить час
Selenium IDE
Selenium IDE
Типи команд в Selenium IDE
Actions:- open- type- click
Accessors:- storeTitl
eAssertions:- assert- verify- waitFor
Локатори
IDNameCSS Selector
Tag and ID Tag and class Tag and attribute Tag, class and attribute Inner text
XPathLink TextDOM
Locating by ID
Locating by Name
Locating by CSS Selector
Tag and ID
Tag and Class
Tag and Attribute
Inner Text
Locating by XPath
Locating by Link Text
Tips and tricks
Інтеграція в WebDriver
# -*- coding: utf-8 -*-from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support.ui import Selectfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.common.exceptions import NoAlertPresentExceptionimport unittest, time, reclass 12(unittest.TestCase):
def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "https://www.google.com.ua/" self.verificationErrors = [] self.accept_next_alert = True def test_12(self): driver = self.driver driver.get(self.base_url + "/?gfe_rd=cr&ei=6Ee- VvLED8GWwAP475fACg&gws_rd=ssl") # ERROR: Caught exception [unknown command []] driver.find_element_by_link_text("Selenium - Web
Browser Automation").click() driver.find_element_by_link_text("Projects").click() def is_element_present(self, how, what): try: self.driver.find_element(by=how, value=what) except NoSuchElementException as e: return False return True def is_alert_present(self): try: self.driver.switch_to_alert() except NoAlertPresentException as e: return False return True def close_alert_and_get_its_text(self): try: alert = self.driver.switch_to_alert() alert_text = alert.text if self.accept_next_alert: alert.accept() else: alert.dismiss() return alert_text finally: self.accept_next_alert = True def tearDown(self): self.driver.quit() self.assertEqual([], self.verificationErrors)
If __name__ == "__main__": unittest.main()
Questions
Дякую за увагу