Einführung
In Seki Java dieses Monats wurde Selen vorgestellt. Ich denke, dass dies für Ingenieure nützlich sein wird, die an E2E-Tests mit einer Vielzahl von Inhalten arbeiten, wie z. B. Selenides Anwendungsfällen vor Ort und Trends des Selenium-Projekts.
Ab der Mitte ist der Akku des Mac nicht ausreichend und es handelt sich um eine grobe Notiz. Es tut mir Leid.
Überblick
Kansai Java Engineers Association 8/5 - Selenium
Datum: 05.08.2017 (Sa) 14: 00-17: 00 Uhr
Ort: Mietkonferenzraum "Use Tsu" Fuji Co., Ltd.
Fragebogen zum Veranstaltungsort
Leute, die es benutzt haben
- Selenium ... Über 70%
- Selenid ... Über 20%
--Fluent Lenium ... 1 Person
Was ich im Test mit Selenide entwickelt habe und was ich versuche zu tun
Moderator: backpaper0
- Rahmenwerk, das den Selenium Web Driver für eine einfache Verwendung umschließt
- Für den E2E-Test
- CodeBorne (Estland)
- Es gibt auch ein Seleid-Appium
Weitere Informationen finden Sie unter [Web + DB Press Vol.100 "[9.] Automatischer Browsertest mit Selenide ... Von der Verwendung zu Problemen im Feld"](http://gihyo.jp/magazine/wdpress/archive/2017 / vol100) gepostet
- Sie können wie jQuery schreiben
- Ajax ist leicht zu testen
- Es gibt einen Wiederholungsmechanismus
- Einfache Festlegung von Basis-URL und WebDriver als Systemeigenschaften
Aktuelle Bemühungen
- Bedienen Sie manuell und drücken Sie den Druck von Excel auf Selenide, um die Testautomatisierung an Ihren Chef weiterzuleiten
- Selenide automatisiert E2E-Tests während der Durchführung von Scouts
- Die akzeptierenden Personen bestätigen den Sukusho
Entwickelt werden
Ich möchte überprüfen, ob die Seite wie erwartet angezeigt wird
Überprüfen Sie dies, indem Sie den Bildschirmnamen in das Metaelement einfügen
⇒ Da es sich um eine Geschäftsanwendung handelt, ändert sich das Titel-Tag nicht für jeden Bildschirm
Ich möchte auf den Abschluss der Erstverarbeitung warten
Ich habe shouldBe
verwendet, da die ursprünglich angezeigten Daten auch von Ajax erfasst werden. Es wird erneut versucht, ohne zu warten.
//Überprüfen Sie den Status
$("#state").shouldBe(exactText("initialized"))
IE funktioniert nicht wie erwartet
--Chrome kann gut getestet werden
- Ihr Standardbrowser ist IE ⇒ Es ist schwierig, weil es nicht wie erwartet funktioniert
Für IE
Ich kann nicht richtig eingeben, wenn ich die val-Methode aufrufe
(Wenn Sie mit sendKey jeweils ein Zeichen eingeben, funktioniert dies ...)
⇒ Da Sie Command mit Commands # add
überschreiben können, hacken Sie dies und passen Sie das Verhalten des IE an
IE ist langsam
(Zum Teil, weil ich Command gehackt habe)
Remote-Ausführung auf einem anderen PC
- Falls Sie den Vorgang während der Implementierung leicht überprüfen möchten, funktioniert er mit Chrome in der lokalen Entwicklung
- Nehmen Sie StackTrace und wechseln Sie zwischen IE und Chrome
Ich möchte den Testlauf ausführen, sobald ich den Code von VCS ausgecheckt habe
Es ist mühsam, die Einstellungsdatei entsprechend der Umgebung neu zu schreiben
- JDBC-Verbindungsinformationen
- Temporärer Dateispeicher
--Chrome-Treiber, IE-Treiberstandort
↓
--Verwenden Sie den "Zustand" und das "Profil" von Spring Boot
--Stellen Sie die Basis-URL, den Zielbrowser usw. mit "TestRule" ein
if (System.getProperty("selenide.baseUrl") == null) {
System.setProperty("selenide.baseUrl", "http://localhost:8080");
}
von jetzt an
--DBUnit zur Eingabe von Testdaten und zur Überprüfung der DB
- Ich möchte ein Seitenobjekt halbautomatisch generieren
Beispiel)
Nachdem Sie einen Selektor mit einer Anmerkung in das Seitenobjekt geschrieben haben, rufen Sie den Wert ab und legen Sie ihn in dieser Variablen fest
- Japanische Methode + Methodenkette
※Bild
Setzen Sie den Wert auf foo("Huh")
.Klicken Sie auf die Leiste()
Frage
F. Gab es etwas Instabiles (Langsames), das auf asynchrone Verarbeitung wartete?
- Derzeit gibt es keine schwere Verarbeitung, die so viel Wartezeit verursacht
- Sie können das maximale Zeitlimit ändern
- Selenide fragt zusätzlich zur Wiederholungszeit während der asynchronen Überprüfung 0,1 Sekunden lang intern ab.
Frage: Wie gehst du mit deinem Sukusho um?
- Ordnerverwaltung für jede Testklasse
F. Ist es möglich, durch Hochladen von Dateien D & D oder mehrere Dateien hochzuladen?
――D & D verwendet eine gemeinsame Bibliothek, sodass sie möglicherweise vom Testziel ausgeschlossen wird.
F. Kann ich mich bei BASIC authentifizieren?
- Das habe ich noch nie gemacht. Kannst du es nicht nur während des Tests ändern?
- Es gibt eine Möglichkeit, dies zu vermeiden, indem Sie es in die URL schreiben
--ID und PW können als Argumente der Open-Methode von Seleniud angegeben werden
Frage: Verwenden Sie kopflos?
- verwende nicht
- Ich habe den Entwickler tatsächlich die Bewegung sehen und den Betrieb überprüfen.
F. Wird der Testcode zum Zeitpunkt der Implementierung vom Implementierer geschrieben?
- Der Implementierer hat zum Zeitpunkt der Implementierung auch den E2E-Test geschrieben
- Der Implementierer verfügt über einen Selektor für die bequeme E2E-Prüfung.
Frage: Warum haben Sie sich für Selenide entschieden?
- Es scheint einfach zu bedienen
――Es scheint, dass es erweitert werden kann, wenn etwas passiert
Beispiel für die Entwicklung einer DSL-ähnlichen E2E-Testinfrastruktur durch Selenide in Osaka
Moderator: @ shimashima35
Präsentationsmaterial
Die ursprüngliche Geschichte ist der folgende Artikel
Beispiel für die Entwicklung einer automatischen DSL-ähnlichen E2E-Testinfrastruktur von Selenide
Zweck der Infrastrukturentwicklung
- Hohe Wartbarkeit und Produktivität
- Wenn möglich, erlauben Sie dem Planer, den Test selbst zu schreiben
Hierarchisches Seitenobjektmuster eingeführt
BasePage
--Abstrakte Klasse
- Es werden nur Selektoren beschrieben
- Abhängig von der WebDriver / Selenide-API
- Der Selenid-Typ wird auch in der Methodensignatur angezeigt
Page
- BasePage erben
- Szenario aus der Testklasse
- Grundsätzlich gibt es keine Auswahlbeschreibung
Eliminierung des direkten Betriebs von Selen / Selenid
--Page Object verbirgt die Selen / Selenide-Implementierung vor Testszenarien
- Konzentrieren Sie sich auf Szenarien
- Holen Sie sich den Spezifizierer, um den Test zu schreiben
Voll japanische Methode
- Weil es das Gehalt der Steuerbuchhaltung abdeckt
- Damit auch Nicht-Programmierer Tests schreiben können
Datenregistrierung durch Pseudo Builder Pattern
--Erstellen Sie die im Testszenario verwendeten Daten innerhalb des Szenarios
- Bereiten Sie die Registrierungsmethode mit dem Pseudo Builder-Muster vor
- Sie können die Komplementärfunktion von IDE verwenden
Vereinheitlichung gängiger Bildschirmelemente durch Mix-In
- Die Bildschirmkreuzung verwendet die Standardmethode der Java 8-Schnittstelle
Feines Objekt von Bildschirmelementen
- Alle Kontexte sind klassifiziert (innere Klasse)
Objektivieren Sie den Rückgabewert für Pseudo-DSL
--IDE Komplement kann verwendet werden
Aufnahmefunktion
- Grundsätzlich werden alle Vorgänge aufgezeichnet
- Löschen Sie, wenn der Test erfolgreich ist
――Nur das Video bleibt erhalten, wenn Sie versagt haben
--Kann mit einem Screenshot-Codec auf 1/100 reduziert werden
- Monte media Library
-Nicht erforderlich, wenn Sie BrowserStack usw. verwenden.
Nach der Gründung der Stiftung ...
――Ich habe die Grundlage geschaffen, aber die Implementierung des Szenarios wurde nicht fortgesetzt
- Kann nach der Migration zu AWS nicht aufgezeichnet werden
- Szenario wird nicht gepflegt
Eine Geschichte, die durch die Einführung von FluentLenium beunruhigt wurde.
Moderator: @kitkat_twit
FluentLenium
- Schnellstart funktioniert nicht
--Webdriver Einstellungen erforderlich
- In erster Linie sind Kenntnisse über Selen als Voraussetzung erforderlich
Vorbereitung der Testdaten
--DBUnit ... Große Datenmenge
--DBSetup… DAO / Repository-Komponententest
Abwicklung von Testprojekten
- Möchten Sie das gleiche Projekt machen?
- Arbeiten Sie mit dem Unit-Test?
⇒ Ist es nicht besser, ein anderes Projekt zu haben?
Abgesehen davon ist es jedoch leicht zu vergessen, es zu bewegen.
Ersatz für den Selenium Committer Day 2017 in Osaka
Moderatorin: Naoya Kojima / @jugemix
Frühere Geschichte:
[Comitter spricht über die Gegenwart und Zukunft des Selen-Berichts "Selenium Committer Day 2017"](ttp: //gihyo.jp/news/report/2017/07/2601)
Jim Evans - Die Zukunft des Selens
Jim Evans ... Ehemalige MS, jetzt Salesforce
Selen jetzt
Slenium v3
--Gecko-Treiber wird jetzt für Firefox-Tests benötigt
--WebDriver ⇒ Vor der W3C-Empfehlung
Die Zukunft von Selen
Selenium v4
--W3C Empfehlung
- Von nun an entwickelt jeder Browser-Anbieter WebDriver gemäß den Spezifikationen.
In der fernen Zukunft
- Das Projekt wird vom Browser-Anbieter, der den Treiber entwickelt, verkleinert.
--Dokumentenprobleme
- Die offizielle Dokumentation ist noch v2
――Da es sich um ein Freiwilligenprojekt handelt, reichen die Ressourcen nicht aus.
Marcus Merrell - Analytische Testautomatisierung
Marcus Merrell… QS-Ingenieur
User Analytics
Fehlergeschichte im A / B-Test
- Normalerweise QS-Tests und dann Freigaben
--Coupon-Anzeige ohne QA-Wissen freigegeben
- Fehler aufgetreten, wenn weniger beliebte Gutscheine angezeigt werden
Analytics QA
--QA ist vom Entwurfsprozess isoliert
――QA sollte aktiv einbezogen werden
- Es gibt Browsermob-Proxy als Werkzeug dafür.
- Indem Sie es in den Test einbeziehen, können Sie die Antwort des Browsers usw. erfassen.
- Kibana kann aggregiert und erfasst werden
Manoj Kumar-Test mit einem Container
Testen mit Docker
--Docker ist praktisch für die verteilte Ausführung mit Selenium Grid
QA-Podiumsdiskussion
Ich habe [Slido.com] verwendet (https://www.sli.do)
Selenium Committer Day 2017 "Q & A Podiumsdiskussion" Auditbericht #Seleniumjp
Impressionen
- Die Tools und das Know-how rund um Selen wurden verbessert, um die Automatisierung von E2E-Tests in Entwicklungsprojekten zu vereinfachen.
―― Insbesondere kann Selenide wie jQuery implementiert werden, sodass der Schwellenwert für Implementierer niedrig ist und es einfach zu sein scheint, vor Ort Verständnis zu erlangen.
- Ein gemeinsames Design wie Page Object ist erforderlich, um die Produktivität und Wartbarkeit der Testcodeerstellung ernsthaft zu beeinträchtigen
――Es ist wichtig für Produktivität und Wartbarkeit, eine gemeinsame Grundlage zu schaffen und das Testen zu vereinfachen. Ob E2E-Tests jedoch kontinuierlich verwendet werden können oder nicht, ist wahrscheinlich ein weiteres Problem und erfordert ein Verständnis der E2E-Tests während des gesamten Entwicklungsprojekts.
- Die Aufnahmefunktion kann bequem sein
- Die allgemeine Methode zum Erstellen von Testdaten mit Tools wie DBUnit (ich hatte das Gefühl, dass das Know-how in diesem Bereich noch in der Zukunft liegt).
――Ich würde gerne die W3C-Empfehlung und die anschließende Bereitstellung von WebDriver durch den Browserhersteller erwarten, aber ich mache mir Sorgen (wird der IE die Anforderungen ordnungsgemäß erfüllen?)
- Ich möchte Selen-Docker verwenden (oder besser gesagt, die Anzahl der E2E-Tests nach Bedarf erhöhen ...)