LoadRunner常见问题解决方法

本文档列举了LoadRunner在录制、运行脚本时遇到的各种问题,包括脚本为空、浏览器不弹出、HTML与URL脚本区别、Pacing设置、Log选项、证书支持、VuGen与IE设置、系统时间输出、迭代错误、线程与进程运行方式、超时错误处理、数据生成方法、中文乱码问题等,并提供了详细的解决方法。这些问题涉及脚本录制、运行时设置、错误处理等多个方面,旨在帮助LoadRunner用户解决实际操作中遇到的问题。
摘要由CSDN通过智能技术生成

1.LR 脚本为空的解决方法如下:

1.去掉ie设置中的第三方支持取消掉

2.在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen.exe文件.

有可能是由于录制的URL地址采用的是localhost的问题,改成分配的IP地址或127.0.0.1试试。

3、插入文本检查点步骤时,使用web_reg_find,通常TextPfx和TextSfx中会包含双引号,需要进行转义(用斜杠),例如:

web_reg_find("Search=Body",

"SaveCount=Welcome",

"TextPfx=欢迎",

"TextSfx=",

LAST)

 遇到flight界面为空的解决的可能方法:

1、如果安装了IE以外的浏览器,并且IE不是默认浏览器,则无法生成录制脚本

2、如果录制脚本时IE不能打开,则需要将浏览器的IE工具高级选项中,将“启用第三方浏览器扩展”的

勾选去掉

3、lr自带的webtours系统,如果点击Flights选项,出现空白页面,请检查本机oracle的 PERL5LIB环境

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

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

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

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

3.HTML-based scriptURL-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”模式进行录制。

4.运行时的Pacing设置主要影响什么?

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

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

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

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

   6.VuGen支持Netscape的客户证书吗?

  不支持。目前的VuGen 8.0版本中仅支持Internet Explorer的客户端证书。录制脚本时可以先从Netscape中导出所需的证书,然后将其导入到Internet Explorer中,并确保以相同的顺序导出和导入这些证书。而且,在每台将要录制或运行需要证书的Web Vuser脚本的计算机上都要重复执行前面的过程。

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

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

   8.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

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

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

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

  10.虚拟客户脚本“Run-time Setting”中的线程和进程运行方式的区别?

  如果选择“Run Vuser as a process”,则场景运行时会为每一个虚拟用户创建一个进程;选择“Run Vuser as a thread”则将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,这种方式的运行效率更高,能造成更大的压力,时默认选项。

  另外,如果启用了IP欺骗功能,则先在Controller中选中Tools菜单下的“Expert Mode”,然后将Tools菜单下的“Options>General”标签页中的IP地址分配方式也设置为与Vuser运行方式一致,同为线程或进程方式。

  11.Controller中运行Web相关测试场景时,经常会有很多超时错误提示,如何处理这类问题?

  这主要有脚本的默认超时设置引起。当回放Web脚本时,有时候由于服务器响应时间较长,会产生超时的错误。这时需要修改脚本的运行时配置。

  进入“Run-time Setting”对话框后,依次进入“Internet Protocol→Preference”。然后点击“Options…”按钮,进入高级设置对话框,可以修改各类超时设置的默认值。

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

   在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操作系统的限制,而只受硬件和内部可伸缩性限制的约束。

14.Error -27728: Step download timeout (120 seconds)的解决方法

loadruner报错:Error -27728: Step download timeout (120 seconds)如何解决语法检查通过,但是在并发执行一个查询时候报错Action.c(16): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s), 请问有啥子解决方法,我使用web_set_timeout ,好象不起作用,直接在option中设置timeout时间为600,(单位应该是秒吧)还是没有起作用,结果都还是提示(120seconds),说明还是以120秒来判断的;使用lrs_set_recv_timeout,语法检查不过,说明库函数里面没有这个函数。尝试步骤:设置超时时间到600秒,回放还是出错。后来我设置了runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。

首先LR是通过Microsoft WinInet DLL去录制web协议的!但是在Control运行的时候它默认通过socket去模拟请求,因为这些可以真实的模拟带宽,而采用Microsoft WinInet DLL通过这个DLL去访问网卡方式去模拟带宽,使得模拟不是很精确!而且也不支持unix的应用,但是使用这个确实有时无法处理winnet Dll的一些请求,我认为是它的一些BUG,比如说:回放时它会检查Content-Length,但是网页支持receive more data时,这时socket模拟会一直等待直到timeout!先说了一些优缺点,最后回到这个问题!这个问题分两个方面分析:

第一:你要明白web_set_timeout()这个函数的适用范围!比如说一个web_submit_data()中实际涵盖了10个对Server 端的请求,这个函数是针对10个请求的总和时间的!(别犯低级错误,timeout分了connect,receive以及download三个部分:) ) 第二:就是我解释的上面的一些BUG问题!WinInet dll在新版本中处理请求时可以异步的,就是不再是那种连接等待然后超时模式!但是LR用的socket是同步请求!只有等到timeout才会退出!microsoft已经明确表示INTERNET_OPTION_RECEIVE_TIMEOUT 不再适用于 Microsoft Internet Explorer 5.0,显而易见,他们处理请求采取了异步处理的方式!呵呵࿰

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值