Dunkelmodus testen, andere Sprachen, andere Bildschirme: ein Test für alle Varianten
Dunkelmodus testen, ohne den Test zu kopieren: Behalten Sie einen Test, der im hellen und dunklen Modus, in jeder Sprache und auf jedem Bildschirm besteht.
Um Dunkelmodus, andere Sprachen und andere Bildschirme zu testen, ohne den Test zu kopieren, behalten Sie einen einzigen Test, dessen Prüfungen eine Version pro Variante haben.Ein Lauf wählt die Variante, und die Schritte bleiben dieselben.
Es ist eines der häufigsten Probleme der Testautomatisierung.Ein Test besteht im hellen Modus an Ihrem Platz und scheitert dann im Dunkelmodus, auf Französisch oder auf dem Laptop eines Kollegen, obwohl nichts kaputt ist.
Warum scheitert ein Test im Dunkelmodus, obwohl nichts kaputt ist?
Definition
Ein Test macht zwei Dinge: Er tut, was ein Benutzer tut, und er prüft, was der Bildschirm zeigt.
- Das Tun ist in jeder Variante gleich.
Das Prüfen nicht, denn ein korrekter Bildschirm sieht im Dunkelmodus, in einer anderen Sprache oder auf einem anderen Bildschirm anders aus, und eine Prüfung, die nur ein Aussehen erwartet, lässt die anderen scheitern.
In GUI Test Studio ist das, was eine Prüfung erwartet, das visuelle Ziel einer Bild-Assertion, der erwartete Text einer Text-Assertion, das Format einer Dynamischen Text-Assertion oder die Anordnung einer Layout-Assertion.Die Aufzeichnung gibt jeder Prüfung ihr erstes erwartetes Aussehen, den sogenannten Standard.
Dunkelmodus, andere Sprache, anderer Bildschirm: was sich auf einem korrekten Bildschirm ändert
Derselbe Bildschirm kann zu Recht anders aussehen.Die App ist nicht kaputt, sie wird in einer anderen Variante gezeigt, und eine Prüfung mit nur einer Version kann den Unterschied nicht erkennen.
| Variante | Was sich auf einem korrekten Bildschirm ändert |
|---|---|
| Dunkelmodus und hoher Kontrast | Jeder Hintergrund, jede Textfarbe und jedes Symbol ändert sich, also weicht jedes Bild vom hellen Aussehen ab. |
| Eine andere Sprache | Wörter werden länger oder kürzer, Schaltflächen wachsen, Zeilen brechen um, und eine Sprache, die von rechts nach links geschrieben wird, spiegelt das Layout. |
| Ein anderer Bildschirm | Ein Laptop mit 150 % Skalierung und ein 4K-Monitor mit 100 % zeichnen dieselbe Schaltfläche mit anderen Pixeln. |
| Eine andere Windows-Version | Schriften, Ecken, Schatten und Bildlaufleisten unterscheiden sich zwischen Windows 10 und Windows 11. |
| Eine andere Edition Ihrer App | Die Farben und das Logo eines White-Label-Kunden oder eine Funktion, die nur manche Tarife zeigen. |
Warum eine Kopie des Tests pro Variante nicht lange hält
Wenn ein korrekter Bildschirm in einer Variante immer wieder scheitert, greifen Teams meist zu einer von drei Abkürzungen.
Eine Kopie pro Variante
Eine Änderung des Ablaufs wird viermal gemacht.
Ein Test
Checkout-Test
Eine Änderung des Ablaufs wird einmal gemacht.
| Die Abkürzung | Was sie kostet |
|---|---|
| Eine Kopie des Tests pro Variante | Jede Änderung am Ablauf wird zwei-, drei- oder fünfmal gemacht, und die Kopien laufen auseinander. |
| Eine lockerere Prüfung | Eine Prüfung, die locker genug ist, um das dunkle Aussehen zu akzeptieren, akzeptiert auch ein fehlendes Symbol oder eine falsche Farbe im hellen. |
| Keine visuelle Prüfung in dieser Variante | Der Test klickt sich weiter durch, aber schwarzer Text auf dunklem Hintergrund wird unbemerkt ausgeliefert. |
Eine lockerere Prüfung kann ein beabsichtigtes neues Aussehen nicht von einem Fehler unterscheiden.Das kann nur ein erwartetes Aussehen für diese Variante.
Warum ein bestandener Test trotzdem übersehen kann, was Nutzer sehen, behandelt der Artikel visuelle Fehler, die automatisierte Tests übersehen.Warum eine Prüfung, die grundlos fehlschlägt, schlechter ist als gar keine Prüfung, steht in Flaky Tests und False Positives.
Was es in einem programmierten Test-Framework braucht
In einem programmierten Framework wie Playwright, Selenium oder Cypress bauen und pflegen Sie die Varianten selbst im Code.
| Was Sie pflegen | In einem programmierten Framework | In GUI Test Studio |
|---|---|---|
| Die erwarteten Bilder | Ein Ordner mit Referenz-Screenshots für jedes Design, jede Sprache und jeden Browser, neben dem Testcode abgelegt. | In der einen Testdatei, als eine Version pro Variante jeder Prüfung. |
| Die Variante wechseln | Eine Konfiguration oder Code, der nach Design oder Sprache verzweigt. | Ein für den Lauf gewähltes Profil. |
| Die in jeder Sprache getippten Wörter | Testdaten pro Sprache, in den Testcode eingebunden. | Eine Version des Schritts Texteingabe für diese Sprache. |
| Ein neues Aussehen nach einer gewollten Änderung | Ein Lauf mit einer Option wie --update-snapshots, danach eine Durchsicht der geänderten Dateien. | Das neue Aussehen im Bericht mit einem Klick übernehmen, dann Speichern. |
Die Idee ist dieselbe: eine Variante, ein Satz Erwartungen.Was sich unterscheidet, ist, wie viel Sie dafür schreiben und pflegen.
Ein Test für alle Varianten: Baseline-Profile
GUI Test Studio, das End-to-End-Tests unter Windows ohne Code automatisiert, hält jede Version im Test.Sie benennen Ihre Varianten als Baseline-Profile, etwa Dunkelmodus, Französisch, 4K-Monitor oder Windows 10.Jede Prüfung kann dann pro Profil eine Version dessen halten, was sie erwartet, neben ihrem Standard.
Eine Bild-Assertion
Standard
wie aufgezeichnet
Dunkelmodus
ein Profil, das Sie hinzufügen
Französisch
ein Profil, das Sie hinzufügen
Allen Versionen gemeinsam
| Begriff | Bedeutung |
|---|---|
| Standard | Was aufgezeichnet wurde.Er lässt sich umbenennen, aber nie entfernen, und jeder Lauf verwendet ihn, sofern Sie kein Profil wählen. |
| Baseline-Profil | Eine benannte Variante, die Sie dem Test hinzufügen.Sie ist nur ein Name, bis ihre Prüfungen ihre Versionen haben. |
| Version | Das erwartete Aussehen einer Prüfung für ein Profil: ein Bild, ein Text, ein Format oder eine Anordnung. |
Jede Art von Prüfung kann Versionen haben: Bild-Assertionen, Text-Assertionen, Dynamische Text-Assertionen und Layout-Assertionen.In einer Gruppen-Assertion hat jedes Mitglied seine eigenen.Jedes beteiligte Fenster finden Sie im Leitfaden zu Baselines.
Was sich von einer Variante zur nächsten ändert und was nie
Ein Profil ändert, was eine Prüfung erwartet.Es ändert nie, wie die Prüfung danach sucht.
| Prüfung | Die Version eines Profils enthält | Allen Versionen gemeinsam |
|---|---|---|
| Bild-Assertion | Ihr visuelles Ziel, das Bild, nach dem sie sucht. | Der Suchbereich, das Zeitlimit und die Verifikationsstrenge. |
| Text-Assertion | Der erwartete Text, seine Präzision und die Groß-/Kleinschreibung. | Der Suchbereich und das Zeitlimit. |
| Dynamische Text-Assertion | Das Format des Textes, auf den sie wartet. | Der Suchbereich und das Zeitlimit. |
| Layout-Assertion | Die Elemente und ihre Anordnung. | Der Suchbereich und das Zeitlimit. |
Eine App in mehreren Sprachen testen: Auch die Schritte ändern sich
Ein Test in einer anderen Sprache braucht oft mehr als andere Bilder.Er tippt andere Wörter, öffnet eine andere Adresse oder lädt eine andere Datei hoch.Deshalb kann jeder Schritt des Tests die Version eines Profils für das haben, was er tut, während seine Stelle auf dem Bildschirm und sein Zeitpunkt gemeinsam bleiben.
| Schritt | Standard | Profil Französisch |
|---|---|---|
| Texteingabe | Hello, I need help | Bonjour, j'ai besoin d'aide |
| Tastendruck | Ctrl+B | Ctrl+G |
| Web-App öffnen | shop.example.com/en | shop.example.com/fr |
| Datei hochladen | invoice.pdf | facture.pdf |
| App starten | Setup.exe | Setup.exe /lang=fr |
Auch ein Tastenkürzel kann sich unterscheiden: In Microsoft Word auf Französisch ist Fett Ctrl+G statt Ctrl+B, deshalb hat der Schritt Tastendruck eine französische Version.
Der Standard tippt eine englische Nachricht und erwartet die englische Bestätigung.Unter dem Profil Französisch tippt derselbe Schritt Texteingabe die französische Nachricht, und die Text-Assertion erwartet die französische Bestätigung.Ein Test, zwei Sprachen, und eine Änderung am Ablauf wird nur einmal gemacht.
Wie eine Text-Assertion einen Text liest und vergleicht, erklärt Textprüfungen.
So fügen Sie einem vorhandenen Test den Dunkelmodus hinzu, Schritt für Schritt
Am schnellsten füllen Sie ein Profil mit einem Lauf unter diesem Profil.Die Prüfungen, die anders aussehen, schlagen fehl, Sie sehen sie sich an und behalten die richtigen.
Ausführen
Unter dem Profil
Durchsehen
Jede fehlgeschlagene Prüfung
Übernehmen
Für dieses Profil
Speichern
In den Test
- 1
Das Profil benennen
Fügen Sie unter Einstellungen, Projekteinstellungen in der Karte Baseline-Profile ein Baseline-Profil namens Dunkelmodus hinzu.Ein Profil ist nur ein Name, bis seine Prüfungen ihre Versionen bekommen.
- 2
Den Test unter dem Profil ausführen
Schalten Sie Ihre App in den Dunkelmodus.Wählen Sie auf der Seite des Tests im GUI Test Runner-Recorder in der Zeile Baseline Dunkelmodus und klicken Sie dann auf Test ausführen.
Die Zeile „Baseline“ wählt das Profil des nächsten Laufs, und die Wahl wird für diesen Test gemerkt. - 3
Jede fehlgeschlagene Prüfung durchsehen
Die Prüfungen vergleichen noch mit dem hellen Aussehen, deshalb schlagen die fehl, die anders aussehen.Öffnen Sie jede im Konfidenzbericht und entscheiden Sie, ob das dunkle Aussehen richtig ist.
- 4
Die richtigen dunklen Ansichten übernehmen
Klicken Sie bei jeder durchgesehenen Prüfung auf Ist als Baseline für „Dunkelmodus“ übernehmen.Das helle Standardaussehen bleibt, wie es war.
Bei einem Lauf unter einem Profil legt die Schaltfläche Übernehmen das neue Aussehen unter diesem Profil ab. - 5
Speichern und erneut ausführen
Speichern Sie die Änderungen des Berichts in den Test und führen Sie ihn noch einmal unter Dunkelmodus aus.Jede Prüfung vergleicht jetzt mit ihrer eigenen dunklen Version.
Oder die Version in GUI Test Studio aufnehmen
Wählen Sie eine Prüfung aus, öffnen Sie ihre Registerkarte Baselines und wählen Sie das Profil.Jedes Feld des Eigenschaftenbereichs zeigt nun die Version dieses Profils, und eine Änderung dessen, was die Prüfung erwartet, geht in diese Version.Aufnehmen... startet eine Bildschirmaufnahme, in der der Bereich der Prüfung dort eingezeichnet ist, wo er stand, und Denselben Bereich aufnehmen nimmt das Bild des Profils genau an dieser Stelle auf.
Sie können Ihren KI-Assistenten auch bitten, ein Profil hinzuzufügen oder eine Version aufzunehmen, über Einen Test aus einem Prompt erstellen.
Wenn sich die App absichtlich ändert: das neue Aussehen mit einem Klick übernehmen
Ein neues Aussehen wird übernommen, wenn sich die App absichtlich ändert.Übernehmen Sie nur, was Sie durchgesehen haben, und behalten Sie einen Weg zurück.
| Wann | Was in GUI Test Studio zu tun ist |
|---|---|
| Eine Prüfung ist fehlgeschlagen, und das neue Aussehen ist richtig | Übernehmen Sie das tatsächliche Ergebnis im Konfidenzbericht.Strg+Z nimmt es zurück, bis Sie speichern. |
| Das Element wurde überhaupt nicht gefunden | Übernehmen Sie seinen ähnlichsten Bereich, die Stelle, die ihm am nächsten kam, als neues erwartetes Aussehen. |
| Ein Text hat sich absichtlich geändert | Bearbeiten Sie den erwarteten Text im Bericht.Unter einem Profil wird die Änderung als Version dieses Profils gespeichert. |
| Das neue Aussehen wird zum Hauptaussehen | „Als Standard festlegen“ macht die Version eines Profils zum Standard und behält den alten Standard unter diesem Profil. |
| Ein Profil wird umbenannt oder entfernt | Tun Sie es in den Projekteinstellungen: Jede Prüfung des Tests zieht mit. |
Einen Test nach einer Änderung aktualisieren führt durch das Übernehmen im Bericht, und der Konfidenzbericht erklärt alles, was er zeigt.
Jede Variante in CI/CD ausführen
Dieser Lauf
Baseline: Dunkelmodus
Schaltfläche Speichern · Bild-Assertion
ihre Version für Dunkelmodus
Bestellsumme · Text-Assertion
ihre Version für Dunkelmodus
Firmenlogo · Bild-Assertion
noch keine Version für Dunkelmodus: Der Standard wird verwendet, und der Bericht sagt es
Ein Lauf verwendet ein Profil.Im GUI Test Runner-Recorder ist es die Zeile Baseline auf der Seite des Tests.Auf einem Build-Agent nimmt gtr-cli --baseline-profile gefolgt vom Namen des Profils.
gtr-cli run tests\Checkout.GTS --junit results\default.xml
gtr-cli run tests\Checkout.GTS --baseline-profile "Dark mode" --junit results\dark.xml
gtr-cli run tests\Checkout.GTS --baseline-profile "French" --junit results\french.xml- Eine Prüfung ohne Version für das Profil vergleicht mit ihrem Standard, und der Bericht sagt, welches Profil der Lauf verwendet hat und wie viele Prüfungen eine Version dafür hatten.
- Ein Profilname, den der Test nicht hat, führt den Standard aus, und gtr-cli sagt das und listet die Profile des Tests auf.
- Die Laufhistorie merkt sich das Profil, das jeder Lauf verwendet hat.
Tests in Ihrer Pipeline ausführen listet jede Option von gtr-cli auf.
Browser und Geräte werden anders behandelt
Ein Webtest braucht kein Profil pro Browser oder Gerät: GUI Test Runner-Recorder erzeugt eine Version des aufgezeichneten Tests für Chrome, Edge, Firefox und emulierte Telefone und Tablets, mit Bildern, die aus jedem einzelnen ausgeschnitten werden.Siehe Cross-Browser-Testing aus einer einzigen Aufzeichnung.
Baseline-Profile sind für das, was das Aussehen derselben App auf derselben Art von Bildschirm ändert: ein Design, eine Sprache, eine Skalierung, eine Windows-Version oder eine Edition Ihrer App.Das funktioniert für Desktop-Apps, Web-Apps, Spiele und Telefone gleichermaßen.
Was Sie vor dem Start wissen sollten
| Grenze | Was sie bedeutet |
|---|---|
| Ein Profil pro Lauf | Zwei Varianten sind zwei Läufe.Eine Pipeline führt den Test einmal pro Profil aus. |
| Ein gemeinsamer Suchbereich | Es gibt keinen Suchbereich pro Profil.Wenn ein Element in einer Variante weit woanders steht, vergrößern Sie den Suchbereich der Prüfung. |
| Keine Sätze pro Code-Branch | Es gibt keine getrennten Sätze erwarteter Aussehen pro Code-Branch.Um ein neues Aussehen vor der Auslieferung vorzubereiten, füllen Sie ein Profil aus Läufen und verwenden Sie bei der Auslieferung „Als Standard festlegen“. |
Das Wichtigste in Kürze
- 1Ein Test, der nur ein Aussehen erwartet, lässt einen korrekten Bildschirm scheitern, im Dunkelmodus, in einer anderen Sprache, bei einer anderen Skalierung oder unter einer anderen Windows-Version.
- 2Kopien und lockerere Prüfungen halten nicht: Die Kopien laufen auseinander, und eine lockerere Prüfung verbirgt echte Fehler.
- 3GUI Test Studio hält jede Variante in einem einzigen Test, eine Version pro Baseline-Profil, für jede Prüfung und jeden Schritt.
- 4Wo gesucht wird, wie lange gewartet wird und wie streng geprüft wird, bleibt gemeinsam, sodass keine Variante den Test nachsichtiger macht.
- 5Ein Lauf wählt eine Variante, und ein neues Aussehen entsteht, indem Sie ein durchgesehenes Ergebnis im Konfidenzbericht übernehmen.
Fragen
Warum scheitert mein automatisierter Test im Dunkelmodus?
Weil er das helle Aussehen erwartet.Jede Prüfung, die ein Bild des Bildschirms vergleicht, sieht im Dunkelmodus andere Farben und scheitert, obwohl die App funktioniert.Die Lösung ist keine lockerere Prüfung, sondern eine dunkle Version dessen, was jede Prüfung erwartet.
Wie teste ich Dunkelmodus und hellen Modus mit demselben Test?
Behalten Sie einen Test und geben Sie ihm ein Baseline-Profil Dunkelmodus.Führen Sie ihn einmal mit dem Standard und einmal unter Dunkelmodus aus: Die Schritte sind dieselben, und jede Prüfung vergleicht mit dem Aussehen der laufenden Variante.
Wie teste ich eine App in mehreren Sprachen, ohne den Test zu kopieren?
Geben Sie dem Test ein Profil pro Sprache.Unter dem Profil Französisch erwartet eine Text-Assertion die französischen Wörter, eine Bild-Assertion das französische Bild, und ein Schritt Texteingabe tippt die französische Eingabe.Eine Änderung des Ablaufs wird dann einmal für alle Sprachen gemacht.
Warum scheitern meine Tests bei einer anderen Bildschirmauflösung oder Skalierung?
Ein Laptop mit 150 % Skalierung und ein 4K-Monitor mit 100 % zeichnen dieselbe Schaltfläche mit anderen Pixeln, also passt ein auf dem einen aufgenommenes Bild nicht genau zum anderen.Fügen Sie ein Profil für diesen Bildschirm hinzu und übernehmen Sie sein Aussehen einmal aus einem Lauf, den Sie durchgesehen haben.
Was passiert, wenn eine Prüfung keine Version für die Variante hat, die ich ausführe?
Sie vergleicht mit ihrem Standard, dem Aussehen, das aufgezeichnet wurde.Der Konfidenzbericht sagt, welches Profil der Lauf verwendet hat und wie viele Prüfungen eine Version dafür hatten, sodass ein Fehlschlag wegen einer fehlenden Version leicht zu erkennen ist.
Wie aktualisiere ich das erwartete Aussehen nach einer gewollten Änderung?
Sehen Sie sich zuerst die fehlgeschlagene Prüfung an und übernehmen Sie das neue Aussehen nur, wenn die Änderung gewollt war.In GUI Test Studio erledigt das die Schaltfläche Übernehmen des Konfidenzberichts für eine Prüfung, rückgängig machbar, und Speichern schreibt es in den Test, unter dem Profil, das der Lauf verwendet hat.
Kann ich jede Variante in einer CI/CD-Pipeline ausführen?
Ja, ein Lauf pro Profil. gtr-cli nimmt --baseline-profile gefolgt vom Namen des Profils, sodass eine Pipeline den Test einmal mit dem Standard und einmal pro Profil ausführt, jeweils mit eigenen Ergebnissen.
Sollte ich für jeden Browser ein Profil anlegen?
Nicht für einen Webtest.GUI Test Studio erzeugt eine Version eines aufgezeichneten Webtests für Chrome, Edge, Firefox und emulierte Telefone und Tablets, mit Bildern, die aus jedem einzelnen ausgeschnitten werden.Baseline-Profile sind für das, was das Aussehen derselben App ändert: ein Design, eine Sprache, ein Bildschirm oder eine Windows-Version.
Playwright, Selenium, Cypress, Microsoft Word und Windows sind Marken ihrer jeweiligen Inhaber.
Weiterlesen
Alle Artikel
Visuelles Testen
Pixelgenaues Screenshot-Testing: Warum es scheitert und was echte visuelle Bugs erkennt
12 Min. Lesezeit

Visuelles Testen
Visuelle Fehler, die Tests übersehen: testen, was Nutzer wirklich sehen
10 Min. Lesezeit

Testautomatisierung
Manuelles Testen vs. automatisiertes Testen: Warum manuelles Testen bei End-to-End-Tests nicht reicht
15 Min. Lesezeit