「资料合集」性能测试工具LR常见问题汇总
上一篇 / 下一篇 2016-05-17 14:08:01 / 个人分类:测试工具
SD}?O0本文是收集整理LR常见的问题,如果你有收集整理常见的问题,联系老徐Q957863300补充完善;本文意义:让所有使用LR的同学,在此处能找到LR日常碰到问题的解决方案。本文系网络收集,非原创;1.LR 脚本为空的解决方法:
1)如果安装了IE以外的浏览器,并且IE不是默认浏览器,则无法生成录制脚本
5Kw/RIuO02)如果录制脚本时IE不能打开,则需要将浏览器的IE工具高级选项中,将“启用第三方浏览器扩展”的51Testing软件测试网p0u@o-^8MbpO
勾选去掉51Testing软件测试网+m&JLlTcR C"w
3)lr自带的webtours系统,如果点击Flights选项,出现空白页面,请检查本机oracle的 PERL5LIB环境
W6RzJR D-BZ:Q c02.LoadRunner录制脚本时为什么不弹出IE浏览器?
当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。51Testing软件测试网 k&q:\@%q H@du#^
启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题
jw"h.I+H KD0F0提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。因此建议运行LoadRunner得主机上保持一个干净的测试环境。
A ['Gif03.HTML-based script与URL-based script的脚本有什么区别?
使用“HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;
%\[h!j0[^0d0使用“URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。51Testing软件测试网dna4S3kT@7p0G
通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-based script”模式进行录制。
&`0ryw.Q%|,n04.运行时的Pacing设置主要影响什么?
Pacing主要用来设置重复迭代脚本的间隔时间。共有三种方法:A:上次迭代结束后立刻开始、 B:上次迭代结束后等待固定时间、C:按固定或随机的时间间隔开始执行新的迭代。51Testing软件测试网o5y.@} x-R&i
根据实际需要设置迭代即可。通常,没有时间间隔会产生更大的压力。
-a*QrCC&`05.运行时设置Log标签中,如果没有勾选“Enable logging”,则手工消息可以发送吗?
Enable logging选项仅影响自动日志记录和通过lr_log_message发送的消息。即使没有勾选,虚拟用户脚本中如果使用lr_message、lr_output_message、lr_error_message,仍然会记录其发出的消息。
RA|v@R.~b06.VuGen会修改录制浏览器中的代理服务器设置吗?
会修改。在开始录制基于浏览器的Web Vuser脚本时,VuGen首先会启动指定的浏览器。然后,VuGen会指示浏览器访问VuGen代理服务器。为此,VuGen会修改录制浏览器上的代理服务器设置。默认情况下,VuGen会立即将代理服务器设置更改为Localhost:7777。录制之后,VuGen会将原始代理服务器设置还原到该录制浏览器中。因此,在VuGen进行录制的过程中,不可以更改代理服务器设置,否则将无法正常进行。51Testing软件测试网#bfM t"ds"xPhtn
7.在LoadRunner脚本如何输出当前系统时间?
LoadRunner提供了char *ctime(const time_t *time)函数,调用参数为一个Long型的整数指针,用于存放返回时间的数值表示。
C\3dSA0调用语句与返回值如下示例:51Testing软件测试网7q1P1Sq(o6O\
typedef long time_t;
8t1\ `&PJ Dn*A0Action()51Testing软件测试网!Cwt Z$AF&PNc
{
|W [(H3\'v'N^;q0time_t t;51Testing软件测试网 A/EV{+|#B9z5`$X
lr_message(“Time in seconds since 1/1/70: %ldn”,time(&t));
)e)c(Wx]0lr_message(“System time and date: %s”,ctime(&t));
$k:x wVzzj"u|hQi0}51Testing软件测试网,m/TM8d&q"y2U%u2@/_
输出结果为:
qQOu%Q){0Time in seconds since 1/1/70: 1185329968
xz f"w%g0System time and date:Wed Jul 25 10:19:28 200751Testing软件测试网 OOfCW;kM
8.一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数大于1时,如果进行回放则只能成功迭代一次。为什么从第二次迭代开始发生错误?
这种现象多是由于在“Run-time Setting”的“Browse Emulation”的设置中,勾选了“Simulate a new user on each iteration”及其下面的选项“Clear cache on each iteration”这两个选项的含义是每次迭代时模拟一个新的用户及每次迭代时清除缓存。51Testing软件测试网Q%Ma1Z*y6[/lm
由于脚本迭代时,init和end只能执行一次,如果每次迭代都模拟一个新的用户并清除缓存,则用户登录信息将一并清除,因此迭代时可能会发生错误。
#t0d.\ U Wp6}e]09.虚拟客户脚本“Run-time Setting”中的线程和进程运行方式的区别?
如果选择“Run Vuser as a process”,则场景运行时会为每一个虚拟用户创建一个进程;选择“Run Vuser as a thread”则将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,这种方式的运行效率更高,能造成更大的压力,时默认选项。51Testing软件测试网0fh?D+x2[n1Eu
另外,如果启用了IP欺骗功能,则先在Controller中选中Tools菜单下的“Expert Mode”,然后将Tools菜单下的“Options>General”标签页中的IP地址分配方式也设置为与Vuser运行方式一致,同为线程或进程方式。51Testing软件测试网/e@;y _r1m
10.在Controller中运行Web相关测试场景时,经常会有很多超时错误提示,如何处理这类问题?
这主要有脚本的默认超时设置引起。当回放Web脚本时,有时候由于服务器响应时间较长,会产生超时的错误。这时需要修改脚本的运行时配置。
(^ T6c3T"s[b0进入“Run-time Setting”对话框后,依次进入“Internet Protocol→Preference”。然后点击“Options…”按钮,进入高级设置对话框,可以修改各类超时设置的默认值。
mPJma K011.为什么Windows系统中的CPU、内存等资源仍然充足,但是模拟的用户数量却上不去-27796?
在Windows计算机的标准设置下,操作系统的默认限制只能使用几百个Vuser,这个限制与CPU或内存无关,主要是操作系统本身规定了默认的最大线程数所导致。要想突破Windows这个限制,须修改Windows注册表。以Windows XP Professional为例。51Testing软件测试网$M9t:M!G'? FgG
(1)打开注册表后,进入注册表项HKEY_LOCAL_MACHINE中的下列关键字:SystemCurrentControlSetControlSession ManagerSubSystems。51Testing软件测试网:Y"n6K!d ~;t:r9|
(2)找到Windows关键字,Windows关键字如下所示:
G)z:yC~ h0%SystemRoot%system32csrss.exe bjectDirectory=Windows51Testing软件测试网#E/W(eG#BkF |
SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1
Sz5wxs-X3x0ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2
~"eTHvm5Q0ProfileControl=Off MaxRequestThreads=16
"Q t? joHm|0SharedSection=1024,3072,512关键字的格式为xxxx,yyyy,zzz。其中,xxxx定义了系统范围堆的最大值(以KB为单位),yyyy定义每个桌面堆得大小。51Testing软件测试网Z3fsa wT
(3)将yyyy的设置从3072更改为8192(即8MB),增加SharedSection参数值。
AE1Mjbjj0通过对注册表的更改,系统将允许运行更多的线程,因而可以在计算机上运行更多的Vuser。这意味着能够模拟的最大并发用户数量将不受Windows操作系统的限制,而只受硬件和内部可伸缩性限制的约束。51Testing软件测试网9D.o R}0W^n@
12.性能测试 往往需要准备大批量的数据,大批量数据的生成方法有很多种,常见的有:
(1)编写SQL语句来插入数据51Testing软件测试网uvngG!U
(2)使用DataFactory等专业的数据生成工具
WB\@b^Z @0(3)通过LoadRunner录制回放的方式重复执行生成大批量数据
4Fj'~*A!z@Ca3G Y0Tips:51Testing软件测试网o(ZQ5W'P;{K#l3?]
使用DataFactory插入nchar数据类型的数据时会出现空值的情况,可以先修改数据库的数据类型设置,插完数据后再改回来
D,c:Q?+d)W013.录制脚本中包含中文,出现乱码怎么办?
把录制选项中的Support charset选中UTF-8
'_&G | h]z6A0录制脚本后,切换到树视图中,打开相应的脚本页面。在右侧的PageView中录制的脚本呈现中文版式,但是当切换到Server Response中,所有的中文全部换成的乱码,如“勌缞仫訆”。51Testing软件测试网6p'F|cl?7m)x w)x \f*h
原因是服务器端没有把响应的编码设置为gb231251Testing软件测试网uCV FR`2E7b.Av
在IIS中找到Web.Config文件,在<system.web>….</system.web>节加入<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>后再次录制脚本,乱码变中文。51Testing软件测试网HF }$}q n e
14.LoadRunner回放脚本时,在浏览器显示的中文是乱码
解决办法(1):
|0x;]2O!BW j0A0首先设置Run-Time Settings – Browser – Browser Emulation – User-Agent51Testing软件测试网,vB4|/@Q gm3r$\8BOw
然后设置IE:
w;]0Xu7ML0查看-编码-钩上“自动选择”和Unicode(UTF-8)。51Testing软件测试网'XXG"jS
解决办法(2):
gew9SW1~0使用lr_convert_string_encoding函数来转换编码51Testing软件测试网h5{n){x%O0i2J
下面是一个使用的例子:51Testing软件测试网9X Rq V8Z+e}1x8mt
lr_convert_string_encoding(lr_eval_string("{ReplyContents}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"ReplyMessage");
A2W k\/b C%PK0web_submit_data("postreply.aspx_2",
jkr0g'ygI4c0"Action=http://127.0.0.1/postreply.aspx?infloat=1&topicid=2&&inajax=1",
v6iLI5u0"Method=POST",
#v _v!rK0"EncType=multipart/form-data",
Me o q'M][k:a0"RecContentType=text/xml",51Testing软件测试网D3GCG#d
"Referer=http://127.0.0.1/showtopic-2.aspx",
:hh?j&c6[g5EA0"Snapshot=t9.inf",51Testing软件测试网 zF8dQ3M[#V*NiQ/j
"Mode=HTML",51Testing软件测试网#Z6SD S0K
ITEMDATA,51Testing软件测试网 zs+^K)d:GVTtu
"Name=iconid", "Value=0", ENDITEM,
7T$CJ%Pfa/p:d*i0"Name=title", "Value=", ENDITEM,51Testing软件测试网y fyr#J dd%w5\/}
"Name=wysiwyg", "Value=0", ENDITEM,
1eA;nD*r E0"Name=checkbox", "Value=0", ENDITEM,
1|-j#[5m3q w7NRoC0"Name=message", "Value=[localimg=180,112]1[/localimg]rnrn{ReplyMessage}", ENDITEM,
_7}w`*|ED1}"SI0"Name=e_mediatyperadio", "Value=on", ENDITEM,
2[5x:B9}|Gf{X0"Name=sl_attachdesc", "Value=", ENDITEM,
w |(}r;N#^A-qi0"Name=attachid", "Value=", ENDITEM,
x+lG%t,B N?'L0"Name=attachdesc", "Value=", ENDITEM,51Testing软件测试网(`rN5J6i%cjd
"Name=localid", "Value=", ENDITEM,
*L7s4?7l zg9Z0"Name=attachdesc", "Value=", ENDITEM,51Testing软件测试网 V*IS-u:x2G/N
"Name=localid", "Value=1", ENDITEM,
J"x6B_+_r/Gbd0"Name=attachdesc", "Value=", ENDITEM,51Testing软件测试网'pv!d\|2OHt2s"x
"Name=localid", "Value=2", ENDITEM,51Testing软件测试网 r |}pzS$vy8a|
"Name=emailnotify", "Value=on", ENDITEM,51Testing软件测试网G^.F5tU r8{v
"Name=postreplynotice", "Value=on", ENDITEM,51Testing软件测试网4Xv/XI$Y{!EAL
"Name=postfile", "Value=", "File=Yes", ENDITEM,51Testing软件测试网(GtO?a6t
"Name=postfile", "Value=D:图片收集It's about time.JPG", "File=Yes", ENDITEM,
K$i)B a e`0h(@ ]5F0"Name=postfile", "Value=", "File=Yes", ENDITEM,51Testing软件测试网QVj}a*pTs
"Name=uploadallowmax", "Value=10", ENDITEM,51Testing软件测试网7ne;I X n{6h3eA
"Name=uploadallowtype", "Value=jpg,gif", ENDITEM,51Testing软件测试网-[gP(lz`
"Name=thumbwidth", "Value=300", ENDITEM,51Testing软件测试网 m l8l d[sh
"Name=thumbheight", "Value=250", ENDITEM,
,S8THbx'_0"Name=noinsert", "Value=0", ENDITEM,51Testing软件测试网3]v\'_L{yn6oO
LAST);51Testing软件测试网] e:LM&P+V0Zc d(~q6^
15.怎样抓取有相同左右边界的动态value?
怎样抓取有相同左右边界的动态value?例如:
6?0wE YO)MC R0o0stateID="d7lg0ehmjkkm6uin3s4boei7oq">
C)M?eV.X5`0stateID="cvopakp46ftsf8mh6l37ti3ubm">51Testing软件测试网6JRS7] y K-hcp
stateID="bv9mja8gtgr39ddibm5t9163re">
0Xla ^XN#EW0web_reg_save_param里的ORD应该怎样设置?
B:Sqa#]J5Z0ORD: Indicates the ordinal position or instance of the match. The default instance is 1. If you specify "All," it saves the parameter values in an array.51Testing软件测试网%@*fFC[
例子:
mGg"] \U0char outFlightParam[50]; // The name of the parameter for correlation51Testing软件测试网ziQ[H1I
char outFlightParamVal[50]; // The formatted value of outFlightParam51Testing软件测试网r)jbR_7f ^CB
web_reg_save_param("outFlightVal",51Testing软件测试网~N?aF
"LB=outboundFlight value=", "RB=>",51Testing软件测试网1z-?+h/S)U-A
"ORD=ALL",51Testing软件测试网"u'Xw4xdv8bU
"SaveLen=18",51Testing软件测试网Wv {|&gm
LAST);51Testing软件测试网#un/H/r0?ZIX:L
web_submit_form("reservations.pl",
^W:N%Jon0"Snapshot=t4.inf",
0o.VZi2TW|5z!Bl0ITEMDATA,
/@^"L9t:a@u8s;G ~0"Name=depart", "Value=London", ENDITEM,51Testing软件测试网}/K Qcm*JO
"Name=departDate", "Value=11/20/2003", ENDITEM,
jjP{1R?(Vj0"Name=arrive", "Value=New York", ENDITEM,
0] {4fl@0"Name=returnDate", "Value=11/21/2003", ENDITEM,51Testing软件测试网 g'dF]$WH
"Name=numPassengers", "Value=1", ENDITEM,
4j4l-d5k dh[~0"Name=roundtrip", "Value=<OFF>", ENDITEM,51Testing软件测试网/dGy!P czaM
"Name=seatPref", "Value=None", ENDITEM,
F L vz\0"Name=seatType", "Value=Coach", ENDITEM,
QJ3I*hRaC0"Name=findFlights.x", "Value=83", ENDITEM,
9zJ-f(cw lo5\0"Name=findFlights.y", "Value=16", ENDITEM,51Testing软件测试网NQ+u2|]n
LAST);
+[5O6Z8uEW,bH0sprintf(outFlightParam, "{outFlightVal_%s}",
#F9Mg4LkB0lr_eval_string("{outFlightVal_count}"));
)u7Mo`UR0sprintf(outFlightParamVal, "Value=%s",51Testing软件测试网x-t;E3DT
lr_eval_string(outFlightParam));51Testing软件测试网-i'P\Dx&i1F9d
lr_message("The value argument is : %s", outFlightParamVal);51Testing软件测试网C3@"E+c8bE1s
web_submit_form("reservations.pl_2",
H ?e.J$s.s0"Snapshot=t5.inf",
D9w}w4tC}'U,hnU n0ITEMDATA,