Пришлось нагружать JMeter-ом вход в чат, а там имя пользователя, адрес электронной почты и ещё кой чего генерируется автоматически скриптами в момент создания теста, передается в переменные с которыми потом тест и оперирует. Сервер же сам считает md5 от входящих параметров и при совпадении, даёт добро на логин. Решилась задача вот так - в BeanShell Pre(Post)Processor ну или где там надо md5 считать его( Processor) вставляем, внутрь процессора вставляем скрипт следующего содержания (Java код по сути)
setStrictJava(true);
import java.security.MessageDigest;
import java.math.BigInteger;
import java.lang.System;
String nick=String.valueOf(System.currentTimeMillis());
String email=nick+ "@dev.com";
String var1 = vars.get("VAR1");
String var2= vars.get("VAR2");
...
String varN= vars.get("VARN");
String params=var1+var2+...+varN;
log.info("params: " + params);
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] md5hash = new byte[32];
md.update(params.getBytes("utf-8"), 0, params.length());
md5hash = md.digest();
BigInteger bigInt = new BigInteger(1,md5hash);
String hashtext = bigInt.toString(16);
// Now we need to zero pad it if you actually want the full 32 chars.
while(hashtext.length() < 32 ){
hashtext = '0'+hashtext;
}
vars.putObject("key",hashtext);
и на выходе в переменной key имеем то, что нам надо )))
P.S. не ахти чего конечно, но у меня 2 рабочих часа забрало. может для кого и не проблема, но я по образованию не программист...
setStrictJava(true);
import java.security.MessageDigest;
import java.math.BigInteger;
import java.lang.System;
String nick=String.valueOf(System.currentTimeMillis());
String email=nick+ "@dev.com";
String var1 = vars.get("VAR1");
String var2= vars.get("VAR2");
...
String varN= vars.get("VARN");
String params=var1+var2+...+varN;
log.info("params: " + params);
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] md5hash = new byte[32];
md.update(params.getBytes("utf-8"), 0, params.length());
md5hash = md.digest();
BigInteger bigInt = new BigInteger(1,md5hash);
String hashtext = bigInt.toString(16);
// Now we need to zero pad it if you actually want the full 32 chars.
while(hashtext.length() < 32 ){
hashtext = '0'+hashtext;
}
vars.putObject("key",hashtext);
и на выходе в переменной key имеем то, что нам надо )))
P.S. не ахти чего конечно, но у меня 2 рабочих часа забрало. может для кого и не проблема, но я по образованию не программист...
Комментариев нет:
Отправить комментарий