de Joyz

O rețetă pentru teste automatizate de site-uri web cu Python Selenium și Chrome fără cap în Docker

O reteta pentru teste automatizate de site uri web cu Python
Fotografie din Oursky Biroul din Hong Kong

Echipa de asigurare a calității controlează erorile, dar testarea manuală nu este scalabilă atunci când compania dvs. își asumă mai multe proiecte. Deoarece compania mea trimite versiuni la fiecare două săptămâni, echipa QA dorește să testeze fiecare versiune înainte de a le transmite clienților noștri.

Pentru a îmbunătăți QA, am contribuit la modificarea proceselor de gestionare a proiectelor, am recrutat o echipă de testeri exploratori și am construit instrumente de testare automată pentru integrare continuă ca inginer QA. Majoritatea instrumentelor pe care le construiesc folosesc biblioteci open-source sau gratuite.

Mai jos este un ghid pentru open-source-ul meu Repo Github cu peste 100.000 de imagini docker atrase pentru a ajuta echipele de dezvoltare și dezvoltatorii independenți să își configureze propriile teste automate.

Sarcina noastră

Vom parcurge procesul pas cu pas pentru a vedea cum să configurați un test cu Seleniu, care automatizează browserele pentru a efectua teste. În acest exemplu, vom folosi Chrome fără cap pentru a încărca site-ul nostru web și vom efectua un simplu clic pe butonul pe care dorim să îl testăm pe site.

ad-banner

Configurarea cromului fără cap

Pornirea unui browser Chrome în Docker pentru a rula un test Selenium durează doar un minut. Odată ce funcționează, funcționează cu orice versiuni automate de CI.

Iată un exemplu:

Mai întâi, deschideți terminalul și accesați directorul de lucru.

$ cd [your working directory]

Apoi trageți și rulați această imagine de andocare de la joyzoursky / python-chromedriver. Vom executa testul Selenium în interiorul containerului Docker.

$ docker run -it -v $(pwd):/usr/workspace joyzoursky/python-chromedriver:3.6-alpine3.7-selenium shUnable to find image 'joyzoursky/python-chromedriver:3.6-alpine3.7-selenium' locally3.6-alpine3.7-selenium: Pulling from joyzoursky/python-chromedriverff3a5c916c92: Pull complete471170bb1257: Pull completed487cc70216e: Pull complete9358b3ca3321: Pull complete78b9945f52f1: Pull complete66eb40d9fb29: Pull complete36cb996dbd54: Pull complete8e6f0ca23b1a: Pull completed5a3895f190c: Pull completeDigest: sha256:c51c240f1a472b0f252e96cd39678c7d039b757b83e46bf8ed182e95caaf02e7Status: Downloaded newer image for joyzoursky/python-chromedriver:3.6-alpine3.7-selenium

Acum containerul este gata. Să ne mutăm în spațiul de lucru și să încercăm codul.

/ # cd /usr/workspace/

Acum, putem să ne scriptăm testul

Să începem Python.

/usr/workspace # pythonPython 3.6.4 (default, Jan 10 2018, 05:20:21)[GCC 6.4.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>>

Înainte de a încerca codul, importați selenium webdriver din pachetul preinstalat.

>>> from selenium import webdriver

Atunci să începem Chrome fără cap. Unele opțiuni sunt necesare pentru a trece la șofer pentru a evita blocarea în timpul pornirii.

>>> chrome_options = webdriver.ChromeOptions()>>> chrome_options.add_argument('--no-sandbox')>>> chrome_options.add_argument('--window-size=1420,1080')>>> chrome_options.add_argument('--headless')>>> chrome_options.add_argument('--disable-gpu')>>> driver = webdriver.Chrome(chrome_options=chrome_options)

Acum browserul este deja deschis în container, dar nu îl putem vedea. Să încercăm să accesăm acest site web și să verificăm textul interior al butonului din dreapta sus.

O reteta pentru teste automatizate de site uri web cu Python
>>> driver.get('https://www.oursky.com/')>>> el = driver.find_element_by_class_name('btn-header')>>> el.text'START YOUR PROJECT'

Să găsim elementul cu care dorim să interacționăm, de exemplu butonul din antetul „btn-header”.

Am înțeles! Acum, să încercăm să declanșăm un clic pe buton.

>>> el.click()>>> driver.current_url'https://oursky.com/enquiry/general/'

Succes! Driverul merge la adresa URL așteptată după ce faceți clic pe buton.

Acum puteți rula scripturile în container sau puteți utiliza imaginea într-un script de compilare CI. De asemenea, vă puteți construi propria imagine cu mai multe pachete pip instalate, astfel încât să puteți automatiza teste mai puternice.

Bucurați-vă!

Puteți găsi Depozitul GitHub al imaginii de andocare aici cu mediul de testare configurat.

De asemenea, aruncați o privire la întreg Exemplu de script Python Selenium, astfel încât să îl puteți personaliza în propriul test.

1611388026 257 O reteta pentru teste automatizate de site uri web cu Python

Lucrez pentru compania de dezvoltare de software din Hong Kong și Taiwan Oursky. Construim produse digitale pentru clienți și instrumente de dezvoltare la fel ca open source BaaS, Skygear, ceea ce îi ajută pe dezvoltatori să construiască aplicații mai rapid.