2016-05-20 1 views
-1

Je suis à la recherche d'un moyen de tester les différentes fonctionnalités de mon application serveur JavaEE. J'ai d'abord essayé de le faire avec Junit et TestNG, mais construire le scénario différent était trop fastidieux. Ce que je cherche est un outil qui va simuler un utilisateur en utilisant mon application serveur à travers son navigateur, puis une fois ce scénario établi, je pourrais vérifier la sortie et vérifier si cela fonctionne. Voici un exemple:Test fonctionnel d'un serveur JavaEE

  1. Un utilisateur se connecte au serveur, l'interface de l'application du serveur est affichée.
  2. Il exécute la fonctionnalité pour modifier ses données personnelles
  3. Il modifie les différents qu'il veut changer.
  4. Il enregistre les modifications.

Ensuite, ce que je veux vérifier est l'état actuel des données dans la base de données. Ce dont j'ai besoin est quelque chose qui va simuler l'action qu'il a fait avec son navigateur comme je l'ai dit ci-dessus ...

J'ai lu un article différent sur les différents outils qui pourraient faire les travaux, mais je ne suis pas sûr parce que je fais don ne sais pas vraiment quoi taper dans google. J'ai découvert Jmeter (qui ne fonctionne pas avec mon application à cause de la socket web) et le Grinder. The Grinder semble être intéressant, mais la plupart des choses que j'ai lu à propos de se réfère à des outils de test de charge, ce qui n'est pas ce que je cherche. Est-ce que quelqu'un expérimenté me dit si je peux faire ce que je veux avec le Grinder?

+1

Cela ressemble à un test d'intégration de bout en bout. Le sélénium est un bon outil pour automatiser le comportement du navigateur. Associé à un outil de construction décent, comme Maven, vous devriez être capable de déployer un serveur embarqué, d'exécuter des tests de sélénium, de vérifier les résultats. –

+0

quand vous dites les résultats, voulez-vous dire le contenu html? –

+0

Je veux dire qu'un test a 3 phases: configurer l'état initial, lancer le test, vérifier l'état final. L'état final est alors le résultat du test, vous devez le vérifier par rapport à votre état attendu pour voir si le test a réussi. Ce que ce résultat est seulement vous pouvez savoir; fichiers écrits sur le disque dur, données dans la base de données, contenu servi à l'utilisateur, demande de contenu d'une autre source - il peut être absolument tout ce qu'un ordinateur peut faire. –

Répondre

1

L'outil le plus populaire est actuellement Selenium

Il va certainement faire le travail. Je voudrais également mentionner Geb car il fournit une API plus pratique par rapport au pilote Web.

Je me permets aussi de donner un conseil, même s'il ne se rapporte pas directement à votre question.

Si votre projet est assez grand (4-5 équipes sur quelques années peuvent fournir beaucoup de code), vous devriez penser à automatiser. Ces tests peuvent être très lourds à la fois en termes de charge CPU et en termes de temps. Donc, si vous comptez sur ces tests, votre build sera vieux et potentiellement instable.

Ces outils ne doivent donc être utilisés que pour compléter les tests unitaires/composants et d'intégration qui devraient exister de toute façon et ils utiliseront des outils complètement différents.

Toujours dans l'interface utilisateur, pensez à utiliser différentes techniques de test qui testeraient uniquement le côté ui (simulez les points de terminaison du serveur, etc.).

Espérons que cela vous aide