1. LR 脚本为空的解决方法
1)去掉ie设置中的第三方支持取消掉
2)在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen.exe文件.
有可能是由于录制的URL地址采用的是localhost的问题,改成分配的IP地址或127.0.0.1试试。
2. LoadRunner录制脚本时为什么不弹出IE浏览器?
当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。
启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题
提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。因此建议运行LoadRunner得主机上保持一个干净的测试环境。
3. 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”模式进行录制。
4. VuGen会修改录制浏览器中的代理服务器设置吗?
会修改。在开始录制基于浏览器的Web Vuser脚本时,VuGen首先会启动指定的浏览器。然后,VuGen会指示浏览器访问VuGen代理服务器。为此,VuGen会修改录制浏览器上的代理服务器设置。默认情况下,VuGen会立即将代理服务器设置更改为Localhost:7777。录制之后,VuGen会将原始代理服务器设置还原到该录制浏览器中。因此,在VuGen进行录制的过程中,不可以更改代理服务器设置,否则将无法正常进行
5. 一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数大于1时,如果进行回放则只能成功迭代一次。为什么从第二次迭代开始发生错误?
这种现象多是由于在“Run-time Setting”的“Browse Emulation”的设置中,勾选了“Simulate a new user on each iteration”及其下面的选项“Clear cache on each iteration”这两个选项的含义是每次迭代时模拟一个新的用户及每次迭代时清除缓存。
由于脚本迭代时,init和end只能执行一次,如果每次迭代都模拟一个新的用户并清除缓存,则用户登录信息将一并清除,因此迭代时可能会发生错误。
6. “Run-time Setting”中的线程和进程运行方式的区别?
如果选择按照进程方式运行, 每个用户都将启动一个mmdrv进程,多个mmdrv进程会占用大量内存及其他系统资源,这就限制了可以在任一负载生成器上运行的并发用户数的数量,因为负载机的资源(内存及其他系统资源)是有限的。
如果选择按照线程方式运行,在默认情况下,controller为每50个用户仅启动一个mmdrv进程,而每个用户都按线程方式来运行,这些线程用户将共享父进程的内存段,这就节省了大量内存空间,从而可以在一个负载生成器上运行更多的用户。(如果选择线程方式来运行用户,每个进程中会多出几个线程,例如是53个,多出来的进程可能是用于维护进程之间的运行的)
选择线程方式虽然可以减少启动的mmdrv进程数,减少了内存的占用,但是也容易出现一个问题,例如,同一个测试场景,用线程并发就会出现超时失败或报 错,而用进程并发就没错。为什么呢?因为线程的资源是从进程资源中分配出来的,因此同一个进程中的多个线程会有共享的内存空间,假设a线程要用资源就必须 等待b线程释放,而b线程也在等待其他资源释放才能继续,这样就会出现这个问题。
7. 为什么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操作系统的限制,而只受硬件和内部可伸缩性限制的约束。
8. 录制脚本中包含中文,出现乱码怎么办?
把录制选项中的Support charset选中UTF-8
录制脚本后,切换到树视图中,打开相应的脚本页面。在右侧的PageView中录制的脚本呈现中文版式,但是当切换到Server Response中,所有的中文全部换成的乱码,如“勌缞仫訆”。
原因是服务器端没有把响应的编码设置为gb2312
在IIS中找到Web.Config文件,在<system.web>….</system.web>节加入<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>后再次录制脚本,乱码变中文。
9. LoadRunner回放脚本时,在浏览器显示的中文是乱码
解决办法(1):
首先设置Run-Time Settings – Browser – Browser Emulation – User-Agent
然后设置IE:
查看-编码-钩上“自动选择”和Unicode(UTF-8)。
解决办法(2):
使用lr_convert_string_encoding函数来转换编码
下面是一个使用的例子:
lr_convert_string_encoding(lr_eval_string("{ReplyContents}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"ReplyMessage"); web_submit_data("postreply.aspx_2", "Action=http://127.0.0.1/postreply.aspx?infloat=1&topicid=2&&inajax=1", "Method=POST", "EncType=multipart/form-data", "RecContentType=text/xml", "Referer=http://127.0.0.1/showtopic-2.aspx", "Snapshot=t9.inf", "Mode=HTML", ITEMDATA, "Name=iconid", "Value=0", ENDITEM, "Name=title", "Value=", ENDITEM, "Name=wysiwyg", "Value=0", ENDITEM, "Name=checkbox", "Value=0", ENDITEM, "Name=message", "Value=[localimg=180,112]1[/localimg]\r\n\r\n{ReplyMessage}", ENDITEM, "Name=e_mediatyperadio", "Value=on", ENDITEM, "Name=sl_attachdesc", "Value=", ENDITEM, "Name=attachid", "Value=", ENDITEM, "Name=attachdesc", "Value=", ENDITEM, "Name=localid", "Value=", ENDITEM, "Name=attachdesc", "Value=", ENDITEM, "Name=localid", "Value=1", ENDITEM, "Name=attachdesc", "Value=", ENDITEM, "Name=localid", "Value=2", ENDITEM, "Name=emailnotify", "Value=on", ENDITEM, "Name=postreplynotice", "Value=on", ENDITEM, "Name=postfile", "Value=", "File=Yes", ENDITEM, "Name=postfile", "Value=D:\\\\图片收集\\\\It's about time.JPG", "File=Yes", ENDITEM, "Name=postfile", "Value=", "File=Yes", ENDITEM, "Name=uploadallowmax", "Value=10", ENDITEM, "Name=uploadallowtype", "Value=jpg,gif", ENDITEM, "Name=thumbwidth", "Value=300", ENDITEM, "Name=thumbheight", "Value=250", ENDITEM, "Name=noinsert", "Value=0", ENDITEM, LAST);