[JAVA] So führen Sie einen automatischen Test bis zum Start des Browsers effizient durch

Hier finden Sie eine einfache Möglichkeit, alle erforderlichen Schritte auszuführen, bevor Sie Ihren Browser starten, um automatisierte Webtests mit Selenium auszuführen. Die Erklärung basiert auf der Annahme, dass Selenid verwendet wird.

Vorwort

Als Vorarbeit zum Testen mit Selen ist es natürlich notwendig, den Browser zu starten. Befolgen Sie jedoch die nachstehenden Schritte, bevor Sie den Browser starten und den Test starten.

Es gibt nichts, was Sie nicht tun können, selbst wenn Sie manuell Ihr Bestes geben. Wenn jedoch mehrere Terminals Tests ausführen, ist es schwierig, die Treiber einzeln zu aktualisieren, und erstens behindert dies die regelmäßige und stabile Testausführung. Dieses Mal werde ich beschreiben, wie diese effizient implementiert werden können.

So legen Sie den Browser fest

Um das Web zu testen, müssen Sie den zu testenden Browser angeben. Es gibt zwei Möglichkeiten, dies zu tun: Eine besteht darin, sie im Code anzugeben, und die andere darin, sie mit Laufzeitparametern anzugeben.

Wenn im Code angegeben

In Selenide werden die Einstellungen in der Konfigurationsklasse gespeichert. Wenn Sie den Browser im Quellcode angeben, beschreiben Sie Folgendes.

Configuration.browser = WebDriverRunner.CHROME

Sie können den Browser durch Schreiben wechseln.

Wenn durch Laufzeitparameter angegeben

Es sollte jedoch normalerweise auf der Notwendigkeit basieren, denselben Test in mehreren Browsern auszuführen. Daher wird der zu testende Browser normalerweise durch Laufzeitparameter umgeschaltet, anstatt direkt im Code angegeben zu werden.

Sie können den Ausführungsbrowser angeben, indem Sie mit selenide.browser wie folgt schreiben. java -Dselenide.browser=Chrome

Wenn Sie jedoch einen Browser angeben, möchten Sie auch spezifische Einstellungen für diesen Browser vornehmen. Außerdem möchte ich die Browsereinstellungen nicht einzeln in den Testcode schreiben. Hier erfahren Sie, wie Sie mit solchen Fällen umgehen.

Einstellungsmethode für jeden Browser

Dies kann gelöst werden, indem der Code aufgerufen wird, der die Parameter vor dem Start des Browsers festlegt. Unten ist der Beispielcode.

IEWebDriverProvider.java


package com.driver;


public class IEWebDriverProvider implements WebDriverProvider {
  @Override
  public WebDriver createDriver(final DesiredCapabilities desiredCapabilities) {
    InternetExplorerDriverManager.iedriver().arch32().setup();
    desiredCapabilities.setCapability("ignoreProtectedModeSettings", true);
    InternetExplorerOptions opt = new InternetExplorerOptions(desiredCapabilities)
        .destructivelyEnsureCleanSession().withAttachTimeout(10, TimeUnit.SECONDS);
    opt.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);

    return new InternetExplorerDriver(opt);
  }
}

Bereiten Sie eine Klasse vor, die WebDriverProvider implementiert, und geben Sie den Codepfad zur Laufzeit wie unten gezeigt als Parameter an. -Dselenide.browser=com.driver.IEWebDriverProvider

Auf diese Weise wird der Zeitpunkt zum Starten des Browsers speziell festgelegt WebDriverRunner.getAndCheckWebDriver(); Der obige Code, der die Browsereinstellungen konfiguriert, wird auch ausgeführt, während er ausgeführt wird.

Dieses Mal wird ein Beispiel für das Starten des IE beschrieben, es ist jedoch möglich, für jeden Browser eine Klasse für die Vorabeinstellung vorzubereiten. Der Vorteil dieser Methode besteht darin, dass Sie den Konfigurationscode in mehreren Tests wiederverwenden können, um die Sichtbarkeit des Testcodes zu verbessern, indem Sie vermeiden, die erforderlichen Voreinstellungen für den Browser in einzelnen Tests zu schreiben.

Automatische Treiberaktualisierung

Wenn Sie einen Test ausführen, schlägt der Test möglicherweise fehl, da die Version des Treibers, der auf dem Terminal installiert ist, auf dem der Test ausgeführt wird, alt ist.

Selenide enthält jedoch WebdriverManager und verfügt über einen integrierten Prozess zum automatischen Aktualisieren des Browsers, sodass Sie den Test ausführen können, ohne sich dessen bewusst zu sein. Es wird geprüft, ob der Treiber des zu verwendenden Terminals der neueste Treiber ist. Wenn dies nicht der neueste ist, wird er automatisch heruntergeladen.

Auch wenn Sie Selenide nicht verwenden, können Sie mit Webdriver Manager den gleichen Effekt erzielen.

Bei Angabe der Treiberversion

Wenn die neueste Treiberversion und die Browserversion des Testausführungsterminals nicht übereinstimmen, kann der Test nicht so ausgeführt werden, wie er ist. Daher muss die Treiberversion einzeln angegeben werden.

In diesem Fall können Sie die Treiberversion auch wie folgt angeben. java -Dwdm.chromeDriverVersion=1.99

Möglicherweise möchten Sie auch den automatischen Aktualisierungsprozess stoppen, da klar ist, dass der Treiber auf dem neuesten Stand ist, die Anzahl der Tests sehr hoch ist und Sie die Testzeit so weit wie möglich verkürzen möchten. Selbst in einem solchen Fall können Sie den Aktualisierungsvorgang stoppen, indem Sie die folgenden Einstellungen vornehmen. java -Dselenide.driverManagerEnabled=false

abschließend

Bisher haben wir vorgestellt, wie verschiedene Probleme im Zusammenhang mit dem Browser behoben werden können. Dies ist eine Voraussetzung für den Start des Tests. Wir hoffen, dass Sie diesbezüglich eine komfortable Lebensdauer für die Testautomatisierung haben.

Recommended Posts

So führen Sie einen automatischen Test bis zum Start des Browsers effizient durch
[Ruby] Wie man auskommentiert
So führen Sie einen Komponententest für Spring AOP durch
So filtern Sie den JUnit-Test in Gradle
So löschen Sie die Fehlerbündelung
So testen Sie den privaten Bereich mit JUnit
Versuchen Sie, eine Paiza-Fähigkeitsprüfung durchzuführen
[SpringBoot] So schreiben Sie einen Controller-Test
So testen Sie eine Klasse, die application.properties mit SpringBoot verarbeitet (Anfrage: darauf hingewiesen)
[Java] So testen Sie, ob es in JUnit null ist
So testen Sie Interrupts während Thread.sleep mit JUnit
JUnit 5: Wie man Testfälle in enum schreibt
So schreiben Sie Testcode mit Basic-Zertifizierung
So löschen Sie eine Ressourcendatei mit Spring-Boot