loadrunner常见问题解决方法

1  LoadRunner录制脚本时为什么不弹出IE浏览器?

解决方法:

当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。

  启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题

  提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。因此建议运行LoadRunner得主机上保持一个干净的测试环境。

如何调整参数化的最大个数?

解决方法:

修改配置文件vugen.ini(8.1版本在C:\WINDOWS下;9.5版本在config文件夹下),将文件中的

[ParamTable]

MaxVisibleLines=100

把100改成你想显示的数据就可以。

3  脚本的调试方法?

参考方法:

一种.设置断点:在需要设置断点的语句前按F9,程序运行到断点语句后会暂停,这是可用F10单步调试程序。

一种.打开Extended log:

在Run-Time SettingsàLogàExtended log,根据需要勾选Parameter substitution、Data returned by server 和Advanced trace。

一种.注释掉多余的语句:很多回放时出错的脚本都是因为多余的语句。

注意(log文件查看):

1.首先在vgen中,写输出函数的输出信息,将我们所想要了解的信息用函数输出,主要有这么几个函数:lr_output_message,lr_error_message和lr_log_message。这些函数请参阅helpàfunction reference。  

其次在Run-Time Settingsàlog下勾选always send message,这样才能写出log,lr_log_message把信息输到mdrv.log文件中,lr_output_message把信息输到mdrv.log和output.txt。

2.在controller中,查看log文件,路径“C:\Documents and Settings\USERNAME\Local Settings\Temp\res\log”。不过,在controller 我们也要设置runtime settings才行。

具体该场景的日志结果存哪,可以查看controller的result界面的result setting定义的目录。

(lr_output_message ("%s",lr_eval_string("{NewParam_1}") );打印参数)

4  脚本中出现中文乱码,回放脚本时停止在乱码位置,脚本无法运行?

错误现象:某个链接或者图片名称为中文乱码,脚本运行无法通过。

错误分析:脚本录制可能采用的是URL-based script方式,如果程序定义的字符集合采用的是国际标准,脚本就会出现乱码现象。

解决办法:重新录制脚本,在录制脚本前,打开录制选项配置对话框进行设置,在"Recording Options"的"Advanced"选项里先将"Support Charset"选中,然后选中支持"UTF-8"的选项(非绝对,有时非UTF-8+HTML正常显示,可以交互使用,直到未显示乱码且能正常运行通过)。

在录制Web协议脚本回放脚本的过程中,会出现HTTP服务器状态代码,例如常见的页面-404错误提示和-500错误提示

错误现象1:-404 Not Found服务器没有找到与请求URI相符的资源,但还可以继续运行直到结束。

错误分析:此处与请求URI相符的资源在录制脚本时已经被提交过一次,回放时不可再重复提交同样的资源,而需要更改提交资源的内容,每次回放一次脚本都要改变提交的数据,保证模拟实际环境,造成一定的负载压力。

解决办法:在出现错误的位置进行脚本关联,在必要时插入相应的函数。

错误现象2:-500 Internal Server Error服务器内部错误,脚本运行停止。

错误分析:服务器碰到了意外情况,使其无法继续回应请求。

解决办法:出现此错误是致命的,说明问题很严重,需要从问题的出现位置进行检查,此时需要此程序的开发人员配合来解决,而且产生的原因根据实际情况来定,测试人员无法单独解决问题,而且应该尽快解决,以便于后面的测试。

说明:

404 找不到,Web 服务器找不到您所请求的文件或脚本。请检查URL 以确保路径正确。

500 服务器的内部错误,Web 服务器不能执行此请求。请稍后重试此请求。

回放脚本过程中未执行检查方法Web_find

错误分析:由于检查功能会消耗一定的资源,因此LoadRunner默认关闭了对文本以及图像的检查,所以在设置检查点后,需要开启检查功能。

解决办法:打开运行环境设置对话框进行设置,在"Run-time Settings"的"Internet Protocol"选项里的"Perference"中勾选"Check"下的"Enable Image and text check"选项。

7  LoadRunner 8.0录制Web Services协议的脚本回放出现错误提示停止脚本运行?

错误现象:利用LoadRunner 8.0版本来录制Web Services协议的脚本没有任何错误提示,回放脚本时会出现如下错误提示"Error:server returned an incorrectly formatted SOAP response"。

错误分析:出现此错误的原因是LoadRunner8.0在录制Web Services协议的脚本时存在一个缺陷:如果服务器的操作系统是中文的,VuGen会自动将WSDL文件的头改为<?xml version="1.0"encoding="zh_cn" ?>,所以才会有此错误提示。

解决办法:下载两个补丁,分别为"LR80WebServicesFPI_setup.exe"和"lrunner_web_ services_patch_1.exe"安装上即可。

