Skip to Content
TestingApp-UI-tests

App-UI-tests

OpenFactory kan herbruikbare browserworkflows uitvoeren in beheerde desktop tester VMs. De applicatie kan door OpenFactory worden geïmplementeerd of overal worden gehost waar de tester VM bij kan.

Scenario’s combineren semantische acties zoals open, click, type, key, wait en assert met screenshots, browserdiagnostiek en een vastgelegd oordeel. Ze passen het best bij een bekende gebruikersflow; gebruik de autonomous walker voor begrensde ontdekking.

Scenario maken en uitvoeren

Haal de tester VM van de app op:

ensure_tester_vm(app="my-app", app_url="https://staging.example.com")

Sla daarna een scenario op waarvan de stappen betekenisvolle labels op het scherm gebruiken:

[ { "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" } ]

Gebruik create_app_scenario en voer vervolgens het teruggegeven scenario-ID uit met run_app_scenario. De eerste run lost elementen op via OmniParser. Latere runs kunnen de verharde elementcache hergebruiken en alleen gewijzigde stappen opnieuw oplossen. Controleer bij het diagnosticeren van een resultaat of elke stap uit cache kwam of is geparsed.

Wat een geslaagde run betekent

Een rapport telt alleen als validatie wanneer:

  • de status passed is;
  • de bedoelde omgeving en revisie zijn getarget;
  • eventuele staging-protection en applicatielogin zijn voltooid; en
  • assertions binnen het product zijn uitgevoerd, niet op een login- of beschermingspagina.

Een geslaagd scenario toont alleen de gedeclareerde flow en assertions. Het bewijst geen volledige applicatiecorrectheid, toegankelijkheid, beveiliging of cross-browser gedrag.

Variabelen en secrets

Stappen verwijzen naar waarden als ${VAR} en TOTP-seeds als ${totp:VAR}. Niet-geheime defaults mogen bij het scenario staan. Secrets kunnen in de versleutelde key store van de eigenaar worden opgeslagen wanneer het scenario wordt aangemaakt; single-run overrides die aan run_app_scenario worden doorgegeven, worden voor die run samengevoegd en niet persistent gemaakt.

Plaats geen letterlijke wachtwoorden, tokens of TOTP-seeds in staptekst, scenariobeschrijvingen, screenshots of issue-exporten. Voor eenmalige codes per e-mail vereist de actie email_otp een actieve, expliciet gekoppelde Gmail-integratie voor de scenari-eigenaar.

Nuttige assertions

  • assert_text controleert verwachte zichtbare tekst.
  • assert_no_error controleert ingebouwde of meegeleverde foutzinnen.
  • assert_visual vergelijkt een perceptual hash met een opgeslagen baseline.
  • assert_stable bemonster een regio op onverwacht flikkeren of verdwijnen.
  • assert_progress controleert dat een streamingregio gedurende een minimumperiode blijft veranderen.
  • network kan het netwerk van de tester VM onderbreken en herstellen voor recoverytests.

Visuele en temporele assertions zijn heuristieken. Stem drempels af op stabiele testdata en bekijk vastgelegde frames voordat u drift als productdefect behandelt.

Directe en opgenomen tests

Voor verkennend werk stuurt u de VM aan met desktop_open_url, desktop_screenshot, desktop_click, desktop_type en gerelateerde desktoptools. Gebruik start_app_test, record_app_test_step en finish_app_test wanneer die handmatige reeks een controleerbare run moet worden.

annotate_screenshot kan gelabelde vakken aan bewijs toevoegen. Een annotatie legt uit wat een reviewer moet bekijken; het bewijst niet op zichzelf dat het element werkte.

Operationele opmerkingen

  • Tester VMs worden per app/host hergebruikt. Schaal de tester pool voor parallel werk in plaats van willekeurige duplicaten aan te maken.
  • De standaard tester heeft geen extra persistenceschijf. Vraag persistence alleen aan wanneer state een reboot moet overleven en accepteer de langere first boot.
  • Een client timeout annuleert backendwerk niet per se; inspecteer de run voordat u opnieuw probeert.
  • Houd rapporten privé tenzij screenshots en diagnostiek op gevoelige gegevens zijn gecontroleerd.

Gerelateerd