testproject python sdk tutorial
Samouczek TestProject Python SDK: usprawnij istniejące testy oparte na selenie i AppiumTen samouczek pomoże Ci rozpocząć pracę z zestawem TestProject Python SDK. Naucz się instalować, konfigurować i używać najpotężniejszych funkcji pakietu SDK:
Selenium i Appium od lat należą do najpopularniejszych frameworków testowych open source dla przeglądarek komputerowych i testów mobilnych.
Plik TestProject Python SDK opiera się na tych narzędziach i zapewnia moc platformy TestProject, zapewniając piękne raporty w formacie HTML i PDF na ich platformach raportowania, automatyczne wykrywanie przeglądarki, konfigurację sterowników i wiele więcej.
A najlepsze jest to, że korzystanie z platformy TestProject i SDK jest całkowicie bezpłatne, na zawsze. SDK to również oprogramowanie typu open source, więc jeśli chcesz wnieść swój wkład w projekt, możesz!
Czego się nauczysz:
Co to jest zestaw SDK TestProject Python?
W tym samouczku dowiesz się, jak rozpocząć pracę z TestProject Python SDK, jak wykorzystać platformę TestProject z istniejącymi testami opartymi na Selenium i Appium, a także jak korzystać z niektórych z najpotężniejszych funkcji SDK.
Uwaga : Czy twoje testy są napisane w języku innym niż Python? Nie martw się, TestProject oferuje również zestawy SDK dla języka Java i C #, aw najbliższej przyszłości pojawi się więcej języków.
Instalacja i konfiguracja
=> Odwiedź tę stronę, aby bezpłatnie zarejestrować się w TestProjectPython SDK jest dostępny na PyPI , indeks pakietu Pythona. Tutaj zakładamy, że masz działającą instalację Pythona, wszystko, co musisz zrobić, to zainstalować SDK, a do tego musisz uruchom następujące polecenie:
pip install testproject-python-sdk
Spowoduje to zainstalowanie SDK i jego wymaganych zależności, w tym Selenium i klienta Python Appium.
Zanim zaczniemy korzystać z SDK, musimy zrobić jeszcze dwie rzeczy.
# 1) Zainstaluj i skonfiguruj agenta TestProject na swoim komputerze:
Agent TestProject jest odpowiedzialny za instalację i konfigurację sterownika przeglądarki, a także za wysyłanie raportów generowanych przez SDK na platformę TestProject.
Po utworzeniu konta na TestProject platformę (znowu jest to darmowe), możesz pobrać swojego agenta.
Po pobraniu musisz go zainstalować i uruchomić. Agent domyślnie działa http: // localhost: 8585. Jeśli chcesz uruchomić agenta na innym porcie lub nawet na zupełnie innym komputerze, nie stanowi to problemu. W takim przypadku wszystko, co musisz zrobić, to podać poprawny adres agenta w zmiennej środowiskowej TP_AGENT_URL aby poinformować SDK, gdzie działa.
# 2) Pobierz i skonfiguruj token programisty:
Aby komunikować się z agentem, będziesz również potrzebować tokena programisty. Po zainstalowaniu agenta możesz uzyskać token programistyczny ze strony platformy TestProject, jak pokazano na poniższym obrazku.
Określ swój token programisty w zmiennej środowiskowej TP_DEV_TOKEN aby SDK był tego świadomy. Alternatywnie możesz określić go jako argument podczas tworzenia nowej sesji sterownika, co zobaczymy za chwilę.
Po pobraniu pakietu SDK, zainstalowaniu, skonfigurowaniu i uruchomieniu agenta, uzyskaniu i skonfigurowaniu tokena programisty możesz zacząć.
Tworzymy nasz pierwszy test selenu oparty na TestProject
Załóżmy, że mamy test oparty na selenie, który prowadzi do aplikacji internetowej demonstracyjnej TestProject. Zapewnia dane logowania i sprawdza, czy jesteśmy witani, aby wskazać, że akcja logowania zakończyła się pomyślnie. Załóżmy również, że do uruchomienia tego testu i wykonania asercji używamy platformy testów jednostkowych Pytest.
Taki test może wyglądać mniej więcej tak:
from selenium import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.get('https://example.testproject.io/web/') driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() is True driver.quit()
Powyższy przykład używa Chrome jako przeglądarki. Oprócz przeglądarki Chrome SDK obsługuje również następujące przeglądarki komputerowe:
- Firefox
- Brzeg
- Internet Explorer
- Safari
W tym przykładzie nie używaliśmy żadnych wzorców abstrakcji, które są powszechne w testach opartych na selenie, takich jak obiekty strony, ale jeśli ich używasz, nie stanowi to żadnego problemu. W rzeczywistości zalecamy to, ponieważ tworzy to wyraźne oddzielenie przepływu testów (działania, dane testowe) od szczegółów implementacji Twoich stron internetowych (lokalizatory elementów).
Po zakończeniu wszystkich kroków instalacji i konfiguracji przedstawionych powyżej, wszystko, co musisz zrobić, aby przekształcić ten test w test oparty na TestProject, to zastąpić instrukcję import, jak wyjaśniono poniżej.
from selenium import webdriver
Relacja z tym:
from src.testproject.sdk.drivers import webdriver
Otóż to! Po uruchomieniu testu zestaw SDK zażąda instancji sterownika od agenta TestProject i użyje go do wykonania testu. Wyśle również instrukcje raportowania do platformy TestProject, które są następnie wykorzystywane do tworzenia raportów HTML. Rzućmy okiem na to!
Inspekcja raportów na platformie TestProject
Przechodząc do TestProject i wybierając opcje „Raporty” z menu, możesz zobaczyć, że został utworzony nowy raport dla testu, który właśnie uruchomiliśmy. Zobacz obrazek poniżej.
udowodnij to c # odpowiedzi testowe
Jak widać, zestaw SDK automatycznie wywnioskował nazwę projektu ( software_testing_help ), nazwa stanowiska ( przykłady ) i nazwę testu ( test_login_to_testproject_example_app ) i użył ich podczas tworzenia raportu. Jest to obsługiwane zarówno w przypadku Pytest, jak i Unittest, a także w przypadku testów, które nie są uruchamiane przy użyciu dedykowanej platformy do testów jednostkowych.
W następnej sekcji zobaczymy, jak określić niestandardowe nazwy projektów, zadań i testów, a także wiele innych przydatnych opcji raportowania.
Wszystkie polecenia sterownika, które zostały wykonane podczas testu, są automatycznie dodawane do raportu wraz z ich wynikiem. TestProject generuje również podglądy i dashboardy po wyjęciu z pudełka.
Opcje dostosowywania raportów za pomocą TestProject
Chociaż TestProject generuje bogate i użyteczne raporty po wyjęciu z pudełka, istnieje wiele sposobów, w jakie można je dostosować, aby jeszcze lepiej pasowały do wymagań informacyjnych.
Jak widzieliśmy w poprzednim przykładzie, TestProject jest w stanie automatycznie wywnioskować nazwy projektów, zadań i testów dla najpopularniejszych struktur testowania jednostkowego Pythona. Jeśli jednak chcesz używać niestandardowych nazw w swoich raportach, możesz to również zrobić na dwa różne sposoby.
# 1) Korzystanie z dekoratora
Zestaw TestProject SDK zawiera również plik @raport dekorator, którego możesz użyć do udekorowania swoich metod testowych i którego możesz użyć określ niestandardowe nazwy projektów, zadań i testów, jak pokazano poniżej:
from src.testproject.sdk.drivers import webdriver from src.testproject.decorator import report @report(project='Software Testing Help', job='SDK Examples', test='Login Test') def test_login_to_testproject_example_app(): driver = webdriver.Chrome() # the rest of the test method remains unchanged
Kiedy uruchamiamy tę dekorowaną metodę testową i sprawdzamy raporty, możemy zobaczyć, że określone nazwy zostały użyte w wygenerowanym raporcie, zamiast automatycznie wywnioskowanych.
# 2) Określanie nazw projektów i zadań w konstruktorze sterownika i ręczne zgłaszanie testu:
Nazwy projektów i zadań można również zastąpić, określając je w konstruktorze obiektu sterownika. Można to zrobić w następujący sposób:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome(projectname='Software Testing Help', jobname='SDK Examples') # the rest of the test method remains unchanged
Jeśli chcesz zastąpić automatycznie wywnioskowaną nazwę testu, możesz zgłosić test ręcznie na koniec testu, na przykład:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome(projectname='Software Testing Help', jobname='SDK Examples') driver.get('https://example.testproject.io/web/') driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() is True driver.report().test(name='Login Test', passed=True) driver.quit()
Jeśli wybierzesz opcję ręcznego raportowania, powinieneś wyłączyć automatyczne raportowanie testów (które jest domyślnie włączone), aby upewnić się, że testy nie są raportowane dwukrotnie, co mogłoby uszkodzić raport i dashboardy.
Możesz wyłączyć automatyczne raportowanie za pomocą następującego polecenia:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_auto_test_reports(disabled=True) # the rest of the test method remains as above
Dzięki temu raport będzie wyglądał dokładnie tak samo, jak na ostatnim powyższym zrzucie ekranu.
# 3) Wyłączanie raportowania poleceń sterownika
Jeśli nie chcesz, aby raport zawierał wszystkie polecenia sterownika, które zostały wykonane podczas testu, możesz wyłączyć ich automatyczne raportowanie w następujący sposób:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_command_reports(disabled=True) # the rest of the test method remains unchanged
Możesz również ponownie włączyć raportowanie poleceń sterownika w dalszej części testów, ponownie wywołując tę samą metodę, ale z argumentem disabled = False.
Jeśli nadal chcesz zgłosić kilka pośrednich kroków podczas testu, możesz to również zrobić:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_command_reports(disabled=True) driver.report().step(description='An intermediate step', message='A custom message', passed=True, screenshot=True) # here goes the rest of the test method
Jak widać, możesz nawet dodawać zrzuty ekranu do kroków raportu niestandardowego. Zostaną one automatycznie zintegrowane z raportem HTML na platformie TestProject.
Pakiet TestProject SDK oferuje więcej opcji umożliwiających dalsze dostosowywanie raportów. Zobacz oficjalną dokumentację w witrynie TestProject, GitHub lub PyPI, aby uzyskać pełny przegląd.
Uruchamianie testów opartych na Appium przy użyciu TestProject
Oprócz testów opartych na selenie, TestProject SDK może również uruchamiać testy na urządzeniach mobilnych za pomocą Appium. Rozważmy ten przykład, działając na natywnej aplikacji systemu Android na emulatorze:
from appium import webdriver def test_native_android_app(): desired_capabilities = { 'appActivity': 'io.testproject.demo.MainActivity', 'appPackage': 'io.testproject.demo', 'udid': '', 'browserName': '', 'platformName': 'Android', } driver = webdriver.Remote(desired_capabilities=desired_capabilities) driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() driver.quit()
Aby skorzystać z możliwości platformy TestProject, ponownie musimy tylko zmienić
from appium import webdriver
Do:
from src.testproject.sdk.drivers import webdriver
I jesteśmy gotowi. Agent TestProject działa również jako serwer Appium, więc nie ma już potrzeby uruchamiania tego samodzielnie na maszynie, na której są przeprowadzane testy.
Wszystkie funkcje raportowania opisane powyżej są również dostępne dla testów opartych na Appium.
SDK obsługuje uruchamianie testów mobilnych:
- Dla Androida oraz iOS.
- Na emulatorach, a także na prawdziwych urządzeniach.
- W aplikacjach natywnych, a także w przeglądarkach mobilnych
Przykłady wszystkich z nich można znaleźć w repozytorium kodu SDK na GitHub.
Wniosek
Jak widzieliście w tym samouczku, zestaw TestProject Python SDK może pomóc w usprawnieniu istniejących testów opartych na Selenium i Appium, eliminując obowiązki związane z konfiguracją sterowników przeglądarki i serwera Appium, a także generuje świetne raporty HTML i pulpit nawigacyjny na platformę TestProject.
Co najlepsze, zestaw TestProject Python SDK jest całkowicie bezpłatny.
=> Udaj się do TestProject, aby wypróbować to samodzielnie !
O autorze: Bas Dijkstra
Autor uczy firmy na całym świecie, jak usprawnić działania testowe poprzez automatyzację testów. Jest niezależnym trenerem, konsultantem i deweloperem mieszkającym w Holandii. W wolnych chwilach lubi jeździć na rowerze, pobiegać lub poczytać dobrą książkę.
rekomendowane lektury
- TestProject Narzędzie do automatyzacji testów Praktyczny samouczek
- Wprowadzenie do języka Python i proces instalacji
- Twórz testy Appium dla aplikacji na Androida
- Samouczek Pythona dla początkujących (praktyczne BEZPŁATNE szkolenie Python)
- Równoległe uruchamianie testów Appium przy użyciu Appium Studio for Eclipse
- Tworzenie testów epok za pomocą epochs Studio for Eclipse
- Jak równolegle przeprowadzać testy Appium na dużą skalę
- Zintegruj się ze swoim IDE, aby uruchomić testy Appium