суббота, 21 мая 2011 г.

Считаем md5

Пришлось нагружать 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 рабочих часа забрало. может для кого и не проблема, но я по образованию не программист...

Комментариев нет:

Отправить комментарий