[JAVA] So testen Sie den Bildschirm zum Hochladen von Dateien mit Spring + Selenium

Wenn ich einen Testcode mit Selen für den mit Springboot erstellten Upload-Bildschirm schreibe, Der Dateiauswahldialog konnte nicht ausgeführt werden und der Test konnte nicht durchgeführt werden. Daher wird die Methode zur Lösung unten beschrieben.

Realisierungsmethode

Da es schwierig ist, "" mit Selen zu betreiben Die Datei wird automatisch für das Dateiattribut auf der Serverseite (Java-Seite) festgelegt.

Implementierungspunkt

  1. Fügen Sie Erweiterungspunkte für vom Bildschirm empfangene Parameter in der ControllerAdviceCustom-Klasse hinzu
  2. Fügen Sie einen Prozess hinzu, um eine MockFileEditor-Klasse zum Generieren und Festlegen einer MockMultipartFile zu erstellen
  3. Legen Sie den Erweiterungspunkt der ControllerAdviceCustom-Klasse so fest, dass die MockFileEditor-Klasse übergeben wird, wenn der Typ beim Ausführen des Tests MultipartFile ist.

Jetzt müssen Sie sich keine Gedanken mehr über den Betrieb von auf der Selenseite machen!

ControllerAdviceCustom.java


@ControllerAdvice
public class ControllerAdviceCustom {
    @InitBinder
    public void initBinderMock(WebDataBinder dataBinder) {
        //Mock-Erweiterungspunkt (Implementierung verwendet MockUp auf der Testseite)
    }

    //Unten weggelassen
}

MockFileEditor.java


public class MockFileEditor extends PropertyEditorSupport {
    @Override
    public void setValue(Object obj) {
        //Generieren und reflektieren Sie MockMultipartFile für Parameter (Multipart)
        String textFile = "dummy text file";
        MultipartFile mockFile = new MockMultipartFile("file", textFile.getBytes());
        super.setValue(mockFile);
    }
}

SeleniumTest.java


@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class SeleniumTest {

    @Before
    public void setup() {
        //Implementierte Scheinerweiterungspunkte für die ControllerAdviceCustom-Klasse
        new MockUp<ControllerAdviceCustom>() {
            @Mock
            @InitBinder
            public void initBinderMock(WebDataBinder dataBinder) {
                //Legen Sie fest, dass die MockFileEditor-Klasse übergeben wird, wenn der Typ MultipartFile ist
                dataBinder.registerCustomEditor(MultipartFile.class, new MockFileEditor());
            }
        };
    }

    @Test
public void Testbildschirme einschließlich Datei-Uploads() {
        //Unten weggelassen
    }
}

Ergänzung

Es scheint möglich zu sein, " auch mit Selen zu betreiben. Es ist jedoch zweifelhaft, ob diese Methode für alle Browser möglich ist, und es besteht die Möglichkeit, dass sie aufgrund eines Upgrades der Browserversion (Sicherheitsmaßnahmen) nicht verwendet werden kann. Daher habe ich diese Implementierungsmethode gewählt.

Recommended Posts

So testen Sie den Bildschirm zum Hochladen von Dateien mit Spring + Selenium
So binden Sie mit einer Eigenschaftendatei in Spring Boot
Wie man Lombok im Frühling benutzt
So führen Sie einen Komponententest für Spring AOP durch
Wie kann ich Spring Tool in Eclipse 4.6.3 einbinden?
So fügen Sie eine JAR-Datei in ScalaIDE hinzu
So laden Sie eine Spring-Upload-Datei und zeigen ihren Inhalt an
So teilen Sie eine Spring Boot-Nachrichtendatei
So erreichen Sie das Hochladen von Dateien mit Feign
So erzielen Sie mit Rest Template of Spring einen großen Datei-Upload
Umgang mit dem Ereignis, dass Committee :: InvalidRequest während des Rspec-Datei-Upload-Tests im Committee auftritt
Zusammenfassung der Auswahl von Elementen in Selen
JUnit 5: Wie man Testfälle in enum schreibt
So fügen Sie in Spring Boot einen Klassenpfad hinzu
Hinzufügen von Bildschirmaufzeichnungsfunktionen zu Selenium-Testfällen
So definieren Sie mehrere orm.xml in Spring4, JPA2.1
[Spring Boot] So verweisen Sie auf die Eigenschaftendatei
So legen Sie Umgebungsvariablen in der Eigenschaftendatei der Spring-Boot-Anwendung fest
Ich habe versucht, das Hochladen von Dateien mit Spring MVC zu implementieren
So senden Sie einen Wert in HTML ohne Bildschirmübergang
So schreiben Sie einen Komponententest für Spring Boot 2
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
Verwendung von CommandLineRunner im Spring Batch von Spring Boot
So konvertieren Sie eine Datei in ein Byte-Array in Java
So debuggen Sie die generierte JAR-Datei mit Eclipse
Verwendung des In-Memory-Job-Repositorys mit Spring Batch
Datei-Upload mit Spring Boot
So lesen Sie Ihre eigene YAML-Datei (*****. Yml) in Java
So ändern Sie den Einstellungswert von application.properties beim Booten im Frühjahrsstart
Aufrufen und Verwenden der API in Java (Spring Boot)
[Rails 5] japanMap-Link So schreiben Sie Parameter in die js.erb-Datei
Richten Sie Multipart Resolver ein, damit Spring Dateien hochladen kann
So steuern Sie Transaktionen in Spring Boot ohne Verwendung von @Transactional
So finden Sie May'n in XPath
So blenden Sie die Bildlaufleiste in WebView aus
So führen Sie JUnit in Eclipse aus
Wie man in Ruby auf unbestimmte Zeit iteriert
Hinweise zur Verwendung von Spring Data JDBC
Wie man Ant in Gradle ausführt
Schreiben Sie den Testcode mit Spring Boot
[Schienen] So verhindern Sie den Bildschirmübergang
So erstellen Sie eine JAR-Datei ohne Abhängigkeiten in Maven
Wie man die Programmierung in 3 Monaten beherrscht
[So installieren Sie Spring Data Jpa]
So stellen Sie Spring Boot + PostgreSQL ein
Wie man JAVA in 7 Tagen lernt
So konvertieren Sie erb-Datei in haml
So erhalten Sie Parameter in Spark
So bedienen Sie automatisch einen in Java unter Windows erstellten Bildschirm
So installieren Sie Bootstrap in Ruby
So legen Sie ein Profil mit annotationsbasierter Konfiguration im Spring-Framework fest und verwenden es
Protokollausgabe in Datei in Java
Verwendung von InjectorHolder in OpenAM
So erstellen Sie einen Begrüßungsbildschirm
Verwendung von ModelMapper (Spring Boot)
So installieren Sie jQuery in Rails 6