测试过程一些问题的解决
由于我们使用的工具是loadrunner,loadrunner自带来比较完整的帮助文档,遇到问题的时候一定要多看
1、 用到的一些函数
1) Strlen:求字符串长度,一般可以用于比较获得的字符串的长度是否和所需要判断的是否一致。(这个函数中测试中模拟进度条时用到,判断是否获得到动态数据)
例子:
if (strlen (lr_eval_string("{wscdiff2}"))-4==0)
{
i=0;
}
else
{ i=i+1;
}
2) lr_output_message:在调试窗口输出信息
在调试的时候,可以在适当的位置可以将监控的参数值打印到调试窗口,便于调试(建议调试时候多用)。
例子:
lr_output_message("循环次数 is %d",Count);
lr_output_message("循环体中lr_think_time的时间为: %d",Count*5);
lr_output_message("i 的值 is %d",i);
java脚本中的写法:lr.output_message("usercode:="+usercode);
3) lr_think_time:思考时间
在操作中适当添加lr_think_time,有时候会解决一些非常头疼的问题。
例子:
lr_think_time(5);
4) web_reg_save_param:保存动态数据到参数。一般web脚本要看同步显示的窗口的显示结果可以获得动态数据左右边界的值是多少,这样才能准确获得动态数据。
例子:
web_reg_save_param("wscdiff1","LB=taskId\":\"","RB=\"",LAST);
web_submit_data("getResult.action",
"Action=http://10.0.30.192/billing/bilcommon/getResult.action",
"Method=POST",
"RecContentType=application/json",
"Referer=http://10.0.30.192/billing/bilmonreport/landmass.action",
"Snapshot=t116.inf",
"Mode=HTTP",
ITEMDATA,
"Name=taskId", "Value={wscdiff1}", ENDITEM,
LAST);
可以根据web_submit_data所显示的信息去确定LB=?(左边界)和RB=?(右边界)从而得到参数的动态值(注意“\”等符合的表示方法,我还没有仔细研究过 )。
经验总结:
1) 如果有一批的用户而且几个脚本同时要用到,则最好这些脚本不要用同一组用户。
2) 要检查在脚本中,哪些操作是比较耗时的,对所要监控的操作是否有影响,如果影响则需要分离出来(如果某页面非常耗时,而只使用一次,则尽量要放到vuser_init中)。
3) 不要屏蔽掉脚本中的图片和样式。
4) Java脚本有时在场景中运行时会报错,这时候要检查场景的Run-time Setting是否有多余的东西。
5) 中java脚本中的public int init()中,一定要用
Try{
。。。
}catch(Exception ex){
throw new RuntimeException(ex);
}
否则编译将不会通过。