Inhouse-Erklärungsmaterial. Eine Übersicht über automatisierte Tests mit Selenium Webdriver.
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.
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.
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.
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.
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
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");
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.
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.
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.
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