8  吞吐量计算所需宽带

每个考生考完一场考试的流量,可以用HttpWatch看,也可以从lr的录制日志里看,每场考试有多少页面,每个页面有多少字节数,加起来就是每个考生一场考试的流量;其实也相当于一份试卷从服务器下载下来的字节数

假设:

每页面事务返回信息量为1MB,一场考试有100个页面事务,考试时间2小时;
考试规则:考生必须在开考时间开始后15分钟内进入考务系统,考试时间到时系统自

动提交试卷;

计算过程:
一场850人的考试页面事务总数=1*100*850=85000;平均TPS=85000/2小时=11.8;
高峰期:(登录和最后提交考卷)
15分钟内850个用户必须全部登陆进行考试;假设前5分钟有80%用户登陆
前5分钟内的事务数=850*80%+85000*(5分钟/2小时)=4220
高峰期TPS=4220/5分钟=14;最高TPS约25
而一个页面事务流量为1MB,每秒流量=1MB*25=25MB/s
需要带宽200Mbps的网络才可支持25MB/s的流量。

HTML-based script与URL-based script的脚本有什么区别

使用“HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。

通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-based script”模式进行录制。

10 为什么脚本中添加了检查方法Web-find,但是脚本回放时却没有执行

由于检查点功能会耗费一定的资源,因此LoadRunner默认关闭了对文本及图像的检查。要想开启检查功能,必须修改运行时的配置Run-time Setting。

进入“Run-time Setting”对话框,依次进入“Internet Protocol→Preferences”,勾选Checks下的“Enable Image and text check”选项即可。

检查执行结果时推荐使用web_reg_find方法。

11  运行时的Pacing设置主要影响什么

Pacing主要用来设置重复迭代脚本的间隔时间。共有三种方法:上次迭代结束后立刻开始、上次迭代结束后等待固定时间、按固定或随机的时间间隔开始执行新的迭代。

根据实际需要设置迭代即可。通常,没有时间间隔会产生更大的压力。

12  运行时设置Log标签中,如果没有勾选“Enable logging”,则手工消息可以发送吗

Enable logging选项仅影响自动日志记录和通过lr_log_message发送的消息。即使没有勾选,虚拟用户脚本中如果使用lr_message、lr_output_message、lr_error_message,仍然会记录其发出的消息。

13  LoadRunner 8.0版本的VuGen在录制Web Services协议的脚本时一切正常,而回放时报出错误提示“Error:server returned an incorrectly formatted SOAP response”。

造成这种情况的主要原因是LoadRunner 8.0的VuGen在录制Web Service协议的脚本时存在一个缺陷:如果服务器的操作系统是中文的,VuGen会自动将WSDL文件的头改为<?xml version=”1.0” encoding=”zh_cn”?>,因此会有上面的错误提示。

解决方法:把“LR80WebservicesFPI_setup.exe”和“lrunner_web_sevices_path_1.exe”两个补丁打上即可解决。

14  VuGen会修改录制浏览器中的代理服务器设置吗

会修改。在开始录制基于浏览器的Web Vuser脚本时,VuGen首先会启动指定的浏览器。然后,VuGen会指示浏览器访问VuGen代理服务器。为此,VuGen会修改录制浏览器上的代理服务器设置。默认情况下,VuGen会立即将代理服务器设置更改为Localhost:7777。录制之后,VuGen会将原始代理服务器设置还原到该录制浏览器中。因此,在VuGen进行录制的过程中,不可以更改代理服务器设置,否则将无法正常进行。

15  在LoadRunner脚本如何输出当前系统时间

LoadRunner提供了char *ctime(const time_t *time)函数,调用参数为一个Long型的整数指针,用于存放返回时间的数值表示。

调用语句与返回值如下示例:

typedef long time_t;
Action()
{
        time_t t;
        lr_message(“Time in seconds since 1/1/70: %ld\n”,time(&t));
        lr_message(“System time and date: %s”,ctime(&t));
}

输出结果为:

Time in seconds since 1/1/70: 1185329968

System time and date:Wed Jul 25 10:19:28 2007

16  一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数大于1时,如果进行回放则只能成功迭代一次。为什么从第二次迭代开始发生错误

这种现象多是由于在“Run-time Setting”的“Browse Emulation”的设置中,勾选了“Simulate a new user on each iteration”及其下面的选项“Clear cache on each iteration”这两个选项的含义是每次迭代时模拟一个新的用户及每次迭代时清除缓存。

由于脚本迭代时,init和end只能执行一次,如果每次迭代都模拟一个新的用户并清除缓存,则用户登录信息将一并清除,因此迭代时可能会发生错误。

17  为什么Windows系统中的CPU、内存等资源仍然充足,但是模拟的用户数量却上不去

