testproject python sdk tutorial
Підручник з TestProject Python SDK: Доповніть свої існуючі тести на основі селену та аппіюЦей посібник допоможе вам розпочати роботу з TestProject Python SDK. Навчіться встановлювати, налаштовувати та використовувати найпотужніші функції SDK:
Роки селен та аппіум є одними з найпопулярніших платформ тестування з відкритим кодом для настільних браузерів та мобільних тестів.
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 на вашому комп'ютері:
Агент TestProject відповідає за встановлення та налаштування драйверів браузера, а також за надсилання звітів, згенерованих SDK, на платформу 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 і вибравши в меню опції «Звіти», ви побачите, що для тесту, який ми щойно провели, створено новий звіт. Зверніться до зображення нижче.
що таке команда grep в unix

Як бачите, 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.

Пакет SDK TestProject пропонує більше можливостей для подальшої настройки звітування. Дивіться офіційну документацію на веб-сайті 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 може допомогти вам перезавантажити ваші існуючі тести на основі селену та аппіуму, забравши клопіт налаштування драйверів вашого браузера та сервера Appium, а також створює чудові звіти HTML та панель інструментів платформа TestProject.
Найкраще, TestProject Python SDK є абсолютно безкоштовним.
=> Перейдіть до TestProject, щоб випробувати це на собі !
Про автора: Бас Дейкстра
Автор навчає компанії по всьому світу, як покращити свої зусилля з тестування за допомогою автоматизації тестування. Він є незалежним тренером, консультантом і розробником, який проживає в Нідерландах. У вільний час він любить кататися на велосипеді, бігати або читати гарну книгу.
Рекомендована література
- Підручник з практичного огляду TestProject Test Automation Tool
- Процес введення та встановлення Python
- Створіть тести Appium для програми для Android
- Підручник з Python для початківців (практичне БЕЗКОШТОВНЕ навчання з Python)
- Запуск тестів на Appium паралельно за допомогою Appium Studio для Eclipse
- Створення тестів епох за допомогою epochs Studio для Eclipse
- Як запустити паралельно широкомасштабне виконання тестів на аппіумі
- Інтегруйте у свою IDE для запуску тестів на Appium