[JAVA] Automatisierung von Webanwendungstests

Inhouse-Erklärungsmaterial. Eine Übersicht über automatisierte Tests mit Selenium Webdriver.

Grundinformation

Was ist Selen?

Viele Websites sind als Framework (Bibliothek) zum Testen von Webanwendungen geschrieben, aber es ist möglicherweise einfacher, den Ausdruck "RPA-Tool für Webbrowser" zu verstehen.

Was du tun kannst

Durch Programmieren der von Menschen im Browser ausgeführten Operationen und Erstellen eines "Browser-Operationsroboters" kann der Testaufwand während der Entwicklung von Webanwendungen reduziert werden. Ich denke, das Folgende sind die Vorzüge.

  1. Sie können den Test per Knopfdruck abschließen. (Keine menschliche Arbeit erforderlich)
  2. Kann in verschiedenen Browsern getestet werden. (Abhängig von der Struktur, erfordert aber normalerweise keine Neukodierung)
  3. Werden Sie ein Vermächtnis. (Effektive Nutzung der Kosten)

Der Testaufwand bei der Entwicklung einer Webanwendung wird als Entwicklungskosten erfasst, aber ich denke, diese Testkosten sind in der Regel "verfügbar". Durch das Erstellen eines Testszenarios in Selenium kann es zu einem "Vermächtnis" werden, das danach verwendet werden kann.

Bild eines Roboters (Selen) in.

Wie benutzt man (Basic)

