[JAVA] Comment effectuer efficacement un test automatique jusqu'au démarrage du navigateur

Voici un moyen simple de faire tout ce que vous devez faire avant de lancer votre navigateur pour exécuter des tests Web automatisés à l'aide de Selenium. L'explication est basée sur l'hypothèse que le sélénide sera utilisé.

Préface

En guise de travail préliminaire pour tester avec Selenium, il est bien entendu nécessaire de démarrer le navigateur. Cependant, il est nécessaire de suivre la procédure ci-dessous avant de démarrer le navigateur et de lancer le test.

Il n'y a rien que vous ne puissiez pas faire même si vous faites de votre mieux manuellement, mais s'il y a plusieurs terminaux qui exécutent des tests, il est difficile de mettre à jour les pilotes un par un, et en premier lieu, cela entrave l'exécution régulière et stable des tests. Donc, cette fois, je décrirai comment les mettre en œuvre efficacement.

Comment spécifier le navigateur

Lors du test du Web, il est nécessaire de spécifier le navigateur à tester. Il existe deux façons de le faire, l'une consiste à le spécifier dans le code et l'autre à le spécifier avec des paramètres d'exécution.

Lorsque spécifié dans le code

Dans Selenide, le paramètre est stocké dans la classe Configuration, et lorsque vous spécifiez le navigateur sur le code source, décrivez comme suit.

Configuration.browser = WebDriverRunner.CHROME

Vous pouvez changer de navigateur en écrivant.

Lorsqu'il est spécifié par le paramètre d'exécution

Cependant, il devrait généralement être basé sur la nécessité d'exécuter le même test sur plusieurs navigateurs. Par conséquent, le navigateur à tester est généralement commuté par des paramètres d'exécution plutôt que d'être spécifié directement dans le code.

Vous pouvez spécifier le navigateur d'exécution en écrivant comme suit à l'aide de selenide.browser. java -Dselenide.browser=Chrome

Cependant, lorsque vous spécifiez un navigateur, vous souhaitez également définir des paramètres spécifiques à ce navigateur. De plus, je ne veux pas écrire les paramètres du navigateur dans le code de test un par un. Voici comment traiter de tels cas.

Méthode de paramétrage pour chaque navigateur

Cela peut être résolu en appelant le code qui définit les paramètres avant le processus de démarrage du navigateur. Voici l'exemple de code.

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);
  }
}

Préparez une classe qui implémente WebDriverProvider et, en outre, donnez le chemin du code en tant que paramètre au moment de l'exécution, comme indiqué ci-dessous. -Dselenide.browser=com.driver.IEWebDriverProvider

Ce faisant, le moment du démarrage du navigateur, en particulier WebDriverRunner.getAndCheckWebDriver(); Le code ci-dessus qui configure les paramètres du navigateur est également exécuté lors de son exécution.

Cette fois, un exemple de démarrage d'IE est décrit, mais il est possible de préparer une classe à définir à l'avance pour chaque navigateur. L'avantage de cette méthode est que vous pouvez réutiliser le code de configuration dans plusieurs tests pour améliorer la visibilité du code de test en évitant d'écrire les préréglages nécessaires pour le navigateur dans des tests individuels.

Mise à jour automatique du pilote

Lors de l'exécution d'un test, le test peut échouer car la version du pilote installé sur le terminal sur lequel le test est exécuté est ancienne.

Cependant, Selenide inclut WebdriverManager et dispose d'un processus intégré pour mettre à jour automatiquement le navigateur, afin que vous puissiez exécuter le test sans en être conscient. Il vérifie si le pilote du terminal à utiliser est le dernier pilote, et s'il ne s'agit pas du dernier, il sera téléchargé automatiquement.

Même si vous n'utilisez pas Selenide, vous pouvez obtenir le même effet en utilisant Webdriver Manager.

Lors de la spécification de la version du pilote

Si la dernière version du pilote et la version du navigateur du terminal d'exécution de test ne correspondent pas, le test ne peut pas être exécuté tel quel, il est donc nécessaire de spécifier la version du pilote individuellement.

Dans ce cas, vous pouvez également spécifier la version du pilote comme suit. java -Dwdm.chromeDriverVersion=1.99

Vous pouvez également arrêter le processus de mise à jour automatique car il est clair que le pilote est à jour, le nombre de tests est énorme et vous souhaitez raccourcir le plus possible la durée du test. Même dans un tel cas, vous pouvez arrêter le processus de mise à jour en définissant comme suit. java -Dselenide.driverManagerEnabled=false

en conclusion

Jusqu'à présent, nous avons présenté comment éliminer divers problèmes liés au navigateur, ce qui est une condition préalable au démarrage du test. Nous espérons que vous aurez une vie d'automatisation de test confortable en référence à cela.

Recommended Posts

Comment effectuer efficacement un test automatique jusqu'au démarrage du navigateur
[Ruby] Comment commenter
Comment faire un test unitaire de Spring AOP
Comment filtrer JUnit Test dans Gradle
Comment désactiver le regroupement d'erreurs
Comment tester l'étendue privée avec JUnit
Essayez d'effectuer un contrôle des compétences paiza
[SpringBoot] Comment écrire un test de contrôleur
Comment tester une classe qui gère application.properties avec SpringBoot (requête: signalée)
[Java] Comment tester s'il est nul dans JUnit
Comment tester les interruptions pendant Thread.sleep avec JUnit
JUnit 5: Comment écrire des cas de test dans enum
Comment écrire du code de test avec la certification de base
Comment sortir un fichier de ressources avec spring-boot