Test de l'application java Web start à l'aide de jemmy


J'ai besoin de créer des tests gui en utilisant Jemmy mais je ne sais pas comment le lancer avec l'application javaws. Dans tutoriels/examples/etc est quelque chose comme ça:

new ClassReference("org.netbeans.jemmy.explorer.GUIBrowser")
                                                        .startApplication();

Ce code ouvre une fenêtre d'exemple, mais comment puis-je, en utilisant ClassReference object open *.jnlp file? Ou est-ce une autre façon de "connecter" jemmy avec l'application java Web start?

Merci pour l'avance.

Author: SkyWalker, 2014-07-08

3 answers

Vous pouvez y parvenir en préparant une construction spéciale avec Jemmy inclus et en appelant Jemmy à partir de l'application exécutée en mode jnlp lui-même.

 5
Author: Sergey Grinev, 2014-07-23 10:59:54

La solution est:

  1. Placez les fichiers de construction dans n'importe quel dossier de votre PC.
  2. Ajoutez .jar les fichiers de cette version à votre projet de test.
  3. Ouvrez le fichier .jnlp dans l'éditeur de texte et recherchez la classe d'application principale
    application-desc main-class="[Main application class]"/>
  4. Appelez-vous tester pour lancer l'application
    new ClassReference("[Main application class]").startApplication();

Maintenant, vous pouvez accéder aux éléments de cette application Java à partir de l'environnement de test

 2
Author: Ivan Gerasimenko, 2016-06-27 09:23:59

Vous pouvez utiliser Jemmy avec JUnit dans l'EDI NetBeans.

Pour les tests GUI, nous utilisons Jemmy, une bibliothèque qui vient avec l'E NetBeans et est très utile pour tester les applications Swing.

Tests JUnit qui utilisent Jemmy so par exemple:

@Test
public void JunitTest() {
JFrameOperator mainFrame = new JFrameOperator();
JTextFieldOperator textField = new JTextFieldOperator(mainFrame, "textIn");
int x = 10;
assertEquals(x, textField.getLocationOnScreen().x);
}

Ajout de l'annotation @Test et utilisation des assertEquals() et fail() de JUnit si nécessaire.


Une autre approche:

Vous pouvez également le faire en utilisant jnlp. Déjà suggéré @Sergey Grinev

Un bon exemple et le code en cours d'exécution est donné dans ce lien:

Instantané:

  1. Cliquez sur le lien du fichier jnlp dans webdriver, enregistrez le fichier jnlp sur le disque;
  2. Vous pouvez également utiliser l'application webstart à partir de jnlp;{[31]]}
  3. Capturez l'application ouverte et utilisez-la pour le test.

Ce processus peut être fait en utilisant les bibliothèques suivantes:

  • netx - pour exécuter l'application webstart à partir de jnlp.
  • uispec4j - pour intercepter fenêtre webstart créée et manipulation des éléments de fenêtre.

Vous pouvez probablement faire la même chose avec un autre outil de test AWT/Swing, mais uispec4j permet d'intercepter l'application webstart exécutée à partir de jnlp, vous n'avez pas besoin d'exécuter l'application en appelant main() et vous n'avez pas besoin d'avoir votre code source d'application webstart dans votre dépôt de code de test.

Crédit va à tporeba

Pour en savoir plus sur Jemmy, vous pouvez passer par ce lien

  1. Jemmy Tutoriel
  2. Jemmy Échantillons
  3. Tutoriel d'infrastructure de test de plateforme NetBeans
 0
Author: SkyWalker, 2017-05-23 12:33:12