在Windows计算机的标准设置下,操作系统的默认限制只能使用几百个Vuser,这个限制与CPU或内存无关,主要是操作系统本身规定了默认的最大线程数所导致。要想突破Windows这个限制,须修改Windows注册表。以Windows XP Professional为例。

  1.打开注册表后,进入注册表项HKEY_LOCAL_MACHINE中的下列关键字:System\CurrentControlSet\Control\Session Manager\SubSystems。

  2.找到Windows关键字,Windows关键字如下所示:

  %SystemRoot%\system32\csrss.exe bjectDirectory=\Windows

  SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1

  ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2

  ProfileControl=Off MaxRequestThreads=16

  SharedSection=1024,3072,512关键字的格式为xxxx,yyyy,zzz。其中,xxxx定义了系统范围堆的最大值(以KB为单位),yyyy定义每个桌面堆得大小。

  3.将yyyy的设置从3072更改为8192(即8MB),增加SharedSection参数值。

  通过对注册表的更改,系统将允许运行更多的线程,因而可以在计算机上运行更多的Vuser。这意味着能够模拟的最大并发用户数量将不受Windows操作系统的限制,而只受硬件和内部可伸缩性限制的约束。

18  Controller中设置用户并发数量,但是运行时为何初始化的用户数量少于实际数量

主要是设置问题。在Tools→options→Run-time setting中可以设置每次最多初始化的虚拟用户。如果需要100个并发用户,则将该值设置为大于100的数值。另外,注意LoadRunner相关协议License的更新,确保使用的License能够允许所需要的并发用户数量。

19  如何让场景的用户执行发生错误继续运行,以保证不间断进行压力测试

用VuGen打开虚拟用户脚本后,进入“Run-time Settings”对话框后,依次进入“General→Miscellaneous”,可以看到Miscellaneous设置中关于“Error Handling”的配置。勾选“Continue on error”即可让虚拟用户发生错误继续运行。

20  有些Web测试结果分析图(例如每秒返回页面数)在测试结果分析图中无法看到,如何进行配置

用VuGen打开虚拟用户脚本后,进入“Run-time Settings”对话框后,依次进入“Internet Protocol>Preference”,可以看到一些Web性能图配置。

勾选上面的选项后,Controller将会在测试执行过程中生成数据,然后可在Analysis中查看相应的性能结果分析图。

21  安装时无法将值Disable Script Debugger 写入注册表

1. 运行“regedit”打开注册表编辑器。

2. 右键点击权限。HKEY_CURRENT_USER-Softwart-Microsoft-Internet Explorer-Main

3. 勾选everyone组的权限-Full Control(完全控制)

4. 返回安装页面点击重试,如果不行退出重启机器,安装lr

22  LR9.5英文版,录制脚本时,存在中文乱码?

问题:LR9.5英文版,录制脚本时,设置了Tools-->Recording Options-->Advanced-->Support charset-->UTF-8,但是录制的脚本中依旧存在中文乱码,录制的网站编码也是UTF-8的;LR9.5中文版,同样的录制操作,显示就是正常的,没有中文乱码。

解决方法:原因是服务器端没有把响应的编码设置为gb2312,在IIS中找到Web.Config文件,在<system.web>….</system.web>节加入<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>后再次录制脚本,乱码变中文。

23  程序挂起解决方法

在安装QTP或LoadRunner时,可能会遇到“安装程序已确定挂起重新启动,是否要立即退出安装以重新启动系统”的提示,但是重启电脑后再次启动安装程序,仍然有此错误提示,以下是我安装QTP时遇到的一个提示,如下图所示:

这里给出问题产生原因以及可能的解决方案:

原因:这是因为第一次安装失败(或者之前卸载不干净),但已经安装了部分软件造成的。

解决方法: 进入注册表编辑器,通过修改注册表的方法来解决。除了删除QTP或LoadRunner安装时遗留下的垃圾文件,还必须进行以下操作:在"开始"-"运行"中输入regedit,进入注册表编辑器,依次查找 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager,找到“PendingFileRenameOperations”值,并删除其中所有数据,之后就可以正常安装QTP或LoadRunner

24  多台测试机如何向服务器加压?

    解决方法:

  1. 需要一台PC安装controller,并把压测脚本部署在controller的PC上面。
  2. 其它物理机作为压力机,压力机需要安装好loadrunner agent(压力机可只安装该程序),并且保证controller的PC可以访问到压力机,最后需要保证压力机的网路环境可以访问压测环境(关闭防火墙)。
  3. 启动压力机的loadrunner agent process。
  4. 运行controller脚本(Generators可查看压力机情况)。

注意:添加压力机只需要输入Name,如下图:

 

猜你喜欢

转载自blog.csdn.net/king0964/article/details/87918880