testproject python sdk tutorial
Инструкция за TestProject Python SDK: Презаредете вашите съществуващи тестове, базирани на селен и апиумТози урок ще ви помогне да започнете с TestProject Python SDK. Научете се да инсталирате, конфигурирате и използвате най-мощните функции на SDK:
Селенът и Appium са едни от най-популярните рамки за тестване с отворен код за настолни браузъри и мобилни тестове от години.
The TestProject Python SDK надгражда върху тези инструменти и те ви предоставят силата на платформата TestProject, като ви предоставят красиви HTML и PDF отчети на техните платформи за отчитане, автоматично откриване на браузъра, конфигурация на драйвери и много други.
И най-хубавото е, че използването на платформата TestProject и SDK е напълно безплатно, завинаги. SDK също е с отворен код, така че ако искате да допринесете за проекта, можете!
Какво ще научите:
Какво е TestProject Python SDK?
В този урок ще видите как да започнете с TestProject Python SDK, как да използвате платформата TestProject с вашите съществуващи тестове, базирани на Selenium и Appium, както и как да използвате някои от най-мощните функции на SDK.
Забележка : Тестовете ви написани ли са на език, различен от Python? Няма нужда да се притеснявате, TestProject предлага и SDK за Java и C #, като в близко бъдеще предстоят още езици.
Инсталиране и конфигуриране
=> Посетете тази страница за безплатна регистрация за TestProjectPython SDK е достъпен на PyPI , индексът на пакета на Python. Тук предполагаме, че имате работеща инсталация на Python, всичко, което трябва да направите, е да инсталирате SDK и за това трябва да изпълнете следната команда:
pip install testproject-python-sdk
Това ще инсталира SDK и необходимите му зависимости, включително Selenium и клиента на Python Appium.
Преди да започнем да използваме SDK, трябва да направим още две неща.
# 1) Инсталирайте и конфигурирайте TestProject Agent на вашата машина:
Агентът TestProject отговаря за инсталирането и конфигурирането на драйвери на браузъра, както и за изпращането на отчети, генерирани от SDK, до платформата TestProject.
След като създадете акаунт в TestProject платформа (отново това е безплатно), можете да изтеглите вашия агент.
След изтеглянето ще трябва да го инсталирате и стартирате. По подразбиране Агентът работи http: // localhost: 8585. Ако искате да стартирате агента на различен порт или дори на съвсем различна машина, това не е проблем. В този случай всичко, което трябва да направите, е да посочите правилния адрес на агент в променлива на среда TP_AGENT_URL за да уведомите SDK къде работи.
# 2) Вземете и конфигурирайте маркер за разработчици:
За да комуникирате с Агента, ще ви е необходим и маркер за разработчици. След като инсталирате агента, можете да вземете своя токен за разработка от сайта на платформата TestProject, както е показано на изображението по-долу.
Посочете своя маркер за разработчици в променлива на среда TP_DEV_TOKEN за да го информира SDK. Като алтернатива можете да го посочите като аргумент, когато създавате нова сесия на драйвер, тъй като ще видим това след малко.
След като изтеглите SDK, инсталирате, конфигурирате и стартирате агента, получите и конфигурирате вашия токен за разработчици, сте готови за работа.
Създаване на първия ни тест Проектиран тест за селен
Да предположим, че имаме базиран на селен тест, който се придвижва до демонстрационното уеб приложение TestProject. Той предоставя идентификационни данни за вход и проверява, че сме посрещнати, за да покажем, че действието за влизане е завършило успешно. Нека приемем също, че използваме рамката за модулно тестване на Pytest, за да стартираме този тест и да изпълним твърденията.
Такъв тест може да изглежда по следния начин:
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()
Примерът по-горе използва Chrome като браузър. В допълнение към Chrome, SDK поддържа и следните браузъри за настолни компютри:
- Firefox
- Ръб, край
- Internet Explorer
- Сафари
За този пример не сме използвали нито един от моделите на абстракция, които са често срещани в тестовете, базирани на селен, като Page Objects, но ако все пак ги използвате, това изобщо не представлява проблем. Всъщност ние го препоръчваме, тъй като това създава ясно разделение между вашия тестов поток (действия, тестови данни) и подробностите за изпълнението на вашите уеб страници (локатори на елементи).
След приключване на всички стъпки за инсталиране и конфигуриране, показани по-горе, всичко, което трябва да направите, за да превърнете този тест в тест, задвижван от TestProject, е да замените изявлението за импортиране, както е обяснено по-долу.
from selenium import webdriver
Успокойте се с това:
from src.testproject.sdk.drivers import webdriver
Това е! След като стартирате теста сега, SDK ще поиска екземпляр на драйвер от агента TestProject и ще го използва за изпълнение на теста. Той също така ще изпрати инструкции за отчитане до платформата TestProject, които след това се използват за създаване на HTML отчети. Нека ги разгледаме!
Проверка на отчетите на платформата TestProject
Отидете до TestProject и изберете опциите ‘Reports’ от менюто, можете да видите, че е създаден нов отчет за теста, който току що стартирахме. Вижте изображението по-долу.
https www google comyoutube в mp3
Както можете да видите, SDK автоматично изведе име на проект ( софтуерно_тестване_помощ ), име на работа ( примери ) и име на тест ( test_login_to_testproject_example_app ) и ги използва при създаването на отчета. Това се поддържа както за Pytest, така и за Unittest, както и за тестове, които не се изпълняват с помощта на специална модулна рамка за тестване.
Ще видим как да посочим персонализираните имена на проекти, задачи и тестове, както и редица други полезни опции за отчитане в следващия раздел.
Всички команди на драйвера, изпълнени по време на теста, се добавят автоматично към отчета, заедно с резултата от тях. TestProject също така генерира прегледи и табла за управление извън кутията.
Опции за персонализиране на отчитане с TestProject
Докато TestProject генерира богати и използваеми отчети от кутията, има редица начини, по които можете да ги персонализирате, за да отговарят на вашите изисквания за информация още по-добре.
Както видяхме в предишния пример, TestProject може автоматично да извежда имена на проекти, задачи и тестове за най-популярните рамки за тестване на модули на Python. Ако обаче искате да използвате персонализирани имена във вашите отчети, това може да се направи и по два различни начина.
# 1) Използване на декоратор
TestProject SDK също разполага с a @ доклад декоратор, който можете да използвате за декориране на вашите методи за изпитване и който можете да използвате посочете персонализираните имена на проекти, задачи и тестове, както е показано по-долу:
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
Когато стартираме този декориран метод за тестване и инспектираме отчетите, можем да видим, че посочените имена са били използвани в генерирания отчет, вместо автоматично изведените.
# 2) Посочване на имена на проекти и задачи в конструктора на драйвери и ръчно отчитане на тест:
Имената на проекти и задачи също могат да бъдат заменени, като се посочат в конструктора на обекта на драйвера. Това може да стане по следния начин:
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
Ако искате да замените автоматично изведеното име на теста, можете да отчетете тест ръчно в края на теста, по следния начин:
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()
Ако изберете да използвате опцията за ръчно отчитане, трябва да деактивирате автоматичното отчитане на тестове (което е активирано по подразбиране), за да сте сигурни, че тестовете не се отчитат два пъти, което би повредило вашия отчет и табла за управление.
Можете да деактивирате автоматичното отчитане, като използвате следната команда:
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
Това ще направи отчета да изглежда точно по същия начин като последната екранна снимка по-горе.
# 3) Деактивиране на отчитането на команди на драйвера
Ако не искате отчетът ви да съдържа всяка отделна команда на драйвер, изпълнена по време на теста, можете да деактивирате автоматичното отчитане на тях по следния начин:
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
Можете също така да активирате отново отчитането на команди на драйвери по-късно в тестовете си, като извикате отново същия метод, но с деактивиран аргумент = False
Ако все пак искате да докладвате за някои междинни стъпки по време на теста, можете да направите и това:
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
Както можете да видите, можете дори да добавяте екранни снимки към вашите персонализирани стъпки на отчета. Те ще бъдат интегрирани автоматично в отчета HTML на платформата TestProject.
TestProject SDK предлага повече опции за допълнително персонализиране на отчитането. Вижте официалната документация на уебсайта TestProject, GitHub или PyPI за пълен преглед.
Изпълнение на тестове на базата на Appium с помощта на TestProject
До базираните на селен тестове, TestProject SDK може да изпълнява тестове и на мобилни устройства, използващи Appium. Помислете за този пример, работещ срещу собствено приложение за Android на емулатор:
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()
За да използваме силата на платформата TestProject тук, отново, трябва само да се променим
from appium import webdriver
Да се:
from src.testproject.sdk.drivers import webdriver
И ние сме добре да тръгваме. Агентът TestProject действа и като сървър на Appium, така че вече няма нужда да го стартирате сами на машината, която изпълнява вашите тестове.
Всички описани по-горе функции за отчитане са достъпни и за тестове, базирани на Appium.
SDK поддържа стартиране на мобилни тестове:
- За Android, както и iOS.
- На емулатори, както и на реални устройства.
- В родните приложения, както и в мобилните браузъри
Примери за всичко това могат да бъдат намерени в хранилището на SDK код на GitHub.
Заключение
Както видяхте в този урок, TestProject Python SDK може да ви помогне да презаредите съществуващите тестове, базирани на Selenium и Appium, като отнема задълженията за конфигуриране на драйверите на вашия браузър и сървъра Appium и генерира страхотни HTML отчети и табло за управление платформата TestProject.
Най-доброто от всичко, TestProject Python SDK е абсолютно безплатен.
=> Насочете се към TestProject, за да го изпробвате сами !
За автора: Бас Дейкстра
Авторът учи компании по целия свят как да подобрят своите усилия за тестване чрез автоматизация на тестовете. Той е независим треньор, консултант и разработчик, живеещ в Холандия. В свободното си време обича да си кара колелото, да тича или да чете добра книга.
Препоръчително четене
- Урок за практически преглед на инструмента за автоматизация на тест TestProject
- Процес на въвеждане и инсталиране на Python
- Създайте Appium Tests за приложение за Android
- Урок за Python за начинаещи (практически БЕЗПЛАТНО обучение за Python)
- Изпълнение на вашите тестове за Appium в паралел с помощта на Appium Studio за Eclipse
- Създаване на тестове за епохи с помощта на epochs Studio за Eclipse
- Как да стартирате паралелно мащабно изпълнение на тестове на Appium
- Интегрирайте се във вашата IDE, за да стартирате вашите тестове за Appium