testproject python sdk tutorial
Tutorial TestProject Python SDK: supraîncărcați testele existente pe bază de seleniu și appiumAcest tutorial vă va ajuta să începeți cu TestProject Python SDK. Aflați cum să instalați, să configurați și să utilizați cele mai puternice caracteristici ale kitului SDK:
Seleniul și Appium au fost printre cele mai populare cadre de testare open-source pentru browserele desktop și testarea bazată pe dispozitive mobile de ani de zile.
TestProject Python SDK se bazează pe aceste instrumente și vă oferă puterea platformei TestProject, oferindu-vă rapoarte HTML și PDF frumoase pe platformele lor de raportare, detectarea automată a browserului, configurația driverului și multe altele.
Și cel mai bun lucru este că utilizarea platformei TestProject și a SDK-ului este complet gratuită, pentru totdeauna. SDK-ul este și open-source, așa că, dacă doriți să contribuiți la proiect, puteți!
Ce veți învăța:
Ce este TestProject Python SDK?
În acest tutorial, veți vedea cum să începeți cu SDP TestProject Python, cum să utilizați platforma TestProject cu testele existente bazate pe Selenium și Appium, precum și cum să utilizați unele dintre cele mai puternice caracteristici ale SDK.
Notă : Testele dvs. sunt scrise într-o altă limbă decât Python? Nu este nevoie să vă faceți griji, TestProject oferă SDK-uri pentru Java și C #, de asemenea, cu mai multe limbi în viitorul apropiat.
Instalare și configurare
=> Accesați această pagină pentru a vă înregistra gratuit TestProjectPython SDK este disponibil pe PyPI , indexul pachetului Python. Aici, presupunem că aveți o instalare Python funcțională, tot ce trebuie să faceți este să instalați SDK-ul și pentru aceasta, trebuie să rulați următoarea comandă:
pip install testproject-python-sdk
Aceasta va instala SDK-ul și dependențele sale necesare, inclusiv Selenium și clientul Python Appium.
Înainte de a putea începe să folosim SDK-ul, trebuie să mai facem două lucruri.
# 1) Instalați și configurați Agentul TestProject pe computer:
Agentul TestProject este responsabil pentru instalarea și configurarea driverului browserului, precum și pentru trimiterea rapoartelor generate de SDK către platforma TestProject.
După ce ați creat un cont pe TestProject platformă (din nou, aceasta este gratuită), vă puteți descărca agentul.
După descărcare, va trebui să îl instalați și să îl porniți. În mod implicit, Agentul rulează http: // localhost: 8585. Dacă doriți să rulați Agentul pe un alt port, sau chiar pe o mașină complet diferită, nu este nicio problemă. În acest caz, tot ce trebuie să faceți este să specificați adresa agentului corect într-o variabilă de mediu TP_AGENT_URL pentru a anunța SDK-ul unde rulează.
# 2) Obțineți și configurați un simbol de dezvoltator:
Pentru a comunica cu agentul, veți avea nevoie și de un jeton de dezvoltator. După instalarea Agentului, puteți obține jetonul de dezvoltare de pe site-ul platformei TestProject așa cum se arată în imaginea de mai jos.
Specificați jetonul de dezvoltator într-o variabilă de mediu TP_DEV_TOKEN pentru a face conștient SDK-ul. Alternativ, îl puteți specifica ca argument atunci când creați o nouă sesiune de driver, deoarece vom vedea acest lucru într-un pic.
După ce ați descărcat SDK-ul, ați instalat, configurat și ați pornit Agentul, ați obținut și configurat jetonul de dezvoltator, sunteți gata de plecare.
Crearea primului nostru test Test de seleniu alimentat de proiect
Să presupunem că avem un test bazat pe seleniu care navighează către aplicația web demonstrativă TestProject. Oferă acreditări de conectare și verifică faptul că suntem întâmpinați pentru a indica faptul că acțiunea de conectare a fost finalizată cu succes. Să presupunem, de asemenea, că folosim cadrul de testare unitate Pytest pentru a rula acest test și a executa afirmațiile.
Un astfel de test ar putea arăta cam așa:
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()
Exemplul de mai sus folosește Chrome ca browser. Pe lângă Chrome, SDK acceptă și următoarele browsere desktop:
- Firefox
- Margine
- Internet Explorer
- Safari
Pentru acest exemplu, nu am folosit niciunul dintre modelele de abstractizare obișnuite în testele bazate pe seleniu, cum ar fi Page Objects, dar dacă le utilizați, nu este deloc o problemă. De fapt, îl recomandăm, deoarece acest lucru creează o separare clară între fluxul dvs. de testare (acțiuni, date de testare) și detaliile de implementare ale paginilor dvs. web (localizatoare de elemente).
După finalizarea tuturor etapelor de instalare și configurare prezentate mai sus, tot ce trebuie să faceți pentru a transforma acest test într-un test alimentat de TestProject este să înlocuiți declarația de import, așa cum se explică mai jos.
from selenium import webdriver
Corelați-vă cu aceasta:
from src.testproject.sdk.drivers import webdriver
Asta este! Odată ce rulați testul acum, SDK va solicita o instanță de driver de la Agentul TestProject și o va folosi pentru a executa testul. De asemenea, va trimite instrucțiuni de raportare către platforma TestProject, care sunt apoi utilizate pentru a crea rapoarte HTML. Să aruncăm o privire asupra lor!
Inspectarea rapoartelor pe platforma TestProject
Accesând TestProject și selectând opțiunile „Rapoarte” din meniu, puteți vedea că a fost creat un nou raport pentru testul pe care tocmai l-am efectuat. Consultați imaginea de mai jos.
cum se face o listă de numere întregi în java
După cum puteți vedea, SDK-ul a dedus automat un nume de proiect ( software_testing_help ), un nume de post ( exemple ) și un nume de test ( test_login_to_testproject_example_app ) și le-a folosit la crearea raportului. Acest lucru este acceptat atât pentru Pytest, cât și pentru Unittest, precum și pentru testele care nu se execută utilizând un cadru de testare unitar dedicat.
Vom vedea cum să specificăm numele proiectului, jobului și testului personalizat, precum și o serie de alte opțiuni utile de raportare în secțiunea următoare.
Toate comenzile driverului care au fost executate în timpul testului sunt adăugate automat la raport, împreună cu rezultatul lor. TestProject generează, de asemenea, prezentări generale și tablouri de bord.
Raportarea opțiunilor de personalizare cu TestProject
În timp ce TestProject generează rapoarte bogate și utilizabile din cutie, există o serie de moduri în care le puteți personaliza pentru a se potrivi și mai bine cu cerințele dvs. de informații.
După cum am văzut în exemplul anterior, TestProject este capabil să deducă automat numele proiectelor, joburilor și testelor pentru cele mai populare cadre de testare a unităților Python. Totuși, dacă doriți să utilizați nume personalizate în rapoarte, acest lucru se poate face și în două moduri diferite.
# 1) Folosirea unui decorator
TestProject SDK are, de asemenea, un @raport decorator pe care îl puteți folosi pentru a vă decora metodele de testare și pe care îl puteți folosi specificați numele personalizat al proiectului, jobului și testului, după cum se arată mai jos:
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
Când executăm această metodă de testare decorată și inspectăm rapoartele, putem vedea că numele specificate au fost utilizate în raportul generat, în loc de cele deduse automat.
# 2) Specificarea numelor de proiecte și lucrări în constructorul driverului și raportarea manuală a unui test:
Numele proiectului și ale posturilor pot fi, de asemenea, suprascrise, specificându-le în constructorul obiectului driver. Acest lucru se poate face după cum urmează:
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
Dacă doriți să înlocuiți numele testului dedus automat, puteți raporta manual un test la sfârșitul testului, astfel:
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()
Dacă alegeți să utilizați opțiunea de raportare manuală, ar trebui să dezactivați raportarea automată a testelor (care este activată implicit), pentru a vă asigura că testele nu sunt raportate de două ori, ceea ce ar deteriora raportul și tablourile de bord.
Puteți dezactiva raportarea automată utilizând următoarea comandă:
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
Aceasta va face ca raportul să arate exact la fel ca ultima captură de ecran de mai sus.
# 3) Dezactivarea raportării comenzilor driverului
Dacă nu doriți ca raportul dvs. să conțină fiecare comandă individuală a driverului care a fost executată în timpul testului, puteți dezactiva raportarea automată a acestora astfel:
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
De asemenea, puteți reactiva raportarea comenzilor driverului mai târziu în testele dvs. apelând din nou aceeași metodă, dar cu argumentul dezactivat = False.
Dacă totuși doriți să raportați câțiva pași intermediari în timpul testului, puteți face și acest lucru:
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
După cum puteți vedea, puteți chiar să adăugați capturi de ecran la pașii de raport personalizați. Acestea vor fi integrate automat în raportul HTML de pe platforma TestProject.
SDP TestProject oferă mai multe opțiuni pentru a vă personaliza în continuare raportările. Consultați documentația oficială de pe site-ul web TestProject, GitHub sau PyPI pentru o imagine de ansamblu completă.
Rularea testelor bazate pe Appium folosind TestProject
Alături de testele bazate pe seleniu, TestProject SDK poate rula teste și pe dispozitive mobile folosind Appium. Luați în considerare acest exemplu, care rulează împotriva unei aplicații native Android pe un emulator:
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()
Pentru a folosi puterea platformei TestProject aici, din nou, trebuie doar să ne schimbăm
from appium import webdriver
La:
from src.testproject.sdk.drivers import webdriver
Și suntem bine să plecăm. Agentul TestProject acționează, de asemenea, ca server Appium, deci nu mai este nevoie să îl rulați pe computerul care vă rulează testele.
Toate caracteristicile de raportare descrise mai sus sunt disponibile și pentru testele bazate pe Appium.
SDK acceptă rularea testelor mobile:
- Pentru Android, precum și pentru iOS.
- Pe emulatoare, precum și pe dispozitive reale.
- Pe aplicațiile native, precum și pe browserele mobile
Exemple de toate acestea pot fi găsite în depozitul de coduri SDK de pe GitHub.
Concluzie
După cum ați văzut în acest tutorial, SDP TestProject Python vă poate ajuta să vă supraîncărcați testele existente bazate pe Selenium și Appium prin eliminarea treburilor de configurare a driverelor browserului și a serverului Appium și generează rapoarte HTML și tablou de bord excelente platforma TestProject.
Cel mai bun dintre toate, TestProject Python SDK este absolut gratuit.
=> Mergeți la TestProject pentru a încerca singur !
Despre autor: Bas Dijkstra
Autorul învață companiile din întreaga lume cum să își îmbunătățească eforturile de testare prin automatizarea testelor. El este un trainer independent, consultant și dezvoltator care trăiește în Olanda. În timpul liber, îi place să ia bicicleta la plimbare, să alerge sau să citească o carte bună.
Lectură recomandată
- Instrumentul de automatizare a testelor TestProject Tutorial de examinare practică
- Introducere și proces de instalare Python
- Creați teste Appium pentru o aplicație Android
- Tutorial Python pentru începători (Instruire gratuită gratuită Python)
- Rularea testelor Appium în paralel utilizând Appium Studio pentru Eclipse
- Crearea testelor de epocă folosind epochs Studio for Eclipse
- Cum se execută executarea pe scară largă a testelor Appium în paralel
- Integrați-vă în IDE-ul dvs. pentru a rula testele Appium