LoadRunner错误处理&脚本相关

1Connection reset by peer  [MsgId: MERR-27780]

如下图,只需要在Winlnet replay instead of Sockets 处勾选就ok了

当光标在此处时,可以看下面的Hint

use wininet replay engine.Note this mode is a fallback potion to be used only when the default(socket) replay engine fails(使用wininet回放引擎。注意这种模式是一种后备选择,只有在默认(socket)回放引擎失败使用)

Loadrunner默认发送是通过sockets(将http转换为sockets)发送的,而sockets默认SSL的版本为SSL2和SSL3。HTTPS协议录制的脚本以SSL3版本回放时会使sockets端口连接失败,会被服务器拒绝连接。--- 摘自网络

LoadRunner错误处理&脚本相关

2.Failed to end Transaction "login_end"(by name).

在添加事务的时候如果报这个错是因为事务名字问题,名字要一致

首先保证在要做的事务前后加下面2个函数

lr_start_transaction("login");

lr_end_transaction("login", LR_AUTO);

LoadRunner错误处理&脚本相关

---------------------------------------分隔符-------------------------------------

说明:之后的时间比较少,所以直接贴我在记事本上做的笔记。比较碎片化,不利于除自己之外的人浏览,在此抱歉!

Error -27496: Internal Error - InternetCloseHandle failed for item at 06CEE900, Windows error code=6. Assuming the item can be deleted, but error(s) may occur in fvLrwNetWinInetCallback
内部错误(呼叫客户服务) 暂不知怎么处理
-------
checkPoink.c(43): Error -27492: "HttpSendRequest" failed, Windows error code=12017 and retry limit (0) exceeded for URL="https://jmstest.youhongedu.com/"

checkPoink.c(12): Error -27489: InternetReadFile failed. Windows error code=6. URL="https://jmstest.youhongedu.com/login/"
在Run-time settings---Options
    HTTP-request connect tiomeout(sec) 设置成最大值 999
    HTTP-request receive tiomeout(sec) 设置成最大值 999
    Step download timeout(sec) 设置成最大值 999
-------
设置IP欺骗后,65992-error,Socket desciptor ont found
    要用设置的IP欺骗的网卡进行访问。而是用无线网或者访问localhose/127.0.0.1,没有使用设置了IP欺骗的网卡进行访问引起的
添加 资源监控
-------

*************************分隔符************************

1.获取某个请求的响应的信息(请求头信息、响应头信息、响应内容体)
  默认最大长度为256
     web_set_max_html_param_len("262144");
     //自定义截取字符串,根据左右字符串获取数据
     web_reg_save_param("ResponseBody", "LB=", "RB=", "Search=Body", LAST);
     // REQUEST为内置变量,保存请求的头信息,需在发送URL请求前注册使用,将请求头信息存入字符串RequestHeader中
     web_save_header(REQUEST, "RequestHeader");
     // 将RESPONSE保存响应的头信息在字符串ResponseHeader中
     web_save_header(RESPONSE, "ResponseHeader");

    web_submit_data("login",
        "Action=https://jmstest.youhongedu.com/login/",
        "Method=POST",
        "TargetFrame=",
        "RecContentType=text/html",
        "Referer=https://jmstest.youhongedu.com/login/",
        "Snapshot=t8.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=username", "Value=jms13999999999", ENDITEM,
        "Name=password", "Value=yh111111", ENDITEM,
        LAST)

     //字符转码
     lr_convert_string_encoding(lr_eval_string("{RequestHeader}"),LR_ENC_UTF8 ,LR_ENC_SYSTEM_LOCALE,"RequestHeaderUTF8");
     lr_convert_string_encoding(lr_eval_string("{ResponseHeader}"),LR_ENC_UTF8 ,LR_ENC_SYSTEM_LOCALE,"ResponseHeaderUTF8");
     lr_convert_string_encoding(lr_eval_string("{ResponseBody}"),LR_ENC_UTF8 ,LR_ENC_SYSTEM_LOCALE,"ResponseBodyUTF8");
     //输出信息
     lr_output_message("# 请求头信息:\n %s", lr_eval_string("{RequestHeaderUTF8}"));
     lr_output_message("# 响应头信息:\n %s", lr_eval_string("{ResponseHeaderUTF8}"));
     lr_output_message("# 响应内容体:\n %s", lr_eval_string("{ResponseBodyUTF8}"));   
     
 2.乱码处理
利用Loadrunner提供的转换函数(lr_convert_string_encoding)进行处理,GBK转换UTF-8参考代码:
lr_convert_string_encoding("我是代码",
"GBK",
"UTF-8",
"outparam"
);
由于转换过程中会多出一个 \0 的结束字符,也就是outparam转换后变成了”我是代码\0”,
所以还需要特别进行处理:lr_save_string(lr_eval_string("{outparam}"),"newparam");
将outparam重新save转存到另一个newparam的参数中,当然也可以保存在原来的outparam参数中进行覆盖,这样才能保证整个转换过程没有纰漏,一些系统对\0比较敏感的时候还可能出现未知的问题。
例:
  lr_convert_string_encoding("将我转码","GBK","UTF-8","outparam");
  lr_save_string(lr_eval_string("{outparam}"),"newparam");
  lr_output_message(lr_eval_string("{newparam}"));
    
3. 在Controller  Virtual user(3个小人图标) 的 Status中可以打印 当前参数和迭代次数
    static int iteration;
    Action()
    {
        //在Vugen中显示参数值,参数化param
        lr_output_message("当前参数:%s",lr_eval_string("{param}"));
        //在Controller 监控窗口中显示当前参数值和当前值的迭代次数
        lr_vuser_status_message("当前参数:%s,迭代次数:%d",lr_eval_string("{param}"),++iteration);
        teturn 0;
    }