Spartinanti seleno + agurkų automatizacija

Įvadas:
Automatizavimo testavimas žada greitį ir patikimumą, tačiau scenarijų rašymas ir priežiūra rankiniu būdu užima daug laiko. Inžinieriai dažnai praleidžia valandas kurdami XPath parinkiklius, kurdami puslapių objektų klases ir taisydami nenuoseklias palaukes.
„Antigravity“, AI maitinamas kodavimo asistentas, sukurtas naudojant „Google DeepMind“ agentinę technologiją, siekia supaprastinti šį procesą. Išbandėme jį realiame „Selenium + Cucumber“ projekte sudėtingoje įmonės programoje, o rezultatai buvo įspūdingi.


Palyginimas pagal užduotį:
1) Patirtis kuriant puslapio objektų klasę
Scenarijus: Sukurkite puslapio objekto klasę, apimančią prisijungimo srautą, modulio naršymą, kontekstinio meniu sąveiką ir formomis pagrįstą įrašų kūrimą.
Pastolių klasė: ~15 min prieš ~2 min
XPath tyrimas: ~25 min vs ~5 min
WebDriverWait sąranka: ~10 min vs Instant
Iš viso: ~50 min vs ~7 min
Rankinis iššūkis:
Norint rasti teisingus XPath, reikėjo patikrinti DOM, išbandyti kelis kūrėjo įrankių parinkiklius ir pakartotinai juos tikslinti.
// Sumedžiota rankiniu būdu – izoliuoti prireikė ~8 minučių
By.xpath(.//button(@class=’MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1phdkqw’))
Su antigravitacija:
Elementą aprašius paprasta anglų kalba (pvz., „trijų taškų piktogramos mygtukas medžio eilutėje“) akimirksniu buvo sukurtas veikiantis parinkiklis. Jis taip pat automatiškai apvyniojo jį su tinkama WebDriverWait sąlyga, sumažindamas dribsnius.
2) Patirtis rašant agurkų žingsnių apibrėžimus
Scenarijus: Susiekite @Given, @When, @Then žingsnius į puslapio objekto metodus.
Regex šablono rašymas: ~10 min prieš ~1 min
Sujungimo metodo iškvietimai: ~15 min prieš ~3 min
Klaidų apdorojimas ir registravimas: ~15 min vs Instant
Iš viso: ~40 min prieš ~4 min
Rankinis iššūkis:
Nuosekli „try/catch“ blokų ir prasmingų žurnalų rašymas kartojasi. Dažnai inžinieriai praleidžia išsamų registravimą, todėl atsiranda neaiškių CI gedimų.
// Sukurta automatiškai – struktūrizuota, skaitoma, nuosekli
@Given(„^Einu į inventoriaus puslapį$”)
public void i_navigate_to_inventory_page() {
pabandyk {
System.out.println („Perėjimas į inventoriaus puslapį“);
inventoryPage.navigateToModule();
System.out.println („Sėkmingai nukreipta į inventoriaus puslapį”);
} sugauti (e išimtis) {
System.err.println(„Klaida naršant į inventoriaus puslapį: ” + e.getMessage());
mesti e;
}
}
Su antigravitacija:
Kiekvienas veiksmas buvo sukurtas naudojant tinkamą struktūrą, registravimą, pavadinimų suteikimo taisykles ir klaidų apdorojimą – automatiškai ir nuosekliai.
Sutaupytas laikas – Beveik vienam funkcijų failui 2,5 valandos buvo išgelbėti.
Be greičio, kodo kokybė pagerėjo dėl:
- Nuoseklus įvardijimas
- Struktūrinis medienos ruoša
- Tinkamos laukimo strategijos
- Sumažėjęs dribsnių testas
Šie patobulinimai susilieja per visą projekto gyvavimo laikotarpį.
Skaidrumas – antigravitacija yra galinga, bet ne magija.
- Aiškūs vartotojo sąsajos aprašymai suteikia geresnių rezultatų.
- Sugeneruotas kodas vis tiek turi būti peržiūrėtas.
- Seleno žinios padidina priemonės efektyvumą.
- Tai sustiprina žinias, bet jos nepakeičia.
Patobulintas kodo standartizavimas:
Sugeneruotas kodas:
- Vienodos įvardijimo taisyklės
- Išvalyti puslapio objekto struktūrą
- Nuspėjamas registravimo formatas
Tai sumažina:
- Kodo peržiūros ciklai
- Pertvarkymo pastangos
- Priežiūros sudėtingumas
Sumažintos derinimo išlaidos:
Kadangi registravimas buvo automatiškai struktūrizuotas:
- CI gedimai tapo savaime aiškūs
- Stack pėdsakai buvo aiškesni
- Pagrindines priežastis buvo lengviau nustatyti
Mažiau laiko derinant → Daugiau laiko bandant išplėsti aprėptį.
Tikroji vertė: kognityvinės apkrovos mažinimas
Didžiausią įtaką padarė ne tik greitis. Tai buvo psichinis pralaidumas.
Inžinieriams nebereikėjo:
- Pagalvokite apie reguliarius reiškinius
- Perrašyti pasikartojančius try/pagauti blokus
- Pakartotinis diegimas laukia
- Dar kartą patikrinkite pavadinimų modelius
Vietoj to jie sutelkė dėmesį į:
- Verslo logikos patvirtinimas
- Kraštiniai atvejo scenarijai
- Išbandykite dizaino kokybę
- Rizikos draudimas
Antigravitacija perkelia pastangas nuo katilinės generavimo prie bandymo intelekto.
Dariniai:
- 88 % greitesnis bandymo kūrimas.
- Antigravitacija nėra tik patogumo įrankis; tai automatizavimo jėgos daugiklis
- Tolygesnė kodo kokybė.
- Mažiau derinimo seansų.
inžinieriai. Užduotys, kurios anksčiau užtrukdavo valandas, dabar užtrunka kelias minutes.
Komandoms, naudojančioms seleną ir agurką šiuolaikinėse „React“ programose, tai padeda automatizacijai neatsilikti nuo vystymosi, o ne atsilikti nuo sprinto.


