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"]')) == 20Co 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