Je crée un échantillonneur de requêtes HTTP dans JMeter pour automatiser le téléchargement de fichiers vers un service http. Existe-t-il un moyen de définir le "Chemin de fichier" dans "Envoyer des fichiers avec la demande" à un chemin relatif à partir de l'emplacement du fichier jmx?
Oui. (Cela a été confirmé dans JMeter v2.9)
Vous pouvez utiliser l'expression BeanShell suivante dans le champ de saisie du nom de fichier:
${__BeanShell(import org.Apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}<YOUR FILENAME HERE>
Donc, si votre fichier, "pload.jpg" était situé dans le même dossier que votre fichier de test JMX, la valeur complète serait
${__BeanShell(import org.Apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}upload.jpg
Pour le garder un peu plus propre, ajoutez un élément de configuration "Variables définies par l'utilisateur" où vous affectez la base de l'expression à une variable, par exemple
SCRIPT_PATH = ${__BeanShell( ...etc
Ensuite, la valeur d'entrée de votre chemin de fichier serait plus lisible:
${SCRIPT_PATH}upload.jpg
Je suis sous la version 2.11, et le script BeanShell n'a pas fonctionné pour moi, pour rendre le fichier CSV relatif, et donc pour créer un chemin relatif, vous devez simplement utiliser ce ~/filename.csv
. Cela signifierait que le fichier CSV existe dans le même répertoire que le fichier JMX. Mais je suppose que vous pouvez le modifier par exemple ~/../results_dir/filename.csv
etc..
Bonne chance.
J'ai trouvé la réponse ici http://kisbigger.blogspot.com/2013/09/pointing-to-files-with-relative-paths.html qui était ...
avoir un nom de fichier.csv dans le même dossier que le jmx et mettre ~/filename.csv avec JMeter 2.11 et un nouveau Java ne fonctionnait pas