2017-03-03 1 views
0

J'ai créé un jmeter qui passe une commande sur mon site et enregistre le statut de la commande et le numéro de confirmation. Une fois la commande réservée, j'utilise un PostProcessor BeanShell pour imprimer les variables extraites dans un fichier. J'aimerais vraiment pouvoir ajouter une date au nom de fichier, mais je n'ai pas réussi à trouver un moyen de le faire.Jmeter et Filewriter - ajouter une date + horodatage au nom de fichier

C'est ce que mon processeur Bean Shell Poster ressemble:

FileWriter fstream = new FileWriter("C:\\JMeter\\Results\\log.csv",true); 
BufferedWriter out = new BufferedWriter(fstream); 
out.write(vars.get("scriptName")); 
out.write(System.getProperty("line.separator")); 
out.write("STATUS: " + vars.get("status")); 
out.write(System.getProperty("line.separator")); 
out.write("Confirmation Number: " + vars.get("ConfirmationNumber")); 
out.write(System.getProperty("line.separator")); 
out.write(""); 
out.write(System.getProperty("line.separator")); 
out.write(""); 
out.close(); 
fstream.close(); 

J'ai essayé d'insérer des variables dans le nom de fichier, mais je pense que je l'ai fait mal, car aucun fichier ne sont même créés.

Avertissement complet (ce qui peut ne pas être nécessaire compte tenu de mon exemple de code ci-dessus): Je ne suis pas une personne de code, alors s'il vous plaît excuser le code de mauvaise qualité.

Merci d'avance.

Répondre

0

Vous pouvez définir une propriété au début que vous pouvez ajouter ultérieurement à votre nom de fichier.

${__P(UNIQUEID,${__time(YMDHMS)})} 

Ensuite, vous pouvez changer votre ligne à la suivante

FileWriter fstream = new FileWriter(vars.get("CWD") + "/JMeter/results/log${UNIQUEID}.csv", true); 

Dans le code ci-dessus, l'encéphalopathie des cervidés est une autre variable que je mets au début qui pointe vers le répertoire courant dont Jmeter islaunched.

import org.apache.jmeter.services.FileServer; 

String sCWd = new String(FileServer.getFileServer().getBaseDir()); 
log.info("CWDString=" + sCWd.replace("\\", "/")); 
vars.put("CWD", sCWd.replace("\\\\", "/")); 
+0

Merci pour votre temps, Selva. C'est exactement ce dont j'avais besoin, mais je ne suis pas sûr de savoir comment définir la propriété $ {__ P (UNIQUEID, $ {__ time (YMDHMS)}}} afin que je puisse l'utiliser. J'ai essayé de l'ajouter au fichier user.properties, mais il ne semble pas que ce soit la solution. – Mari

+0

En utilisant votre suggestion, j'ai trouvé une façon différente d'y parvenir, merci beaucoup! – Mari

+0

Vous pouvez ajouter un élément de configuration 'Variables définies par l'utilisateur' en haut de votre plan de test et ajouter une ligne et la définir. Nom: UNIQUEID, Valeur: $ {__ P (UNIQUEID, $ {__ heure (YMDHMS)})} – Selva