Programos UI testavimas
OpenFactory gali vykdyti daugkartinius naršyklės workflow valdomose desktop tester VM. Programą gali diegti OpenFactory arba hostinti bet kur, kur tester VM gali pasiekti.
Scenarijai sujungia semantinius veiksmus, pvz. open, click, type, key, wait ir assert, su ekrano kopijomis, naršyklės diagnostika ir įrašytu verdiktu. Jie tinka žinomam vartotojo srautui; ribotam aptikimui naudokite autonomous walker.
Sukurti ir paleisti scenarijų
Gaukite programos tester VM:
ensure_tester_vm(app="my-app", app_url="https://staging.example.com")Tada išsaugokite scenarijų, kurio žingsniai naudoja prasmingas ekrano etiketes:
[
{ "action": "open_url", "value": "${APP_URL}" },
{ "action": "type", "target": "email field", "value": "${EMAIL}" },
{ "action": "type", "target": "password field", "value": "${PASSWORD}" },
{ "action": "click", "target": "Sign in" },
{ "action": "assert_text", "expect": "Dashboard" },
{ "action": "assert_no_error" }
]Naudokite create_app_scenario, tada grąžintą scenario ID paleiskite su
run_app_scenario. Pirmas paleidimas elementus išsprendžia per OmniParser.
Vėlesni paleidimai gali pakartotinai naudoti sustiprintą elementų cache ir iš
naujo išspręsti tik pasikeitusius žingsnius. Diagnozuodami rezultatą,
peržiūrėkite, ar kiekvienas žingsnis buvo cached ar parsed.
Ką reiškia sėkmingas paleidimas
Ataskaita laikoma patvirtinimu tik kai:
- būsena yra
passed; - tikslas buvo numatyta aplinka ir revision;
- staging-protection ir programos prisijungimas baigėsi; ir
- assertions vykdėsi produkte, ne prisijungimo ar apsaugos puslapyje.
Sėkmingas scenarijus parodo tik deklaruotą srautą ir assertions. Jis neįrodo visiškos programos teisingumo, prieinamumo, saugumo ar elgsenos skirtingose naršyklėse.
Kintamieji ir secrets
Žingsniai naudoja reikšmes kaip ${VAR} ir TOTP seeds kaip ${totp:VAR}.
Neslapti numatymai gali būti scenarijuje. Secrets gali būti saugomi savininko
šifruotame key store kuriant scenarijų; vienkartiniai override, perduoti į
run_app_scenario, sujungiami tam paleidimui ir neišsaugomi.
Neįrašykite literal slaptažodžių, token ar TOTP seeds į žingsnių tekstą,
scenarijaus aprašymus, ekrano kopijas ar issue export. El. paštu siunčiamiems
vienkartiniams kodams email_otp veiksmui reikia aktyvios, aiškiai prijungtos
Gmail integracijos scenarijaus savininkui.
Naudingos assertions
assert_texttikrina tikėtiną matomą tekstą.assert_no_errortikrina built-in ar pateiktas error frazes.assert_visuallygina perceptual hash su saugomu baseline.assert_stableimdo regiono pavyzdžius dėl netikėto flicker/disappearance.assert_progresstikrina, kad streaming regionas toliau keičiasi mažiausiai nustatytą laikotarpį.networkgali nutraukti ir atkurti tester VM tinklą recovery testams.
Visual ir temporal assertions yra heuristikos. Derinkite slenksčius prie stabilių test data ir peržiūrėkite užfiksuotus kadrus prieš laikydami drift produkto defektu.
Tiesioginis ir įrašytas testavimas
Tiriamam darbui valdykite VM su desktop_open_url, desktop_screenshot,
desktop_click, desktop_type ir susijusiais desktop įrankiais. Naudokite
start_app_test, record_app_test_step ir finish_app_test, kai ta rankinė
seka turi tapti tikrinama paleidimo seka.
annotate_screenshot gali pridėti pažymėtus laukus prie evidence. Anotacija
paaiškina, ką tikrintojas turėtų peržiūrėti; pati ji neįrodo, kad elementas
veikė.
Operacinės pastabos
- Tester VM pernaudojamos pagal app/host. Didinkite tester pool paraleliam darbui vietoj savavališkų dublikatų kūrimo.
- Numatytoji tester neturi papildomo persistence disko. Request persistence tik kai state turi išgyventi reboot ir sutikite su ilgesniu first boot.
- Kliento timeout nebūtinai atšaukia backend darbą; peržiūrėkite run prieš bandydami dar kartą.
- Laikykite reports private, nebent jų ekrano kopijos ir diagnostika peržiūrėtos dėl jautrių duomenų.