最新性能测试LoadRunner解决动态验证码问题,阿里P8成长路线



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
test=lr_guid_gen("GUID"); //调用上面lr_guid_gen()方法lr_save_string(test,"GUID");lr_output_message(test);lr_output_message("xxxxxxxxxxxxx:%s",lr_eval_string("{GUID}")); //生成随机字符串test1=GetValidate(test); //获取验证码-
lr_save_string(test1,"ID");
-
lr_output_message("%s",lr_eval_string("{ID}"));
这样就算完成了,记得加入一句获取验证码图片的脚本哦!
方法b)示例:
代码如下:
Action()-
{ int flen; //定义一个整型变量保存获得文件的大小
-
long filedes; //保存文件句柄
char file[256]="D:\\test1.png"; //保存文件路径及文件名char result[5]; //存放验证码的,必须大于验证码的位数web_set_max_html_param_len("20000"); //设置参数的最大长度,注意该值必须大于文件的大小-
web_url("login",
"URL=http://X.X.X.X/Kindergarten/login/login","Resource=0","RecContentType=text/html","Referer=","Snapshot=t1.inf","Mode=HTTP",LAST);-
//使用关联函数获取下载文件的内容,在这里不定义左右边界,获得服务器响应的所有内容
web_reg_save_param("pic","LB=","RB=","SEARCH=BODY",LAST);//发送下载验证码的请求web_url("voliCode","URL=http://X.X.X.X/Kindergarten/login/voliCode?d=1446432884699","Resource=0","RecContentType=text/html","Referer=","Snapshot=t1.inf","Mode=HTTP",LAST);-
flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE); //获取响应中的文件长度
-
if(flen > 0)
{//以写方式打开文件if((filedes = fopen(file, "wb")) == NULL){lr_output_message("打开文件失败!");return -1;}fwrite(lr_eval_string("{pic}"), flen, 1, filedes); //写入文件内容fclose(filedes); //关闭文件}-
system("D:\\test.bat");
if((filedes=fopen("D:\\test.txt","rt"))== NULL){lr_output_message("打开test.txt文件失败!");return -1;}-
-
fread(result,4,1,filedes);
-
-
fclose(filedes);
-
lr_output_message("the velue3 is: %s",result);
lr_save_string(result,"check");lr_output_message("the check is %s",lr_eval_string("{check}"));-
-
-
lr_start_transaction("登录");
-
-
-
web_submit_data("userLogin",
"Action=http://X.X.X.X/Kindergarten/login/userLogin","Method=POST","RecContentType=text/html","Referer=http://X.X.X.X/Kindergarten/login/login","Snapshot=t13.inf","Mode=HTTP",ITEMDATA,"Name=username", "Value=17715290001", ENDITEM,"Name=password", "Value=123456", ENDITEM,"Name=code", "Value={check}", ENDITEM,LAST);lr_end_transaction("登录",LR_AUTO);-
-
//验证登录是否成功:登录进去后再提交一次数据交互的请求
-
lr_start_transaction("修改密码");web_submit_data("changePwd","Action=http://X.X.X.X/Kindergarten/sys/changePwd","Method=POST","RecContentType=application/json","Referer=http://X.X.X.X/Kindergarten/sys/changePwdView","Snapshot=t53.inf","Mode=HTTP",ITEMDATA,"Name=oPwd", "Value=123456", ENDITEM,"Name=nPwd", "Value=qwaszx", ENDITEM,"Name=nPwd2", "Value=qwaszx", ENDITEM,LAST);lr_end_transaction("修改密码",LR_AUTO);-
return 0;
-
}
备注:
1、char result[5];这个是定义存放验证码的,必须大于验证码的位数,否则最后文件读出来的验证码后面会自动加入几个乱码字符;
2、 system(“D:\test.bat”); 执行test.bat,注意D盘和test.bat之间是\,盘符要转义; test.bat内容如下:
D:\InstallSoftware\Tesseract-OCR\tesseract.exe d:\test1.png d:\test -1 (tesseract.exe必须安装目录也写进去)
3、我测试的系统登录的url是 http://X.X.X.X/Kindergarten/login/login, 如果直接获取该网址的文件来获取验证码,文件太大,会失败;可以用火狐浏览器打开该网址,然后选中验证码,右键直接查看获取验证码的url,即:http://X.X.X.X/Kindergarten/login/voliCode?d=1446432884699; 然后再使用关联函数 web_reg_save_param获取 该url的下载内容;
4、回放的时候可以展示场景操作的页面,在 General Options–Display 里面设置,但是因为可能有缓存情况,所以不能根据登录成功后的系统页面来判断是否登录成功,最好是再操作一个数据交互的请求来判断是否登录成功;我的例子是再提交一个修改密码的操作来操作是否登录成功;
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。





既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
更多推荐



所有评论(0)