[JAVA] De la configuration à l'utilisation de l'enrobeuse Selenium Selenide

introduction

Maintenant que je connais Selenide, le wrapper facile à utiliser de Selenium, j'ai tout résumé, de la configuration à la création d'échantillons.

Même l'exemple qui fonctionne réellement est écrit, donc si vous voulez le faire fonctionner, essayez-le.

L'exemple est un simple servlet qui affiche simplement le texte que vous avez mis dans la zone de texte, et l'image du test automatisé ressemble à ceci: L'implémentation du servlet est décrite dans l'annexe 2 à la fin de cet article.

image.png

URL de référence

Les URL auxquelles j'ai fait référence sont les suivantes. Partout était une très bonne référence. Depuis que la version de Selenide a été mise à jour et que le lien a été rompu, cet article a été créé avec les informations à partir de 2018/01.

Qu'est-ce que le sélénide

Selenide est un wrapper pour Selenium, un cadre de test d'interface utilisateur. Quant à l'impression que j'ai utilisée, elle m'a semblé rapide et le coût d'apprentissage était faible.

Si vous commentez l'extrait de l'explication de Page officielle http://selenide.org/,

Selenide is a framework for test automation powered by Selenium WebDriver  
that brings the following advantages:

- Concise fluent API for tests
- Ajax support for stable tests
- Powerful selectors
- Simple configuration

(Selenide est un framework de test automatisé basé sur Selenium WebDriver.
Il présente les avantages suivants:
 -API de test concis et fluide
 -Prend en charge Ajax pour des tests stables
 -Fonction de sélection puissante *
* Des sélecteurs tels que ID, CSS et requête peuvent être utilisés.
 -Réglage facile)

On dirait.

Paramètres d'utilisation de Selenide

Si vous utilisez maven, ajoutez ce qui suit à pom.xml.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.example</groupId>
  <artifactId>selenideexample</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>selenideexample</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
<!--Voici le décor de Selenide-->
	<dependency>
	    <groupId>com.codeborne</groupId>
	    <artifactId>selenide</artifactId>
	    <version>4.9.1</version>
	</dependency>
<!--C'est le réglage de Selenide-->
	<dependency>
	    <groupId>junit</groupId>
	    <artifactId>junit</artifactId>
	    <version>4.12</version>
	</dependency>
  </dependencies>
</project>

D'autres paramètres tels que gradle et ivy sont décrits en détail dans 1) de l'URL de référence.

À propos, la dernière version de Selenide peut être trouvée en recherchant sur Google et maven Selenide. Vous pouvez le trouver sur https://mvnrepository.com/artifact/com.codeborne/selenide. Vous pouvez également copier la description de la dipendance de maven et gradle ici.

Code de test

Préparation avant ça

Il est nécessaire de déployer à l'avance WebDriver et ChromeDriver.exe de Selenium. Voir l'annexe 3 et les commentaires sur le code à la fin de cet article. Il est également écrit en 3) de l'URL de référence. (Cependant, le lien de téléchargement était rompu.)

Code JUnit

Le code de test Java est ci-dessous.

EchoJspTest.java


package com.example;

import org.junit.BeforeClass;
import org.junit.Test;

import com.codeborne.selenide.Configuration;
import com.codeborne.selenide.Condition;
//import static com.codeborne.selenide.Condition.*;//Vous pouvez importer statique.
import com.codeborne.selenide.Selenide;
//import static com.codeborne.selenide.Selenide.*;//Vous pouvez importer statique.
import com.codeborne.selenide.WebDriverRunner;

public class EchoJspTest {
	
	@BeforeClass
	public static void beforeClass() {
		//Par défaut, FireFox est utilisé, donc Chrome est configuré pour être utilisé.
		Configuration.browser = WebDriverRunner.CHROME;
		
		//Préparation préalable
		// 1) <project>/lib/faire.(lib peut être n'importe quel nom et emplacement)
		// 2)Client pilote Web Java-combined-3.8.1.jar et libs<project>/lib/Placer dans.
		//Pilote Java(jar)Est http://docs.seleniumhq.org/download/Vous pouvez le télécharger à partir de.
		//    "Selenium Client & WebDriver Language Bindings"Cliquez sur le lien Téléchargement du langage Java.
		// 3) 2)Ajoutez tous les fichiers JAR au chemin de la bibliothèque.
		// 4) <project>/lib/chromedirver.Mettez exe dedans.
		//exe est https://sites.google.com/a/chromium.org/chromedriver/Vous pouvez le télécharger à partir de téléchargements.
		
		//Chromedriver comme ci-dessous.Spécifiez le chemin d'accès exe dans les propriétés système.
		System.setProperty("webdriver.chrome.driver", "./lib/chromedriver.exe");
	}
	
