2017-09-28 4 views
3

Ich muss Test in jmeter für viele Anfragen erstellen und ich muss erstellen, Post-Anfrage, die pass im Header enthalten wird und es sollte Hash-sha512 von user + someid + someid sein. Ich muss Benutzer in jeder Anfrage ändern, so dass ich nur in Header Manager user${__threadNum} hinzufügen, sieht es gut aus, aber ich muss Hash daraus in nächsten Post-Anfrage generieren. Ich habe gesucht, dass es über Beanshell-Skript oder jsr223-Präprozessor möglich sein sollte, aber ich bin nicht sehr vertraut mit Skripten oder Java.Jmeter, wie man Hash sha512

+0

halten generatedPassword Variablen Passwort und Salz mit vars.get("password") und mit diesem Code Variable übergeben Sie einen Beanshell verwenden könnte den Hash über einen Bash-Befehl zu bekommen, etwas wie "echo -n" test "| openssl sha512' – marekful

Antwort

2

hinzufügen JSR223 Sampler mit Java-Sprache, wird der neue Hash-

erzeugt
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

danke, aber ich bin immer noch ein wenig verwirrt ... wo sollte ich 'vars.get (" password ")' Parameter in JSR223 PreProcessor? Und in User-Parameter definieren Passwort als $ {user} $ {someid} $ {someid} oder wie? Dann kann ich $ {generatedPassword} verwenden? – vb381

+0

Definieren Sie als JMeter Variable 'password' zum Beispiel in 'User Parameters' mit dem Wert' $ {user} $ {someid} $ {someid}' und am Ende verwenden Sie $ {generatedPassword} – user7294900

+0

Ich habe dies aber in Antwort kann ich immer noch nur diese und nicht Hash 'user1: $ {generatedPassword}' – vb381

Verwandte Themen