IDE:eclipse(Oxygen.3) Langue: Java
Jusqu'à la construction de l'environnement Créez un nouveau projet Maven dans eclipse. Entrez le code suivant et exécutez → Maven Install
<dependencies>
<!-- Selenide -->
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>5.9.0</version>
<scope>test</scope>
</dependency>
<!-- JUnit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- XlsMapper(Lecture Excel) -->
<dependency>
<groupId>com.github.mygreen</groupId>
<artifactId>xlsmapper</artifactId>
<version>2.1</version>
</dependency>
Je vais omettre les détails car je pense qu'il est plus facile de comprendre ce qui est expliqué ailleurs. Je pense que XlsMapper est bien compris dans la documentation officielle. C'était une méthode que j'avais l'habitude de faire personnellement, mais il était facile de coder comment créer une classe de page et de définir les actions qui peuvent être effectuées dans la page. D'ailleurs, avec cette méthode, je sens qu'il est difficile de mettre en œuvre lorsque l'opération qui peut être effectuée sur un écran change de manière dynamique.
PageBase.java
public class PageBase {
protected SelenideElement hoge() {
return $("input[name='hoge']");
}
protected SelenideElement fuga() {
return $("input[name='fuga']");
}
}
Page.java
public class Page extends PageBase {
//Définissez la valeur sur hoge
public void setHoge(String hoge) {
hoge().val(hoge);
}
//Cliquez sur fuga
public void clickFuga(){
fuga().pressEnter();
}
}
Cependant, en préparant la classe Page de cette manière, il est possible de l'implémenter en les appelant simplement dans la partie Logic.
Logic.java
public class Logic {
public void doLogic(String hoge){
Page pg = new Page();
//Définissez la valeur sur hoage et cliquez sur fuga
pg.setHoge(hoge);
pg.clickFuga();
//Prendre une capture d'écran
Selenide.screenshot("hogefuga");
}
}
Test.java
public class Test {
@before
public void setup(){
//Spécifiez le type de navigateur à ouvrir (IE)
Configuration.browser = WebDriverRunner.INTERNET_EXPLORER;
System.setProperty("webdriver.ie.driver", "C:\\eclipse\IEDriver\IEDriverServer.exe");
//Spécifiez où enregistrer la capture d'écran
Configuration.reportsFolder = "/sample/testFolder/";
//Ouvrez le site spécifié dans le navigateur
open("https://qiita.com");
}
@Test
public void doTest(){
Logic logic = new Logic();
logic.doLogic("sample");
}
@after
public void tearDown(){
//Fermer le navigateur
Selenide.closeWebDriver();
}
}
Il s'agit de la mise en œuvre du test d'écran à l'aide de Selenide. Dans le cas ci-dessus, le site est ouvert, "sample" est entré dans l'élément hoge, l'élément fuga est cliqué et le navigateur est fermé. Utilisez maintenant XlsMapper pour définir la valeur de "sample" sur la valeur Excel pré-remplie. Préparez une classe distincte pour l'implémentation de XlsMapper. La méthode d'implémentation diffère selon qu'il existe plusieurs valeurs ou une seule valeur. Premièrement, s'il n'y a qu'une seule valeur, préparez une classe Data.
Data.java
@XlsSheet(name="testSheet")
public class Data{
@XlsLabelledCell(label="hoge" type=LabelledCellType.Right)
public String hoge;
}
Test.java
@Test
public void doTest(){
XlsMapper xlsMapper = new XlsMapper();
Data data = xlsMapper.load(
new FileInputStream("testExcel.xlsx"),
Data.class);
Logic logic = new Logic();
logic.doLogic(data.hoge);
}
En implémentant de cette manière, vous pouvez récupérer la valeur Excel. S'il existe plusieurs valeurs, créez une classe Sheet et une classe Data, et implémentez le chargement de données en chargeant la classe Sheet.
Sheet.java
@XlsSheet(name='testSheet')
public class Sheet {
@XlsHorizontalRecords(tableLabel="Liste de données", recordClass=Data.class)
public List<Data> dataList;
}
Data.java
public class Data {
@XlsColumn(columnName="hoge")
@XlsTrim
public String hoge;
}
Test.java
@Test
public void doTest(){
XlsMapper xlsMapper = new XlsMapper();
Sheet sheet = xlsMapper.load(
new FileInputStream("testExcel.xlsx"),
Sheet.class);
Logic logic = new Logic();
for(Data data : sheet.dataList){
logic.doLogic(data.hoge);
}
}
De cette manière, la logique pivote du nombre de List dans la classe Sheet. Avec cette méthode de mise en œuvre, la spécification est de "répéter la même opération un certain nombre de fois sur le même écran".
Il est efficace lorsque vous souhaitez obtenir des preuves en appuyant plusieurs fois sur les touches d'un écran, mais cette méthode de mise en œuvre est faible dans le cas d'un test où vous appuyez une fois sur les touches sur plusieurs écrans. C'est comme ressentir. Je l'ai codé pour ITa, mais il a en fait été utilisé pour vérifier l'affichage de l'écran qui accompagne la mise à jour de la base de données, donc je pense que je l'ai implémenté incroyablement faiblement. Je n'ai pas tellement révisé le code et les articles, mais je peux en faire une forme pour le moment.
Recommended Posts