$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Как мы заставили роботов тестировать
Search
Paul Stashevsky
October 05, 2013
Programming
0
99
Как мы заставили роботов тестировать
Про автоматизацию тестирования веб-приложений
Paul Stashevsky
October 05, 2013
Tweet
Share
More Decks by Paul Stashevsky
See All by Paul Stashevsky
Инструменты для тестирования веб-приложений
shiron
0
120
Управляя автоматизацией тестирования
shiron
0
210
Эпидемиология.pdf
shiron
0
76
Почем автотесты?
shiron
0
240
Как управлять автоматизацией тестирования?
shiron
1
210
Автоматизация тестирования как сервис
shiron
0
210
Other Decks in Programming
See All in Programming
SwiftUIで本格音ゲー実装してみた
hypebeans
0
480
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
950
ゆくKotlin くるRust
exoego
1
140
Cell-Based Architecture
larchanjo
0
140
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
180
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
520
Cap'n Webについて
yusukebe
0
150
Python札幌 LT資料
t3tra
6
1k
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
3
850
TestingOsaka6_Ozono
o3
0
170
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
570
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1k
For a Future-Friendly Web
brad_frost
180
10k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.2k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
120
Marketing to machines
jonoalderson
1
4.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
68
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
310
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
33
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
110
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Prompt Engineering for Job Search
mfonobong
0
120
Transcript
Как мы заставили роботов тестировать Сташевский Павел, 2ГИС
None
None
Привет:) По образованию: программист По призванию: тестировщик По работе: руководитель
группы автоматизации тестирования ПО
[email protected]
@paulstashevsky
None
None
None
русский english italiano
36 конфигураций
None
Нужен робот!
Что должен уметь робот? 1. Управлять браузером
Что должен уметь робот? 1. Управлять браузером 2. Уметь проверять
Что должен уметь робот? 1. Управлять браузером 2. Уметь проверять
3. Уметь запускаться
1. Управляем браузером
Selenium webdriver
Как установить? 1. Устанавливаем java, если еще не стоит. 2.
Скачиваем selenium webdriver http://selenium.googlecode.com/files/selenium- server-standalone-2.35.0.jar 3. Запускаем java -jar selenium-server.jar
Что под капотом? Python, Ruby, Java, C#, JavaScript, PHP, ...
Selenium webdriver Your awesome App API HTTP HTTP
from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.support.ui
import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Firefox() driver.get("http://www.google.com") inputElement = driver.find_element_by_name("q") inputElement.send_keys("cheese!") inputElement.submit() print driver.title try: WebDriverWait(driver, 10).until(EC.title_contains("cheese!")) print driver.title finally: driver.quit()
Демо!
from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.support.ui
import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Firefox() driver.get("http://2gis.ru") inputElement = driver.find_element_by_id("search-what") inputElement.send_keys("IKEA") inputElement.submit() print driver.title driver.quit()
Демо!
2. Делаем проверки
None
Тест-кейс 1. Предусловия 2. Шаги 3. Ожидаемый результат
unittest
import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys
class PythonOrgSearch(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() def test_search_in_python_org(self): driver = self.driver driver.get("http://www.python.org") self.assertIn("Python", driver.title) elem = driver.find_element_by_name("q") elem.send_keys("selenium") elem.send_keys(Keys.RETURN) self.assertIn("Google", driver.title) def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()
Для чего нужен unittest? 1. Сделать тест-кейс (TestCase) 2. Cделать
предусловия и постусловия (setUp, tearDown) 3. Добавить в тест проверки (assert)
None
3. Управляем запуском
Как запустить тесты?
Как запустить тесты? 1. IDE
Как запустить тесты? 1. IDE 2. Консоль
Как запустить тесты? 1. IDE 2. Консоль 3. Continuous integration
Jenkins
None
Как в 2ГИС?
Jenkins maps. 2gis.ru tests (python) selenium
Полезное почитать 1. http://selenium2.ru/ 2. http://seleniumhq.org/ 3. Kent Beck «Test
Driven Development: By Example»
[email protected]
@paulstashevsky https://speakerdeck.com/shiron/kak-my- zastavili-robotov-tiestirovat Сташевский Павел