2016-08-15 3 views
2

Pour autant que je sache, JMeter vous permet d'envoyer plusieurs requêtes POST avec différents paramètres (par exemple { "value": "value1"}, {"value": "value2"}, ...) Cependant, je suis plus à l'aise en utilisant une interface basée sur un terminal similaire à ab ou siège. Fondamentalement, j'ai besoin de tester un serveur simulant le cas dans lequel certaines demandes ne sont pas précédemment mises en cache.Alternatives à JMeter pour les requêtes POST avec différents paramètres (doit fonctionner sans interface graphique)

Existe-t-il des alternatives à JMeter pour Linux qui peuvent utiliser différents paramètres pour une requête POST?

MISE À JOUR

Pour autant que je peux dire, JMeter nécessite la création d'un plan de test (fichier JMX) afin d'exécuter via la ligne de commande. Malheureusement, ce plan de test doit être construit en utilisant l'interface graphique, qui est précisément ce que je veux éviter.

MISE À JOUR 2

Je vais utiliser JMeter car il offre des paramètres dynamiques pour les requêtes POST et la plupart des alternatives dépendent de JMeter. Cependant, si quelqu'un connaît une bibliothèque autonome fonctionnant exclusivement à partir du terminal (similaire à ab), veuillez me le faire savoir.

Répondre

2

Vous pouvez utiliser JMeter en mode terminal, c'est le mode Non GUI.

Pour variabiliser il suffit d'utiliser ensemble de données CsV pour charger des variables (varName par exemple) par fil, utilisez $ {varname}

Voir:

Bon rapport à la fin:

Si vous ne souhaitez pas utiliser l'interface graphique, même pour construire le test, puis regardez:

Il vous permet de générer le JMX d'un fichier DSL.

Exemples ici:

DSL ici:

$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) 
    require 'ruby-jmeter' 
    test do 
    csv_data_set_config name:'MyCsv', filename: '/path to file', variableNames: 'myParam' 
    threads count: 10 do 
     visit name: 'Qwant Search', url: 'https://lite.qwant.com/?q=flood.io&t=web&p=${myParam}' 
    end 
    end.jmx(file: "path to your output plan") 

Enregistrer le fichier à rubis jmeter-csv.rb Vous pouvez ensuite générer le plan avec:

rubis rubis jmeter-csv.rb

Et l'exécuter en mode non-gui.

+0

Oui, je pense que ce que je vais faire, mais je ne peux pas comprendre ce que les arguments de ligne de commande doivent utiliser pour alimenter le jeu de données csv et pour définir une variable donnée $ {varName}. Avez-vous un exemple qui montre comment l'utiliser? –

+0

suivez tout tutoriel montrant comment l'utiliser en mode gui, il fonctionnera bien en mode non-gui. Assurez-vous simplement que le chemin vers le fichier cdv est correct –

+0

Cela ne se produit pas sur la ligne de commande. CSV DataSet remplira la variable (c'est l'un des champs) du fichier CSV (un autre champ) à chaque itération du groupe de threads.Gui ou NOn Gui cela fonctionne le même –

1

En fait GUI JMeter doit être utilisé pour le développement et le débogage des tests uniquement, en ce qui concerne l'exécution du test de charge - il est recommandé d'exécuter JMeter dans command line mode, via Ant task ou Maven plugin. En outre il y a deux alternatives plus « geek », à savoir:

  • JMeter scripts .jmx sont essentiellement des fichiers XML de sorte que vous pouvez utiliser votre éditeur de texte favori pour créer ou les modifier
  • Vous pouvez utiliser JMeter API pour créer et coup d'envoi des tests JMeter utilisent le langage Java

Si vous cherchez encore une alternative, voici quelques outils de test de charge source libre et ouvert

  • Grinder - vous pouvez écrire des scripts dans Jython
  • Gatling - vous pouvez écrire des scripts dans Scala DSL basé
  • Tsung - ce type existe pour Linux et les plates-formes d'exploitation UNIX uniquement, sur la base Erlang. Les scripts sont des fichiers XML.
  • Taurus - le cadre d'automatisation qui supporte tous les outils mentionnés ci-dessus (et plus encore), basé sur Python, les fichiers de configuration ont une syntaxe simple YAML.

Voir Open Source Load Testing Tools: Which One Should You Use? pour plus d'informations sur les outils ci-dessus et leur comparaison avec JMeter

+0

Merci. J'aime Taurus, mais je pense qu'il utilise JMeter comme backend. Si c'est le cas, je préfère utiliser JMeter, mais je ne sais toujours pas comment utiliser un fichier csv pour les paramètres dynamiques dans une requête POST. La plupart des tutoriels montrent comment le faire en utilisant l'interface graphique. –