在做性能测试的时候,有些对于服务器的请求还需要根据约定对某个字符串进行加密,然后发送请求的时候带上加密串,才可以请求成功。用的比较多的就是MD5加密了,那Loadrunner怎么实现MD5加密呢?
Loadrunner本身是没有MD5的加密方法的,所以需要我们自己实现MD5加密。
这里有两种方式实现,一种是编写dll的方式,一种是写MD5.h文件的方式,这里主要讲MD5.h的方式实现方法。
1、写一个md5.h文件,将其放入脚本路径下
由于内容太长就不贴了,需要文件的小伙伴可以自行下载:
链接: https://pan.baidu.com/s/1wrRcgDCbpICiv5a4K1bGfw 提取码: bedw
2、在globals.h中加入#include “md5.h”
//------------------------------------------------------------
// Include Files
#include "lrun.h"
#include "web_api.h"
#include "lrw_custom_body.h"
#include "MD5.h"
//------------------------------------------------------------
// Global Variables
3、在Action中写脚本,脚本示例如下:
示例1:
Action()
{
char s[10]="hello";
char sign[32];
int i;
strcat(sign,CMd5(s));
lr_output_message("sign值为:%s",sign);
return 0;
}
示例2:
Action()
{
int i;
char sign[32];
char s[10]=”hello”;
memset(sign, 0x00, sizeof (char) * 256);
lr_save_string(lr_eval_string("{chnlUsrId}"),"chnlUsrId");
lr_save_string(lr_eval_string("0AFB83650B{Rand_2}{Rand_3}{Rand_4}"),"id");
web_save_timestamp_param("timestamp",LAST);
//字符串拼接
sprintf(s,"%s_%s_xxx.xxxxxx.com",lr_eval_string("{chnlUsrId}"),lr_eval_string("{timestamp}"),lr_eval_string("{id}"));
lr_output_message("拼接完成的字符串s:%s",s);
//字符串加密
strcat(sign,CMd5(s));
lr_output_message("加密完成后的sign值:%s",sign);
//将小写的加密串转换成大写
for(i = 0;i < sizeof(sign);i++){
sign[i] = toupper(sign[i]);
}
lr_output_message("转换成大写的sign值:%s",sign);
//将加密串存入参数sign
lr_save_string(sign,"sign");
return 0;
}