2017-09-28 4 views
3

Je dois créer un test dans jmeter pour de nombreuses demandes et j'ai besoin de créer une demande de publication qui contiendra pass dans l'en-tête et il devrait être hash sha512 de user + someid + someid. J'ai besoin de changer d'utilisateur dans chaque requête, donc je viens d'ajouter dans le gestionnaire d'en-tête user${__threadNum}, cela semble bien, mais j'ai besoin de générer un hachage à partir de cela dans la prochaine demande de poste. Je cherchais que cela devrait être possible via un script beanshell ou un préprocesseur jsr223, mais je ne suis pas très familier avec les scripts ou java.Jmeter comment générer du hachage sha512

+0

Vous pouvez utiliser un BeanShell pour obtenir le hachage via une commande Bash, quelque chose comme 'echo -n" test "| openssl sha512' – marekful

Répondre

2

Ajouter JSR223 Sampler avec le langage Java, ajouter des variables mot de passe et le sel à l'aide vars.get("password") et en utilisant cette variable de code generatedPassword contiendra le nouveau hachage généré

import java.security.MessageDigest; 
import java.security.NoSuchAlgorithmException; 

String passwordToHash = vars.get("password"); 
String salt= vars.get("salt"); 
String generatedPassword = null; 
    try { 
    MessageDigest md = MessageDigest.getInstance("SHA-512"); 
    md.update(salt.getBytes("UTF-8")); 
    byte[] bytes = md.digest(passwordToHash.getBytes("UTF-8")); 
    StringBuilder sb = new StringBuilder(); 
    for(int i=0; i< bytes.length ;i++){ 
     sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1)); 
    } 
    generatedPassword = sb.toString(); 
    log.info(generatedPassword); 
    vars.put("generatedPassword", generatedPassword); 
    } 
    catch (NoSuchAlgorithmException e){ 
    e.printStackTrace(); 
    } 
+0

merci, mais je suis encore un peu confus ... où devrais-je mettre 'vars.get (" mot de passe ")' aux paramètres dans JSR223 PreProcessor? Et dans les paramètres utilisateur, définissez le mot de passe comme $ {user} $ {someid} $ {someid} ou comment? Que puis-je utiliser $ {generatedPassword}? – vb381

+0

Définir comme variable JMeter 'password' par exemple dans' User Parameters' avec la valeur comme '$ {user} $ {someid} $ {someid}' et à la fin, Oui, utiliser $ {generatedPassword} – user7294900

+0

J'ai essayé ceci mais dans réponse que je ne peut toujours se que cela et ne pas hachage 'user1: $ {generatedPassword}' – vb381