Loading Now

Mano dramaturgo automatizavimo kelionė su AI partneriu

Mano dramaturgo automatizavimo kelionė su AI partneriu


Jei pastaruoju metu „LinkedIn“ praleidote daugiau nei penkias minutes, tikriausiai matėte paniką. Visi kalba apie tai, kaip AI perims programinės įrangos testavimą ir pakeis mus visus.

Tiesiog stabtelkime sekundei. Kai matau tuos įrašus, mano galvoje pasirodo tokia konsolės išvestis:

console.log („Gilus įkvėpimas. AI revoliucija yra tik įrankio atnaujinimas. Tai bus nauja norma po kelerių metų.”);

Štai tiesa: AI nėra čia, kad pavogtų jūsų darbą. Čia reikia atlikti varginantį darbą, kad galėtumėte sutelkti dėmesį į didesnį vaizdą. Neseniai išbandžiau tai sukūręs pilną „Playwright“ automatizavimo rinkinį, naudodamas „JavaScript“ nuo nulio, padedamas Antigravity integruoto AI agento.

Štai kaip viskas nukrito.

AI pasitikiAI pasitiki

Pamatų klojimas

Naujos automatizavimo sistemos paleidimas paprastai yra sudėtingas darbas dėl visos pradinės sąrankos. Su AI tai buvo neįtikėtinai greita:

Greitas inicijavimas: Viską pradėjome sklandžiai naudodami standartą

> npm init dramaturgas@latest.

Struktūrinė architektūra: AI padėjo man iš karto sukurti švarų puslapio objekto modelį (POM). Vietojus suskirstėme į tvarkingus failus, pvz LoginPage.js ir AdminPage.js užuot išbarstę juos visur.

Išmanioji konfigūracija: Kadangi mano darbo eigos priklauso nuo ankstesnių bandymo veiksmų, AI padėjo pakoreguoti mano playwright.config.js. Nustatome, kad testai būtų vykdomi nuosekliai (darbininkai: 1 ir režimas: ‘serijinis’), kad būtų išvengta atsitiktinių gedimų.

„Prieš AI“ ir „Po AI“ tikrovės patikrinimas

Čia viskas tapo tikrai įdomi. Prieš naudojant AI, mano požiūris į scenarijaus rašymą – pavyzdžiui, paimkime paprastą prisijungimo puslapį – buvo gana paprastas.

Kaip aš tai rašiau (prieš AI):

  • Pasakykite „Playwright“ eiti į prisijungimo URL adresą.
  • Aklai mesti užpildyti komandas laukuose El. paštas ir Slaptažodis.
  • Spustelėkite Pateikti ir tikėkitės, kad prietaisų skydelis bus įkeltas prieš pasibaigiant bandymo laikui.
javascript
test('Basic Login', async ({ page }) => {
  // Just blindly going to the URL and typing
  await page.goto('https://myapp.com/login');
  await page.locator('#email').fill('myEmail@test.com');
  await page.locator('#password').fill('myPassword123');
  await page.locator('#submitBtn').click();
  
  // Hoping the dashboard loads...
});

Kaip mes tai rašome dabar (po AI):

  • Scenarijus patikrina, ar puslapis iš tikrųjų visiškai įkeltas.
  • Prieš įvedant tekstą patikrinama, ar įvesties laukai matomi ir įjungti.
  • Jis aiškiai laukia, kol tinklo atsakymas grąžins a 200 gerai ir prietaisų skydelio URL, kuris bus rodomas prieš tęsiant.
