关于loadrunner:LoadRunner调用JS加密后登录

阐明应用LoadRunner调用javascript,实现加密登录信息后,提交并登录。 本例应用LoadRunner 2020 社区版。 测试网站登录流程测试网站采纳了SM4对称加密,每次GET申请登录页面时,生成随机密钥。把用户名和明码进行加密,密文POST到后端进行验证。 启用web_js_run如下图所示,首先下载了加密脚本sm4.js并导入到额定文件中。顺次抉择运行时设置-Internet协定-首选项-启用运行Javascript代码。 检查点(web_reg_find)中文反对在调试过程中发现,web_reg_find有点问题,通过查问材料(https://www.cnblogs.com/zjn-20161215/p/8603468.html),应用lr_convert_string_encoding进行编码,并将编码内容存入变量。 // 将查找指标转为utf8编码,放在变量test_find中lr_convert_string_encoding("退出零碎", LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8, "text_find");// 将test_find内容变为string,存在变量find中lr_save_string(lr_eval_string("{text_find}"),"find");web_reg_find("Search=Body", "Text={find}", LAST);调用JSweb_js_run调用的代码中能够应用TruClient函数。 TruClient函数等效VuGen函数LR.advanceParamlr_advance_paramLR.setParamlr_save_stringLR.getParamlr_eval_stringLR.loglr_debug_messageLR.userDataPointlr_user_data_pointLR.freeParamlr_free_parameter// 调用JS,加密数据。js文件导入【解决方案-额定文件】,LR.getParam是web_js_run中读取变量的办法web_js_run( "Code=window.sm4.encrypt(LR.getParam('username') + LR.getParam('loginKey') + LR.getParam('password'), LR.getParam('loginKey'));", "ResultParam=cipherText", SOURCES, "File=sm4.js", ENDITEM, LAST);残缺内容参数配置 残缺脚本代码很简略 #include "web_api.h"Action(){ lr_start_transaction ("登录OA"); /*----获取key,开始----*/ // 设置正则提取规定 web_reg_save_param_regexp( "ParamName=loginKey", "RegExp=var k.*?=.*?\"(.*?)\";", "Ordinal=1", SEARCH_FILTERS, LAST); //lr_output_message(lr_eval_string("{loginKey}")); // 拜访页面,能够参数化间接用{} web_url("getLogin", "URL={uri}/login.html", "TargetFrame=", "Resource=0", "Referer={uri}", "Snapshot=t1.inf", "Mode=HTTP", LAST); /*----获取key,完结----*/ /*----登录,开始----*/ // 调用JS,加密数据。js文件导入【解决方案-额定文件】,LR.getParam是web_js_run中读取变量的办法 web_js_run( "Code=window.sm4.encrypt(LR.getParam('username') + LR.getParam('loginKey') + LR.getParam('password'), LR.getParam('loginKey'));", "ResultParam=cipherText", SOURCES, "File=sm4.js", ENDITEM, LAST); //lr_output_message(lr_eval_string("{cipherText}")); // 检查点 不反对中文的解决办法 // 将查找指标转为utf8编码,放在变量test_find中,留神正则表达式的转义字符 lr_convert_string_encoding("退出零碎", LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8, "text_find"); // 将test_find内容变为string,存在变量find中 lr_save_string(lr_eval_string("{text_find}"),"find"); web_reg_find("Search=Body", "Text={find}", LAST); // 提交数据,登录 web_submit_data("postLogin", "Action={uri}/login.html", "Method=POST", "TargetFrame=body", "RecContentType=text/html", "Referer={uri}/login.html", "Snapshot=t2.inf", "Mode=HTML", ITEMDATA, "Name=ticket", "Value={cipherText}", ENDITEM, LAST); /*----登录,完结----*/ lr_end_transaction ("登录OA", LR_AUTO); return 0;}

June 1, 2023 · 1 min · jiezi

关于loadrunner:Loadrunner11创建脚本打开vugencontrolleranalysis超级慢的解决方法

问题景象启动的时候很慢,即关上LR11的启动程序很慢;点击创立脚本的时候也很慢: 关上脚本很慢: 创立controller场景很慢: 剖析后果的时候很慢: 解决办法:如果你存在以上问题,能够试试以下办法:次要是更改.net装置目录中一个配置文件machine.config;文件地位:C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config应用文本编辑配置文件,配置文件runtime节点,默认为空。原为: <runtime/>批改为:<runtime><generatePublisherEvidence enabled="false"/></runtime>如图:

January 14, 2023 · 1 min · jiezi