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.
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.
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.
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.
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.)
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.
--BeforeClass () effectue les opérations suivantes:
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.
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>
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>
Comme décrit dans la préparation du code de test, si vous souhaitez démarrer avec Chrome, procédez comme suit.
c'est tout.
Recommended Posts