Python test framework - splinter
Trafiłem dzisiaj na framework splinter, który służy do testowania webowych aplikacji. Po przeczytaniu dokumentacji i przejrzeniu krótkiego tutoriala postanowiłem sprawdzić czy może mi się przydać. Framework poznałem u siebie lokalnie, wykonując testy na jednej z moich appek do testów, ale tutaj przedstawię to na istniejącej witrynie w sieci. Na początek garść informacji.
Poniżej znajduje się lista, które przetestuję na stronie sonyvegas:
Teraz sprawdzę czy user na pewno nie ma dostępu do kalendarza:
Ostatnim testem będzie próba zalogowania się na nieistniejące konto:
Użyłem tutaj bardzo prostych przykładów, lecz nie powinieneś mieć problemów z używaniem splintera. Framework ma naprawdę dobrą dokumentację, naprawdę mi się spodobał.
Zapomniałbym! Na koniec oczywiście zamknij przeglądarkę ;)
Możliwości
- wykonywanie skryptów javascript
- bardzo proste api
- multi webdrivers (chrome, firefox, phantomjs, zopetestbrowser, remote)
- wsparcie dla xpath i css
- działające iframe i alerty
- działający ajax oraz asynchroniczny javascript
Instalacja
pip install splinterPo jakże trudnej instalacji możesz wziąć się za testowanie web aplikacji.
Poniżej znajduje się lista, które przetestuję na stronie sonyvegas:
- skorzystanie z wyszukiwarki
- próba skorzystania z kalendarza
- próba zalogowania na nieistniejące konto
from splinter import Browser
browser = Browser('firefox')
Następnie należy podać adres pod jaki zamierzasz się udać. Jak wyżej zaznaczyłem zacznę od testowania wyszukiwarki:
browser.visit('http://sonyvegas.info/search.php')
input = browser.find_by_xpath(
'//td[@class="trow1"]/table/tbody/tr/td/input[@class="textbox"]')
input.first.fill("rendering")
button = browser.find_by_name("submit")
button.first.click()
assert browser.is_text_present("Wyniki") is True
assert len(browser.find_by_xpath('//a[@class=" subject_old"]')) == 20
Co wykonał ten test? Wszedł pod wskazany adres. Wyszukał inputa (za pomocą xpath) w którego wprowadził wyrażenie "rendering", następnie odszukał przycisk służący do zaakceptowania szukania i kliknął go. Po tej akcji sprawdził czy na stronie znalazł się tekst "Wyniki" oraz czy na stronie jest 20 linków z wynikami.Teraz sprawdzę czy user na pewno nie ma dostępu do kalendarza:
browser.visit("http://sonyvegas.info/calendar.php")
assert browser.is_text_present(
u"Kalendarz został wyłączony przez administratora.")
Jak widać test jest bardzo prosty. Udaje się pod wskazany internetowy adres :) i sprawdza czy wyświetla nam się odpowiedni komunikat na stronie.Ostatnim testem będzie próba zalogowania się na nieistniejące konto:
browser.visit("http://sonyvegas.info/member.php?action=login")
browser.fill("username", "testuser")
browser.fill("password", "userpassword")
browser.check("remember")
browser.find_by_name("submit").first.click()
assert browser.is_text_present(
u"Wprowadzono nieprawidłowy login i/lub hasło.")
Jak widzisz tutaj też nie ma zbyt dużo filozofii. Udajesz się pod adres logowania, wprowadzasz username, password oraz zaznaczasz, że chcesz być zapamiętanym i klikasz w submit, tyle. Następnie sprawdzasz, czy user się nie zalogował.Użyłem tutaj bardzo prostych przykładów, lecz nie powinieneś mieć problemów z używaniem splintera. Framework ma naprawdę dobrą dokumentację, naprawdę mi się spodobał.
Zapomniałbym! Na koniec oczywiście zamknij przeglądarkę ;)
browser.quit()
Comments
Post a Comment