javascript
test('Robust Login with AI', async ({ page }) => {
  // Navigation with error handling
  await page.goto('https://myapp.com/login', { waitUntil: 'domcontentloaded' });
  
  // Explicitly waiting for the elements to be ready before interacting
  const emailInput = page.locator('#email');
  const passwordInput = page.locator('#password');
  const submitBtn = page.locator('#submitBtn');
  await expect(emailInput).toBeVisible();
  await expect(emailInput).toBeEnabled();
  
  // Now we interact
  await emailInput.fill('myEmail@test.com');
  await passwordInput.fill('myPassword123');
  
  // Smart click and wait for the successful network response and dashboard URL
  await Promise.all((
    page.waitForResponse(response => response.url().includes('/api/auth') && response.status() === 200),
    page.waitForURL('**/dashboard'),
    submitBtn.click()
  ));
});

AI taip pat tvarkė tikrai nepatogias mano programos dalis:

  • Duomenų perdavimas: padėjo man išsaugoti dinamiškai sugeneruotą registracijos el. laišką, kad galėčiau naudoti vėlesniuose administratoriaus patvirtinimo bandymuose.
  • Sumanesni paspaudimai: Sukurti pasirinktiniai metodai, skirti laukti, kol fono įkėlimo suktukai išnyks prieš spustelėdami.
  • Automatinis valymas: Parašė scenarijus, kurie vykdymo pabaigoje automatiškai ištrina bandymo duomenis, kad duomenų bazė būtų nesugadinta.

Srauto automatizavimas su Jenkinsu

„Jis veikia mano kompiuteryje“ nieko nereiškia, jei jis automatiškai neveikia jūsų konvejeryje. Tam mums reikėjo Jenkinso.

Kas yra Dženkinsas?

  • „Jenkins“ yra populiarus nuolatinio integravimo / nuolatinio pristatymo (CI / CD) serveris.
  • Jis veikia kaip jūsų kodo eismo policininkas – automatiškai suaktyvina, sukuria ir paleidžia bandomuosius scenarijus kiekvieną kartą, kai kūrėjai pateikia naujus programos naujinimus.

Rašymas a Jenkinsfile dujotiekio scenarijus nuo nulio gali sukelti galvos skausmą, tačiau „Antigravity“ agentas jį parengė per kelias minutes. Mūsų vamzdynas dabar sėkmingai:

  • Automatiškai ištraukia naujausią kodą.
  • Diegia priklausomybes ir „Playwright“ naršykles.
  • Paleidžia visą testų rinkinį be galvos.
  • Sugeneruoja švarią HTML ataskaitą ir siunčia rezultatus tiesiogiai suinteresuotosioms šalims.

Apvyniojimas

Šio komplekto kūrimas visiškai atvėrė man akis, kur vyksta bandymai, o skaičiai kalba patys už save.

  • Prieš AI: Tokio dydžio ir sudėtingumo karkaso kūrimas man trukdavo apytiksliai 464 valandos šlifuoti per sintaksę, derinti trapius selektorius ir slinkti per „StackOverflow“.
  • Po AI: Kai dirbtinio intelekto agentas tvarko sunkų kėlimą, tą patį automatizavimo rinkinį užbaigiau per trumpą laiką 144 valandos.

Tai yra visa AI naudojimo esmė. Tai nepakeičia jūsų testavimo pagrindų – vis tiek turite suprasti savo verslo logiką ir nurodyti AI, ką daryti. Tačiau kalbant apie tai, kaip tai sutaupo daug laiko. Tai sumažina jūsų pastangas šimtais valandų ir paverčia trapius scenarijus į tvirtą automatizavimo sistemą.

Jei dvejojate dėl AI bangos, nedvejokite. Pasirinkite įrankį, pvz., „Playwright“, paleiskite AI asistentą ir tiesiog pradėkite kurti. Testavimas yra tik nuostabus atnaujinimas.

Laimingo automatizavimo!



Source link

Gal būt praleidote

Draugai: - Marketingo agentūra - Teisinės konsultacijos - Skaidrių skenavimas - Klaipedos miesto naujienos - Miesto naujienos - Saulius Narbutas - Įvaizdžio kūrimas - Veidoskaita - Teniso treniruotės - Pranešimai spaudai - Kauno naujienos - Regionų naujienos - Palangos naujienos