Verwenden Sie ein Tool namens Selenium Webdriver. Sie können Webseiten (Zeicheneingabe, Tastendruck usw.) steuern, indem Sie die Webdriver-API in einer beliebigen Programmiersprache (C #, Groovy, Java, Perl, PHP, Python, Ruby und Scala: über Wikipedia) ausführen. Ich kann es schaffen Dieses Mal werde ich vorstellen, wie man mit Java schreibt. Der folgende Export ist ein Standardmuster bei Verwendung von IE.

System.setProperty("webdriver.ie.driver", "./driver/32/IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
driver.manage().timeouts().implicitlyWait(120, TimeUnit.SECONDS);

Die eigentliche Steuerung kann mit der folgenden Syntax durchgeführt werden.

driver.findElement(By.xpath("PATH_TO_TARGET")).OPERATION("PARAMETER");

Die Bedeutung dieser Syntax besteht darin, das zu steuernde Element mit "PATH_TO_TARGET" anzugeben, den mit "PARAMETER" angegebenen Parameter anzugeben, wenn das Element gefunden wird, und die mit ".OPERATION" angegebene Operation auszuführen. Die Einstellmethode von "PARAMETER" und ".OPERATION" wird unten erläutert.

Angabe von PATH_TO_TARGET

Um ein Element auf dem Bildschirm zu steuern, muss in irgendeiner Weise angegeben werden, "wo sich das zu steuernde Element befindet (Position)". Die Methode zum Festlegen von "Koordinaten (x, y)" auf dem Bildschirm kann zuerst in den Sinn kommen. Wenn jedoch Koordinaten festgelegt sind, unterscheidet sich die Position je nach Größe der Anzeige oder des Fensters, sodass sie zur Laufzeit fehlschlägt. Es besteht die Sorge, dass es mehr Fälle geben wird (geringe Laufzeitgenauigkeit). Infolgedessen können Sie mit Selen Elemente auf genaue, koordinatenunabhängige Weise angeben.



Das Eingabefeld für das Suchwort von Yahoo beginnt beispielsweise mit dem Tag und endet mit dem Tag , wie im obigen Bild gezeigt. Der Pfad von zu heißt xpath. Der x-Pfad des Eingabeelements lautet wie folgt.

/html/body/div[1]/div[1]/div[3]/form/fieldset/div[1]/p/label/input

Bezeichnung des BETRIEBS

Nachdem Sie nun wissen, wie Sie ein Element identifizieren, müssen Sie angeben, welche Aktion für dieses Element ausgeführt werden soll (Teil .OPRERATION). Die wichtigsten sind Klicks und Zeichenfolgeneingabe, wie oben erwähnt.

Operation OPERATION
klicken click
Eingabe der Zeichenkette sendkeys

Unten finden Sie ein Beispiel für das Klicken auf einen Hyperlink.

driver.findElement(By.xpath("PATH_TO_TARGET")).click();

Das folgende Beispiel zeigt die Eingabe einer Zeichenfolge in das Eingabeelement.

driver.findElement(By.xpath("PATH_TO_TARGET")).sendkeys("PARAMETER");

Spezifische Verwendung

Jeder, der eine Programmiersprache berührt hat, kann dies tun. Ich habe früher vorgestellt

driver.findElement(By.xpath("PATH_TO_TARGET")).OPERATION("PARAMETER");

Es ist sehr einfach, weil Sie es einfach auf die automatisierten Prozesse anwenden und diese anordnen. Es ist notwendig, den Schreibstil je nach Steuerelement auf dem Bildschirm, das Sie steuern möchten, geringfügig zu ändern. Wenn Sie sich jedoch an die beiden zuvor eingeführten Typen und die Steuerungsmethode des Dropdown-Listenfelds erinnern (dies hat auch einen Standard), 7 ~ Es scheint, dass 80% der Verarbeitung abgedeckt werden können.

Vergleichsmittel mit erwarteten Werten

Wie beim manuellen Test (Tastenanschlag) ist es grundsätzlich erforderlich, das Ergebnis für die gegebene Eingabe (bestanden / nicht bestanden) zu beurteilen. Es ist einfach, einen Testfall mit einem Testframework wie JUnit zu erstellen und ein Urteil zu fällen. Wir werden zwei Arten von Beurteilungsmethoden einführen.

Vergleichen Sie mit der erwarteten Wertzeichenfolge für die Eingabe

Dies ist die Standardmethode. Das für die Eingabe erhaltene Ergebnis wird vom Bildschirm aufgenommen und mit dem zuvor durch Assert vorbereiteten Wert verglichen. Im Fall von JUnit können Sie auf einen Blick den Testfall sehen, der fehlgeschlagen ist, weil das Bewertungsergebnis falsch war.

Vergleichen Sie mit dem Bild des erwarteten Eingabewerts

Selen hat auch die Funktion, einen Screenshot zu erstellen, mit dem das gewünschte Bild abgerufen und mit dem erwarteten Wertbild verglichen wird. Im Vergleich zu Zeichenketten ist viel Arbeit erforderlich, aber es ist ein wirksames Mittel für Regressionstests, wenn die Version des Webanwendungsservers und die Version des verwendeten Browsers aktualisiert werden. Ich werde auf die ausführliche Einführung verzichten, aber Sie können den Vergleich von Bildern mithilfe von Software wie ImageMagic einfach und kostengünstig automatisieren.

Beispielcode erstellen. https://github.com/knsquai/BrowserAutoTest

Wir suchen Freunde, die mit uns zusammenarbeiten, um die Testautomatisierung zu fördern. https://www.nittsu-infosys.com/recruit/2019/index.html

Recommended Posts

Automatisierung von Webanwendungstests
Ich habe die Testautomatisierung untersucht
Testen Sie die Web-API mit junit
[Spring Boot] Erstellung von Webanwendungen
Mit Docker erstellte Webanwendung (1)
Rails-Webserver und Anwendungsserver
Prüfung
Prüfung
Erstellen Sie eine Webanwendung mit Javalin
Prüfung
Ich möchte eine Webanwendung entwickeln!
Versuchen Sie es mit dem Java Framework Nablarch [Web Application]
Erstellen Sie mit Dropwizard eine einfache Webanwendung
Starten Sie die Entwicklung von Webanwendungen mit Spring Boot
Produktion persönlicher Anwendungen 2 Einführung der WEB-Schriftart
Rolle von JSP in Webanwendungen [Java]
Führen Sie die WEB-Anwendung mit Spring Boot + Thymeleaf aus
Erstellen Sie einen Webanwendungsserver (Java) auf VPS