3.2.5.其它实用函数
3.2.5.1. lr_get_vuser_ip
功能:获得VUser的IP地址。
应用场合:在使用IP欺骗时,为了验证IP欺骗是否成功,可以使用该函数。
举例:在场景运行过程中,将每一个VUser的IP在VUser运行状态窗口中显示出来。
char *ip; |
注意点:为了使IP欺骗成功,使用IP欺骗向导设置好IP后,还要将打开才可。
3.2.5.2. lr_load_dll
功能:加载外部DLL。
应用场合:脚本需要使用外部DLL时,使用该函数加载DLL。
举例:函数getDateTime(char * time,int seconds,char * resultTime)已封装在timeutil.dll中,getDateTime的功能是根据传入的日期字符串time(如2008-09-24 16:56:24),秒偏移量seconds,计算返回结果日期字符串resultTime,代码如下:
int hours =atoi(lr_eval_string("hours")); |
注意点:该函数为LoadRunner提供了调用外部接口的能力。
3.3.封装,构建可重用脚本
3.3.1.简单函数封装
LoadRunner使用C语言作为脚本,因此只要是合法的C代码都可以在LoadRunner中运行。为了提高脚本可读性和脚本生产效率,有必要将性能测试脚本模块化。
客服3.0工作流系统,查询工单池是一个很常见的操作。我们可以把查询工单池操作封装为一个queryTTPool函数,函数体如下,在脚本中,将所有的查询工单池操作替换为queryTTPool函数调用,提高了脚本的可读性:
//查询工单池 |
3.3.2.DLL封装
使用DLL有很多好处。高度重用的函数制作成DLL,方便脚本调用。将与IVR交互的消息函数封装成DLL后,便可利用LoadRunner测试IVR性能。制作DLL可以选择VC或者MinGW Developer Studio等工具,至于DLL的制作细节,本文不作介绍,请参见相关指导书。
4 脚本调试
LoadRunner的VUser Generator本身的调试功能比较弱,只能设置断点,无法单步跟踪。当脚本出现问题时,可以使用lr_debug_message,lr_output_message,lr_eval_string等函数协助定位。
脚本错误大部分原因都是向服务器发送的数据不对,因此还可以利用HttpAnalyzer工具进行HTTP协议跟踪,通过比较LoadRunner发送的数据和浏览器发送的数据,便能很快定位出问题根源。