	@Test
	public void echoButtonTest() {
		//Séléniure lors de l'importation statique.Et Condition.Effacer.
		//C'est plus lisible, mais j'ose utiliser l'importation normale pour l'apprentissage.
		Selenide.open("http://localhost:8080/selenideexample/EchoServlet");
		Selenide.$("#input_text").val("Hello World");
		Selenide.$("#echo_button").click();
		Selenide.$("#output_text").shouldHave(Condition.text("Hello World"));
	}

}

Dans la méthode echoButtonTest Sélectionnez la zone de texte avec l'ID input_text et saisissez la valeur, Après cela, cliquez sur le bouton avec l'ID echo_button, Vérifiez ensuite la valeur du champ avec l'ID output_text Faire.

Je pense que ce sera plus facile à comprendre si vous regardez également l'image ci-dessus et le JSP en annexe.

point

--BeforeClass () effectue les opérations suivantes:

Résumé

Comme vous pouvez le voir sur la page officielle, l'API était facile à comprendre et le test était écrit facilement, et le test pouvait être mis en œuvre sans se soucier de l'ouverture et de la fermeture du navigateur et du délai d'expiration.

appendice

1. Structure des fichiers de l'ensemble du projet

L'emplacement du code ci-dessus et du code du servlet, JSP, Web.xml, pom.xml est le suivant.


|   pom.xml   ........... ★pom.fichier xml
|
+---lib   ...............★ Pilote Web et pilote chorome.Où tu mets l'exe
|   |   chromedriver.exe
|   |   client-combined-3.8.1.jar
|   |
|   `---libs
|           byte-buddy-1.7.5.jar
|           commons-codec-1.10.jar
|           commons-exec-1.3.jar
|           commons-logging-1.2.jar
|           gson-2.8.2.jar
|           guava-23.0.jar
|           httpclient-4.5.3.jar
|           httpcore-4.4.6.jar
|
+---src
|   +---main
|   |   `---java
|   |       `---com
|   |           `---example
|   |                   EchoServlet.java   .....★ Servlet
|   |
|   `---test
|       `---java
|           `---com
|               `---example
|                       EchoJspTest.java   .....★ Cas de test
|
`---WebContent
    +---META-INF
    |       MANIFEST.MF
    |
    `---WEB-INF
        |   echo.jsp   ......................... ★JSP
        |   web.xml   .......................... ★web.xml
        |
        `---lib

web.xml se présente comme suit.

web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.0" 
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
	<servlet>
		<servlet-name>selenide-example</servlet-name>
		<servlet-class>com.example.EchoServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>selenide-example</servlet-name>
		<url-pattern>/EchoServlet</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>echo.jsp</welcome-file>
	</welcome-file-list>
</web-app>

2. Testez le servlet et le code JSP

Le servlet s'affiche simplement avec Get, remplit les valeurs avec POST et appelle doGet.

EchoServlet.java


package com.example;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class EchoServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		RequestDispatcher dispatcher = req.getRequestDispatcher("WEB-INF/echo.jsp");
		dispatcher.forward(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String val = req.getParameter("echo");
		System.out.println(val);
		req.setAttribute("echo", val);
		doGet(req, resp);
	}
}

Le JSP est comme indiqué dans l'image du haut. \ <div id = "output_text" > pour prendre le texte Il est décrit comme.

echo.jsp


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Echo</title>
</head>
<body>
	<form method="post" action="./EchoServlet">
		<input id="input_text" type="text" name="echo"/>
		<br/>
		<button id="echo_button" type="submit">Echo</button>
		<br/>
		<div id="output_text"><c:out value="${echo}" /></div>
	</form>
</body>
</html>

3. Configuration de Selenium WebDriver et ChromeDriver.exe

Comme décrit dans la préparation du code de test, si vous souhaitez démarrer avec Chrome, procédez comme suit.

  1. Téléchargez le pot Selenium Depuis http://docs.seleniumhq.org/download/ Situé sous Selenium Client & WebDriver Language Bindings Cliquez sur Télécharger Java (pas en haut)  image.png
  2. Ajoutez le fichier jar téléchargé au chemin de la bibliothèque (Pour Eclipse, ajoutez-le à partir de Build Path avec Add Jar dans l'onglet Bibliothèques.)  image.png
  3. Téléchargez ChromeDirver.exe et placez-le n'importe où sous votre projet Téléchargement depuis https://sites.google.com/a/chromium.org/chromedriver/downloads

c'est tout.

Recommended Posts

De la configuration à l'utilisation de l'enrobeuse Selenium Selenide
De l'introduction à l'utilisation de byebug
De la traction des rails image-docker au lancement
Résumé de la mousse lors de la mise à jour de JMockit 1.4 vers 1.30
De l'introduction de la conception à la création de la table des utilisateurs
Comment écrire Scala du point de vue de Java
[Eclipse] Résumé des paramètres d'environnement * Mis à jour de temps en temps
Comment empêcher editTextPreference de Android PreferenceFragmentCompat de se rompre
[Ubuntu20.04] De l'installation ROS-noetic à la simulation SLAM de turtlebot3