Java【LoadRunner】loadrunner常见问题集中

LoadRunner常见问题
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=欢迎<a class=\”drop\” id=\”viewpro\”
onMouseOver=\”showMenu(this.id)\”>”,

“TextSfx=</a>”,

LAST)

2、蒙受flight界面为空的化解的或许方法:

1、要是设置了IE以外的浏览器,并且IE不是默许浏览器,则无法生成录制脚本

2、要是录制脚本时IE无法开拓,则必要将浏览器的IE工具高级选项中,将“启用第三方浏览器扩张”的

勾选去掉

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

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.运作时的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,总之,他们处理请求采用了异步处理的法子!呵呵!那下大约能够健全解释你的题目了!呵呵那里,

自己补偿如下:VuGen专用的按照套接字的回看是一种可伸缩以便举行负荷测试的轻型引擎。使用线程时是纯正的。基于套接字的发动机不接济socks代理服务器。假若在如此的条件中录制,应该运用winInet回看引擎。

15.性能测试往往需求预备大量的数额,大量多少的更动方法有无数种,常见的有:

(1)编写SQL语句来插入数据

(2)使用DataFactory等规范的多少变化工具

(3)通过LoadRunner录制重放的章程重新执行生成多量多少

Tips:

应用DataFactory插入nchar数据类型的多寡时会出现空值的景色,可以先修改数据库的数据类型设置,插完数据后再改回来

 

16.录制本子中涵盖汉语,现身乱码咋办?

把录制选项中的Support charset选中UTF-8

录制脚本后,切换来树视图中,打开相应的本子页面。在左侧的PageView中录制的本子突显中文版式,但是当切换来Server
Response中,所有的华语全体换成的乱码,如“勌缞仫訆”。

缘由是劳动器端没有把响应的编码设置为gb2312

在IIS中找到Web.Config文件,在<system.web>….</system.web>节到场<globalization
requestEncoding=”gb2312″ responseEncoding=”gb2312″
fileEncoding=”gb2312″/>后再也录制脚本,乱码变普通话。

17.LoadRunner回看本虎时,在浏览器突显的中文是乱码

解决办法(1):

首先设置Run-提姆(Tim)e 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);

18.得以在LR测试脚本的目录中找到参数文件,直接修改参数文件

The parameter file is stored in the script directory as .dat file
extension. It can be opened with a simple text editor like Notepad as it
is stored in pure text format. Therefore, you can manipulate the files
via the Notepad. You can also use office applications such as Microsoft
Excel or OpenOffice.org Calc to work on the file. This greatly the
amount of work required for maintaining a long list of data.

19.LR9.x启动VUGen时提示”Failed to connect
to server”

After upgrading to LoadRunner 9.x I started getting a window popup which
said “Failed to connect to server” every time I opened virtual user
generator (vugen.exe).

The solution to this was to close virtual user generator and delete the
[vugen.ini] file.

vugen.ini is found in the %systemroot% folder on your Windows PC
(usually C:\WINDOWS or C:\WINNT).

Once you’ve deleted the file, virtual user generator will open without
any issues and create a new vugen.ini file automatically.

20.怎么着抓取有一致左左边际的动态value?

什么样抓取有相同左左侧际的动态value?例如:

stateID=”d7lg0ehmjkkm6uin3s4boei7oq”>

stateID=”cvopakp46ftsf8mh6l37ti3ubm”>

stateID=”bv9mja8gtgr39ddibm5t9163re”>

web_reg_save_param里的ORD应该如何设置?

ORD: 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.

例子:

char outFlightParam[50]; // The name of the parameter for correlation

char outFlightParamVal[50]; // The formatted value of outFlightParam

web_reg_save_param(“outFlightVal”,

“LB=outboundFlight value=”, “RB=>”,

“ORD=ALL”,

“SaveLen=18”,

LAST);

web_submit_form(“reservations.pl”,

“Snapshot=t4.inf”,

ITEMDATA,

“Name=depart”, “Value=London”, ENDITEM,

“Name=departDate”, “Value=11/20/2003”, ENDITEM,

“Name=arrive”, “Value=New York”, ENDITEM,

“Name=returnDate”, “Value=11/21/2003”, ENDITEM,

“Name=numPassengers”, “Value=1”, ENDITEM,

“Name=roundtrip”, “Value=<OFF>”, ENDITEM,

“Name=seatPref”, “Value=None”, ENDITEM,

“Name=seatType”, “Value=Coach”, ENDITEM,

“Name=findFlights.x”, “Value=83”, ENDITEM,

“Name=findFlights.y”, “Value=16”, ENDITEM,

LAST);

sprintf(outFlightParam, “{outFlightVal_%s}”,

lr_eval_string(“{outFlightVal_count}”));

sprintf(outFlightParamVal, “Value=%s”,

lr_eval_string(outFlightParam));

lr_message(“The value argument is : %s”, outFlightParamVal);

web_submit_form(“reservations.pl_2”,

“Snapshot=t5.inf”,

ITEMDATA,

“Name=outboundFlight”,outFlightParamVal, ENDITEM,

“Name=reserveFlights.x”, “Value=92”, ENDITEM,

“Name=reserveFlights.y”, “Value=10”, ENDITEM,

LAST);

21.运行意况时提醒“Step download timeout
(120 seconds) has expired when downloading resource(s)”

vuser_init.c(12): Error -27728: Step download timeout (120 seconds) has
expired when downloading non-resource(s)(出现个别,可以忽略)

vuser_init.c(12): Error -27727: Step download timeout (120 seconds) has
expired when downloading resource(s). Set the “Step Timeout caused by
resources is a warning” Run-Time Setting to Yes/No to have this message
as a warning/error, respectively

vuser_init.c(12): Error -27796

一旦以为下载一个页面超越2分钟不是一无可取的话,可以在Run-提姆(Tim)e设置中选拔Preferences->Options,修改Step
download timeout(sec)的时光

 

抑或把“Step timeout caused by resources is a
warning”设置为Yes,那样下载资源超时也只是当做警示,不作为错误提醒,但是对于非资源的下载超时,则连接会唤起错误的

 

22.用strtok函数分割字符串

急需在loadrunner里面得到“15”(上面灰色高亮的部分),并做成关联参数。

//Body response 内容: <BODY><;
PRE>//OK[8,7,5,15,6,5,0,4,0,3,0,3,2,0,0,0,1

用web_reg_save_param取出“8,7,5,15,6,5,0,4,0,3,0,3,2,0,0,0,1”这一段,然后用strtok函数切割出一个个数字,第七个数字就是要找的值

例如:

extern char * strtok(char * string, const char * delimiters ); //
Explicit declaration

char separators[] = “,”;

char * token;

lr_save_string(“1,2,3,4,5,6″,”str”);

token = (char *)strtok(lr_eval_string(“{str}”), separators); // Get
the first token

if (!token) {

lr_output_message (“No tokens found in string!”);

return( -1 );

}

while (token != NULL ) { // While valid tokens are returned

lr_output_message (“%s”, token );

token = (char *)strtok(NULL, separators); // Get the next token

}

23.LoadRunner没有购买webservice协商的license,只有http的,可不得以完全用http协议模拟webservice?

可以,参考:

http://blog.testsautomation.com/2009/01/web-services-performance-using-loadrunner/

http://blog.testsautomation.com/2009/05/validating-web-service-response-with-xpath/

24.在万象设置中不忽视思考时间,不过在翻看响应时间的时候怎么让LR自动在响应时间里减去思考时间?

在analysis中找到了安装是还是不是在告诉中包蕴思考时间的地点做相应的装置即可:

25.LoadRunner在运行进度中停掉1半虚拟用户

Another issue that I’m facing from time to time is that LoadRunner stops
50% of running users without any notification, issue, error message etc.
I’ve find out that it happens only when running with log level set to
‘always send a message’. Because of that, I suggest to run with log
level set to ‘Send message only when error occur’.

26.测试RTMP协议应该在LoadRunner接纳怎么样协议来录制?

用flex协议

有那多少个函数可用:

flex_rtmp_connect Connects a client to an RTMP server and sets
connection options.

flex_rtmp_disconnect Disconnects a client from an RTMP server.

flex_rtmp_send Sends messages to an RTMP server.

flex_rtmp_receive Receives responses from an RTMP server

Flex can record and replay scripts involving RTMP (Real Time Messaging
Protocol). In order to enable RTMP simulation, you must configure the
recording options for the Flex protocol.

To enable RTMP:

1 Open the Recording Options dialog box by selecting Tools >
Recording Options or clicking the Options button in the Start Recording
dialog box.

2 In the Network > Port Mapping node click Options.

3 Set the Send-Receive buffer size threshold to 1500.

27.如何在LoadRunner中运行QTP脚本?

  1、运行准备:

1)勾选QTP的Tools–Options–Run的”Alow other Mercury products to run
tests and components”

2)录制必要在lr中运行的QTP脚本,并且在QTP脚本中安装工作,瑟维斯s.StartTransaction
“start”与瑟维斯(Service)s.EndTransaction “start”

2、运行QTP脚本

在LR中运作时精选QTP脚本,为QTP脚本存放目录下文件伸张名为.usr的文本。

 注:LR中运作QTP脚本时,只可以有一个Vuser,否则将报错:

  The load generator is currently running the maximum number of Vusers
of this type

28.在LR中哪些忽略Socket接收数据的辨证

在LR中对Socket举办性能测试时,LR会自己判断lrs_receive回来的多寡的尺寸,而一旦长度不符的话会有时间推迟的景况(那是性质测试完全无法接受的作业),如果形成这点吗,经过再三品味,发现一种简易的法门(用*代替具体的长短):

恍如于将:

recv buf1 12

“Hello, Denny”

改为:

recv buf1 *

“Hello, Denny”

一切OK。

29.LoadRunner9.5的Controller中无法添加Apache的督察

在C:\Program
Files\HP\LoadRunner\dat\online_graphs中找到online_resource_graphs.rmd文件,修改[Apache]一对中的EnableInUI为1

参考:

http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1274450165814+28353475&threadId=1229523

30.VB Vuser开发ADO脚本,提示“user-defined
type not defined”

想在VB Vuser写入模拟数据操作的长河,然后在VB Vuser里定义了那一个全局变量

Private m_Conn As ADODB.Connection ‘连接对象

Private m_Reco As ADODB.Recordset ‘结果集

唯独在VB Vuser中不识别这些目标,报出user-defined type not defined

要求在Run-提姆e 设置中的VBA部分把ADO的库选上

如果用VB Script虚拟用户来开发就不要,直接用CreateObject来创制ADO对象即可

31.loadrunner9.5录制脚本时现身c:\PROGRA~1\MICROS~1\office12\Grooveutil.DLL时出错内存地方访问无效

Office2007的题目,IE加载项禁用Groove GFSBrowser Helper 组件

32.LR自带的事例端口号怎么修改?

LR自带的例子端口号是1080,我什么把那些端口设置本身自己想用的端口号8088,在哪些地方设置在LR安装目录下,找到Xitami.config文件,找到portbase,可以修改它(默许是1000);

默许的端口号是portbase+80;要把端口号改成8088,就把portionbase改为8008,保存之后就是了(8088=8008+80)。

33.用Web_reg_find查找中文字符串时寻找不到

本子文件里有个default.cfg,里面有个参数是 UTF8InputOutput ,将其值改为0

34.替代IP Wizard的脚本

http://hi.baidu.com/higkoo/blog/item/39bbb21bc33d76dcac6e751c.html

LoadRunner自带的“IP
Wizard”用起来尤其费劲,要不停的点,主要的是终极还必须重启系统生效。

于是乎写个脚本替代之:

  1. 一经客户端IP为 192.168.10.31

  2. 只要服务端IP为 192.168.10.10

  3. 内需效法的IP为 110.119.120.122

那么,客户端提供添加虚拟IP的BAT脚本:

netsh interface ip add address 本地连接 110.119.120.122 255.255.0.0

相应的删除设置为:

netsh interface ip del address 本地连接 110.119.120.122

对应服务器添加虚拟路由的Shell脚本:

route add -host 110.119.120.122 gw 192.168.10.31

删除路由的本子:

route del -host 110.119.120.122 gw 192.168.10.31

这么就不行有利了,不用重启任何机器,执行脚本就行之有效,再实践脚本就收回。

35.怎么着从命令行调用LoadRunner脚本?

Here is the command line that you need to execute to run a VuGen script
from the command prompt:

<LoadRunner>\bin\mmdrv.exe -usr <path to usr file>

Note:

In order to get all the other options that go with the command, run
mmdrv.exe from the command prompt without any options.

36.请问”int64那一个类型,在LR中怎么表示”。我将一段C的代码放在LR中,LR不认int64那个体系,怎么解决?

把那段C代码做成DLL,然后在LR中调用

37.LoadRunner督察长途机器Windows资源,提醒“net use
failed”

解决办法:

在被监控机器上更改本地帐户的共享和安全格局为经典形式。控制面板->管理工具->本地安全策略->网络访问:本地帐户的共享和安全形式->经典方式。

蹲点连接前的准备工作:

首先保障被监视的windows系统开启以下二个劳务Remote Procedure Call(RPC)
和Remote Registry 瑟维斯(Service)

被监视的WINDOWS机器:右击我的微处理器,选用管理->共享文件夹->共享
在那里面要有C$这几个共享文件夹,(若是没有和谐手动加)

接下来保障在装置LR的机械上使用运行.输入\\被监视机器IP\C$
然后输入管理员帐号和密码,要是能见到被监视机器的C盘了,就印证您获取了那台机械的管理员权限,可以运用LR去老是了

  38.LoadRunner脚本中现身乱码问题现象某个链接或者图片名称为普通话乱码,脚本运行不可以通过。

  错误分析   脚本录制可能行使的是URL-based
script格局,假设程序定义的字符集合选用的是国际标准,脚本就会出现乱码现象。
  解决办法重新录制脚本,在录制脚本前,打开录制选项配置对话框举办设置,在“Recording
Options”的“Advanced”选项里先将“Surport
Charset”选中,然后选中接济“UTF-8”的选项。

39.LoadRunner不履行检查措施不当现象在剧本中插入函数Web_find,在剧本中安装文本以及图像的检查点,不过在回看进度中并不曾对设置的检查点进行检讨,即Web_find失效。

  错误分析
  由于检查职能会损耗一定的资源,由此LoadRunner默认关闭了对文件以及图像的多少举办爱护检查,所以在装置检查点后,需求敞开检查成效。
  解决办法打开运行环境设置对话框举行设置,在“Run-time
Settings”的“Internet
Protocol”选项里的“Perference”中勾选“Check”下的“Enable Image and text
check”选项。  
须要专注的是,回看脚本时出现的谬误有时是先后自身的缘由造成的,由此在缓解脚本回看问题前务必确保程序录制出的脚本是毋庸置疑的。

  40.LoadRunner超时不当:在录制Web磋商脚本重播时超时意况平时出现,发生错误的原委也有为数不少,解决的主意也不比。

  错误现象1:Action.c(16): Error -27728: Step download timeout (120
seconds) has expired when downloading non-resource(s)。

  错误分析:对于HTTP协议,默许的过期时间是120秒(可以在LoadRunner中修改),客户端发送一个呼吁到劳动器端,假设当先120秒服务器端还平昔不回到结果,则出现逾期错误。

解决办法:首先在运作条件中对逾期举办安装,默许的晚点时间足以设置长一些,再设置多次迭代运行,假如还有过期现象,要求在“Runtime
Setting”>“Internet
Protocol:Preferences”>“Advanced”区域中装置一个“winlnet replay
instead of sockets”选项,再重播是不是中标。

 

  错误现象 2:Action.c(81):Continuing after Error -27498: 提姆ed out
while processing URL=http://172.18.20.70:7001/workflow/bjtel/leasedline/
querystat/ subOrderQuery.do

  错误分析:那种不当平常是因为并发压力过大,服务器端太劳碌,不可能马上响应客户端的央求而招致的,所以那么些荒唐是常规现象,是压力过大导致的。

  假设压力很小就出现那一个题目,可能是本子某个地方有荒唐,要仔细翻看脚本,提醒的错误新闻会固定某个具体问题发出的任务。

  解决办法:例如地点的错误现象问题一定在某个URL上,要求重新运行一下气象,同时在任何机器上访问此URL。若是无法访问或时刻过长,可能是服务器或者此选用无法匡助这样之大的负载。分析一下服务器,最好对其属性举行优化。

要是重新运行景况后还有过期现象,就要在种种图片中剖析一下原因,例如能够查阅是否服务器、DNS、网络等地方存在问题。

 

  最终,增添一下运作时的晚点设置,在“Run-提姆(Tim)e Settings”>“Internet
Protocol:Preferences”中,单击“options”,增添“HTTP-request connect
timeout” 或者“HTTP-request receive”的值。

  41.LoadRunner脚本中冒出乱码:在录制Web商事脚本时出现普通话乱码,在回放脚本时会使回看截至在乱码地点,脚本不可以运行。

  错误现象:某个链接或者图片名称为普通话乱码,脚本运行不能够通过。

  错误分析:脚本录制可能利用的是URL-based
script格局,假设程序定义的字符集合接纳的是国际标准,脚本就会产出乱码现象。

  解决办法:重新录制脚本,在录制脚本前,打开录制选项配置对话框举行设置,在“Recording
Options”的“Advanced”选项里先将“Surport
Charset”选中,然后选中帮衬“UTF-8”的选项。

  42.LoadRunner
HTTP服务器状态代码:在录制Web探讨脚本回看脚本的进程中,会师世HTTP服务器状态代码,例如常见的页面-404不当提示、-500不当提醒。

  错误现象1:-404 Not
Found服务器并未找到与请求URI相符的资源,但还足以继承运行直到截止。

  错误分析:此处与请求URI相符的资源在录制脚本时一度被交给过几遍,回看时不足再重新提交同样的资源,而要求变更提交资源的始末,每一趟回看四遍脚本都要改成提交的数码,有限支撑模拟实际条件,造成一定的负载压力。

解决办法:在出现谬误的地方展开脚本关联,在要求时插入相应的函数。

 

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

  错误分析:服务器境遇了竟然景况,使其不可以持续应对请求。

  解决办法:出现此错误是沉重的,表明问题很惨重,需求从问题的面世岗位举行检讨,此时须要此程序的开发人士协作来化解,而且暴发的原由根据实际意况来定,测试人士不能独立解决问题,而且应该尽早解决,以便于后边的测试。

  43.LoadRunner请求不可能找到:在录制Web协议脚本回看脚本的长河中,会产出请求不可以找到的情景,而造成脚本运行为止。

  错误现象:Action.c(41): Error -27979: Requested form. not found
[MsgId: MERR-27979]

  Action.c(41): web_submit_form. highest severity level was
“ERROR”,0 body bytes, 0 header bytes [MsgId: MMSG-27178]”

  那时在tree view中看不到此组件的有关URL。

荒唐分析:所挑选的录制脚本形式不正确,寻常情状下,基于浏览器的Web应用会使用“HTML-based
script”形式来录制脚本;而从不基于浏览器的Web应用、Web应用中包括了与服务器举行交互的Java
Applet、基于浏览器的运用中富含了向服务器举办通讯的JavaScript/VBScript代码、基于浏览器的选用中选取HTTPS安全协议,那时则动用“URL-based
script”情势开展录制。

  解决办法:打开录制选项配置对话框进行设置,在“Recording
Options”的“Internet Protocol”选项里的“Recording”中拔取“Recording
Level”为“HTML-based script”,单击“HTML Advanced”,选择“Script. Type”为“A
script. containing explicit”。然后再选拔选取“URL-based
script”情势来录制脚本。

  44.LoadRunner不实施检查措施:在录制Web磋商脚本中添加了检讨方式Web_find,然而在本子回看的进程中并没有举行。

  错误现象:在本子中插入函数Web_find,在本子中设置文本以及图像的检查点,不过在回看进程中并没有对设置的检查点举行反省,即Web_find失效。

  错误分析:由于检查功用会损耗一定的资源,因而LoadRunner默许关闭了对文本以及图像的检讨,所以在装置检查点后,需求开启检查作用。

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

  45.LoadRunner回放Web
瑟维斯(Service)s协议脚本错误:LoadRunner 8.0本子在录制Web
Service(Service)s协议的本虎时正常,但在回看时会出现错误,提醒停止脚本运行。

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

  错误分析:出现此错误的原因是LoadRunner8.0在录制Web
瑟维斯(Service)(Service)s协议的脚本时存在一个瑕疵:如果服务器的操作系统是汉语的,VuGen会自动将WSDL文件的头改为<?xml
version=”1.0″encoding=”zh_cn” ?>,所以才会有此错误提醒。

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

46.LR启动controller报错“transaction monitor
not available”

1.多是OS系统问题,修复试试或升级

2.或修复LR试试

47.Loadrunnber 报错误:Error — memory violation : Exception
ACCESS_VIOLATION received.的一种情景

Posted on 2011-01-05 12:12蝈蝈俊 阅读(433)评论(0) 编辑收藏

近来写的一个Loadrunner脚本,最终一步是点击“退出”按钮退出登录意况,如下:

web_text_link(“[退出]”,

“Snapshot=t18.inf”,

DESCRIPTION,

“Text=[退出]”,

ACTION,

“UserAction=Click”,

LAST);

return 0;

而是会报错误:

Action1.c(94): Error: C interpreter run time error: Action1.c (94):
Error — memory violation : Exception ACCESS_VIOLATION received.

Action1.c(94): Notify: CCI trace: Action1.c(94):
web_text_link(0x02080870, 0x0208085f “Snapshot=t18.inf”, 0x02080a42
“DESCRIPTION”, 0x02080853, 0x02080a3b “ACTION”, 0x020809de
“UserAction=Click”, 0x02080a6a “LAST”)

Action1.c(94): Notify: CCI trace: Compiled_code(0): Action1()

透过考试,发现是因为 退出后有个活动跳转。

若果退出甘休代码修改为上面就一直不问题了。

web_text_link(“[退出]”,

“Snapshot=t18.inf”,

DESCRIPTION,

“Text=[退出]”,

ACTION,

“UserAction=Click”,

LAST);

web_browser(“Sync”,

“Snapshot=t18.inf”,

DESCRIPTION,

ACTION,

“Sync”,

LAST);

return 0;

结论:

web_text_link如若有中间跳转,不可能放在代码的最后,最后要有一个 Sync。

48.Step download timeout(sec)设置

其一默许是120秒,可是日常我们要安装的更大片段,具体设置格局:Vugen–》Vuser—》Runtime-settings—-》Preferences——》option,将Step
download timeout(sec)默许值120s改为自己索要的值,其次要改成HTTP-reguest
connnect timeout(sec)和HTTP-reguest receive
timeout(sec)也为相应的值。

49.改动本机tcp连接数

因为个人pc机的默许的tcp连接数唯有15个(xp),所以大家在模仿虚拟五个用户时,就会遇见tcp的接连限制,从而报错。修改的办法:windows下运行Patch.exe
输入C,再输入你要的TCP/IP连接数字(一般为500~2000)回车确认输入Y
回车确认。倒计时15秒后终止。接着再运行下Patch.exe,看连接数是或不是由原本的10改成自己改了的数值。
Patch.exe 下载地址:http://www.touchboy.cn/2007/05/%
%E6%8E%A5%E6%95%B0/

50.有关Error -27791: Error -27790:Error -27740:错误的解决方法:

错误如下: Action.c(198): Error -27791: Server “www.zcpx.cn” has shut
down the connection prematurely Action.c(198): Error -27790: Failed to
read data from server “www.zcpx.cn”: [10053] Software caused
connection abort Action.c(198): Error -27740: Overlapped transmission of
request to “www.zcpx.cn” for URL
http://www.zcpx.cn/userEntry.do” failed: WSA_IO_PENDING
解决办法:在本子的最前方加上web_set_sockets_option(“OVERLAPPED”,”0″);

  1. LR中漏洞非凡多代号为27796的一个化解办法

谬误如下:

52.

1A:注册表无法访问或写导致的,可以过来注册表或卸载(清除注册表,可以运用工具)重新安装程序。
要启支LR自带的实例的劳动时,出错了,提醒:端口已经被另一个服务占用,请问一下能不可能和谐修改那一个程序原来设定的端口啊?
2A:甘休服务之后,在先后的装置目录\WebTours(Tours)下找到xitami.cfg文件修改portbase值,注意
默认的端口号是portbase+80,portbase值是1000;要把端口号改成8088,就把portbase改为8008,保存之后就是了(8088=8008+80)。然后重启服务

二:LoadRunner面试(笔试)问题整治

  1. 什么是负载测试?什么是性质测试?

负载测试是经过逐步增添系统负荷,测试系统特性的成形,并最后确定在满足性能目的的动静下,系统所能承受的最大负载量的测试,例如,访问一个页面的响应时间确定不领先1秒,负载测试就是测试在响应时间为1秒时,系统所能承受的最大出现访问用户的数量。

压力测试平时是在高负荷情状下来对系统的安宁举办测试,更使得地窥见系统稳定的隐患和种类在负载峰值的尺度下效果隐患等。

属性测试:指在自然的羁绊规范下(指定的软件、硬件、网络环境等),确定系统所能承受的最大负荷压力。

  1. 属性测试包括了什么测试(至少举出3种)

 性能测试包括负载测试、压力测试、大数据量测试、疲劳强度测试等。

  1. 简述性能测试的步骤

 

先是,分析产品结构,明确性能测试的要求,包括并发、极限、配置和目标等方面的性质须求,需要时基于LOAD测试的一样测略需同时考虑安定测试的须要。
  第二,分析利用场景和用户数据,细分用户作为和连锁的数据流,确定测试点或测试接口,列示系统接口的或是瓶颈,一般是先主干接口再支线接口,并成功开端的测试用例设计。
  第三,按照性能测试必要和确定的测试点进行测试组网设计,并精通不一样组网方案的重中之重程度或预先级作为精选评估的依照,要求时在早期产品设计中提议辅助性能测试的可测试性设计方案和对测试工具的急需。
  第四,完毕性能测试用例设计、分类接纳和根据用户作为分析规划测试规程,并预备好测试用例将应用的测试数据。
第五,确定采纳的测试工具。
第六,进行初验测试,以基本接口的可用性为主,根据测试结果分析性能瓶颈,通过迭代担保大旨的目的等测试的条件。
第七,迭代进行周全的属性测试,已毕安插中的性能测试用例的实践。
第八,落成性能测试评估报告。
  在进行性能测试的时候,大家要求通晓有些一蹴而就的性能目标,上边大家来列出有些关键的性能目的:
  一是,通用指标(指Web应用服务器、数据库服务器必需测试项):
*Processor提姆(Tim)e:指服务器CPU占用率,一般平均达标70%时,服务就像饱和;
*Memory Available
Mbyte:可用内存数,如果测试时发现内享有变化情形也要留意,假若是内存败露则比较严重;
*Physicsdisk 提姆(Tim)e :物理磁盘读写时间情形。
二是,Web服务器目的:
*Avg Rps:平均每分钟响应次数=总请求时间/秒数;
*Avg time to last byte per
terstion(mstes):平均每秒业务角本的迭代次数;*Successful
Rounds:成功的请求;
*Failed Rounds:失利的乞请;
*Successful Hits:成功的点击次数;
*Failed Hits:失利的点击次数;
*Hits Per Second:每秒点击次数;
*Successful Hits Per Second:每秒成功的点击次数;
*Failed Hits Per Second:每秒战败的点击次数;
*Attempted Connections:尝试链接数。
三是,数据库服务器目的:
*User 0 Connections :用户连接数,也就是数据库的连年数量;
*Number of deadlocks:数据库死锁;
*Butter Cache hit:数据库Cache的命中景况。

  1. 简述使用Loadrunner的手续

  A4:制定性能测试布署—>开发测试脚本—>设计测试场景—>执行测试场景—>监控测试场景—>分析测试结果

 

  1. 哪天可以起来举办性能测试?

  作用测试通过;一般要求展开性能测试的系统,都是用户量相比较大、业务应用比较频仍、比较紧要的功效模块。

  1. LoadRunner由什么部件组成?

 主要有三部分组成:

 VuGen、Controller、Analysis

7.
你选择LoadRunner的哪些部件来录制脚本?

   使用Virtual User Generator录制测试脚本

  1. LoadRunner的哪个部件可以上行下效多用户并发下回放脚本?

  LoadRunner的Controller组件。

9.
什么样是集合点?设置集合点有怎样意思?Loadrunner中装置集合点的函数是哪些?

 
 在性能测试进度中,要求效法多量用户在相同时刻,访问系统并还要操作某一义务,可以通过安排集合点来落到实处,三个用户同时开展某操作;

  
集合点可以在服务器上开创密集的用户负载,使LoadRunner可以测试服务器在负载状态下的性能。

  设置集合点函数:lr_rendezvous(“Meeting”); // Meeting是集合点名称

  1. 何以是情景?场景的最首要有啥?怎么着设置场景?

  场景用于模拟用户实际业务操作;

LoadRunner中场景有手工场景和面向目的的气象。

安装场景:选拔场景类型、设置运行时设置、模拟用户数、加减压格局、持续时间,配置负载生成

1.取舍场景中须求的脚本 2.增选为对象场景,仍然指定的手工场景
3.安装用户数、设置发生负载的设备 4.装置举行政策

  1. 请解释一下怎么着录制web脚本?

LR通过转账呼吁,来捕获数据包,来形成脚本

解释:1.基于浏览器的应用程序推荐使用HTML-based Script, 脚本中利用
HTML页面的款型来代表,那种方法的Script脚本简单有限援救,不难通晓,使用该选项中的advance中的第二个挑选,即使单单的HTML格局,是不容许行使关联的。
2.不是基于浏览器的应用程序推荐使用URL-based
Script,脚本中的表示采纳基于URL 的法子,不是很好读书。
演讲:1.是还是不是记录录制进程中的Think提姆(Tim)e,假如记录,还足以设置最大值,一般我不记录这些值。
2.公告Vugen去重新安装每个action之间的Http context,缺省是内需的。
3.总体记录录制进度的log,
4.封存一个本地的snapshot,可以加速突显
5.把html的title放到web_reg_find函数里面
6.匡助的字符集标准
7.Http
header的录制,大家利用缺省即可,不须求用web_add_header去录制非标准的header信息。
对录制的content的情节展开filter,不作为resource处理的。
释疑:这几个就是我前边提到的涉及,系统已经先期安装好了有的科普的关联rules,大家录制脚本之前,可以把系统的

  1. 为何要开创参数?如何创制参数?
    参数:在条件转变时必须时脚本具有环境变迁的力量,就要求参数化(客户端发送到服务器端)
    1.规定要参数话的数量 2.设定规则格局来取值

13.
怎样是关系?请解释一下自动关联和手动关联的两样。

关系:很多构架用sessionid等方法标识不一样职务和数目,应用在每趟运行时方法发送数据有差异,需求运用的建制对录制的台本举办拍卖,那种体制叫做关联(服务端发送到客户端)

  1. 气象设置有哪三种方法?

目的场景,手工场景

  1. 你什么样找出哪里须要关联?请给一些你所在类型的实例。
    用户登陆,客户端发送请求后,服务端验证正确性后,发送给客户端sessionid,是某种规则暴发。

  2. 您在哪儿设置自动关联选项?

两地点可以安装 :

1.装置允许录制时开展机动关联,可以自定义规则

2.录制达成后,vuser-scan action for correlations

17.
哪个函数是用来截取虚拟用户脚本中的动态值?(手工关联)

web_reg_save_param()函数紧要基于必要做涉嫌的动态数据后边和前面的固定字符串来分辨、提取动态数据,所以在做涉嫌时,须求找出动态数据的左、左侧界字符串。

  1. 您在VUGen中曾几何时接纳关闭日志?几时拔取正规和伸张日志?
    Run-time,log,当调试脚本时,可以只输出错误日志,当在场馆找你管加载脚本时,日志自动变成不可用。
    Standard Log
    Option:拔取标准日志时,就会在剧本执行进程中,生成函数的正统日志并且输出音讯,供调试用。大型载重测试场景不用启用这么些选项。增加日志包涵警告和其他音信。大型载重测试并非启用该选项。用扩大日志选项,可以指定哪些附加新闻须求加到伸张日志中

  2. 您什么调节LoadRunner脚本?
    VuGen有八个挑选襄助调节Vuser脚本。Run Step by
    Step命令和断点(breakpoints)。Option对话框中的调试设置(Debug
    setting)项,可以规定在场景执行进度中履行轨迹范围。调试音信写在output窗口。可以用
    lr_set_debug_messag函数在剧本中手工安装音信项目。假使我们只想接受到一小段脚本的调式信息。

  3. 你在LR中怎么着编写自定义函数?请给出一些您在原先举行的门类中编辑的函数。
    在创设用户自定义函数前大家必要和开创DLL(external
    libary)。把库位于VuGen
    bin目录下。一旦加了库,把自定义函数分配做一个参数。该函数应该享有一下格式:__declspec
    (dllexport) char* <function name>(char*, char*)。 Milan

  4. 什么是逐日递增?你怎么样来设置?
    Ramp
    up那个选项用于渐渐增多服务器的虚构用户数或负载量。设置一个开端值而且可以在四个迭代之间设置一个值等待。设置Ramp
    up,请到‘Scenario Scheduling Options’。

  5. 以线程格局运行的虚构用户有什么优点?
    VuGen提供了用十六线程的便宜。这使得在各种生成器上可以跑越来越多的杜撰用户。假使是以进度的不二法门跑虚拟用户,为各样用户加载相同的驱动程序到内存中,由此占有了汪洋的内存。那就限制了在单个生成器上能跑的虚构用户数。如果按线程运行,给定的保有虚拟用户数(比如100)只是加载一个驱动程序实例到内存里。每个线程共用父驱动程序的内存,因而在每个生成器上得以跑更加多的虚拟用户。

  6. 当您要求在失误时停下执行脚本,你如何做?
    lr_abort函数丢弃虚拟用户脚本的举办。表达虚拟用户为止Action的推行,直接实施vuser_end然后完工执行。在产出谬误景况下想手工甩掉脚本的举行,这么些函数是卓有效能的。用那一个函数停止脚本时,Vuser被指定为“Stopped”状态。为了那个函数起成效,初步时候就无法选用Run-提姆(Tim)e
    Settings中的Continue on error选项。

  7. 响应时间和吞吐量之间的涉嫌是何等?
    吞吐量图体现的是杜撰用户每分钟从服务器收到到的字节数。当和响应时间相比时,可以发现随着吞吐量的狂跌,响应时间也下跌,同样的,吞吐量的峰值和最大响应时间几乎在同时出现。

25.
认证一下怎样在LR中布局连串计数器?
通过Web资源监视器,利用那个监控器可以分析web服务器的吞吐量、点击率、每秒http响应数以及每秒下载的页面数。

  1. 什么是think
    time?think_time有怎么样用?
    思考时间是实际用户在action之间等待的时日。例如:当一个用户从服务器收到到数码时,用户可能需求在响应之前等待几分钟回想数据,这种推迟被称之为思考时间。

  2. 业内日志和壮大日志的分别是何等?
    Standard Log
    Option:拔取规范日志时,就会在本子执行进程中,生成函数的正式日志并且输出音信,供调试用。大型载重测试场景不用启用这一个选项。伸张日志包涵警告和其余音讯。大型载重测试并非启用该选项。用增添日志选项,能够指定哪些附加音信需求加到扩张日志中

  3. 表明以下函数及他们的不一样之处。
    Lr_debug_message lr_debug_message 函数在指定的信息级别 //
    处于活动状态时发送一条调试音信。如果指定的 //
    信息级别未处于活动状态,则不发生音信。 Lr_output_message
    要发送不是特定错误音信的出色关照, Lr_error_message
    函数将错误音信发送到 // 输出窗口和 Vuser日志文件 Lrd_stmt lrd_exec
    函数执行 lrd_stmt设置的 SQL 语句。 Lrd_fetch
    函数从结果集中提取后续若干行 result set. 函数准备用来 //
    通过光标输出字符串(经常为 SQL语句) // 的下一结出集。对于 CtLib,它发出
    ct_result // 命令,并且在 ODBC中它运行用于当前数据库

  4. 何以是吞吐量?
    单位时间内系统处理客户端的呼吁数。

30.
action和init、end除了迭代的不同还有其余吗?

在init、end中不可以应用集合点、事务等, init、end只举办两回。

  1. 在如什么地点方设置HTTP页面filter?

在runtime_settings中download filter里面举办设置。

  1. pot mapping的法则是哪些?

即使代理服务器

  1. HTTP的晚点有哪两种?

HTTP-request connect timeout、HTTP-request receive timeout、step
download timeout

  1. 怎么样是contentcheck?怎么着来用?

ContentCheck的装置是为了让VuGen检测何种页面为不当页面。假如被测的Web应用尚未动用自定义的一无所能页面,那么那里并非作变更;借使被测的Web应用使用了自定义的失实页面,那么那里需要定义,以便让VuGen在运行进度中检测,服务器再次来到的页面是或不是含有预订义的字符串,进而判断该页面是还是不是为错误页

面。假如是,VuGen就终止运行,提示运行战败。

采纳办法:点击在runtime
settings中点击“contentcheck”,然后新确立一个符合须要的应用程序和规则,设定须要摸索的文书和前缀后缀即可使用。

  1. network中的speed
    simulation是模仿的怎么带宽?

仿照用户访问速度的带宽。

  1. 生成WEB性能图有怎么样含义?大概讲述即可。

可以很直观的观望,在负载下系统的运作情况以及各类资源的选拔状态,可以对系统的特性瓶颈定位、性能调优等起到想要的协理作用。

  1. 倘使刷新controller里的本子?

在controller中,点击detailis-Refresh-script即可。

  1. 经过和线程有啥界别?

线程有投机的全局数据。线程存在于经过中,因而一个经过的全局变量由拥有的线程共享。由于线程共享同样的连串区域,操作系统分配给一个进度的资源对该进度的有所线程都是可用的,正如全局数据可供所有线程使用同样。在Controller上将使用驱动程序(如mdrv.exe、r3vuser.exe)运行vuser。如果按进度运行每个vuser,则对此每个vuser实例,都将反复启动同一驱动程序并将其加载到内存中。将一律驱动程序加载到内存中会占用大量的RAM(随机存储器)及任何系统资源。那就限制了能够在任一负载生成器上运行的vuser数量。如若按线程运行每个vuser,Controller为每50个vuser(默许景况下)仅启动驱动程序(如mdrv.exe)的一个实例。该驱动程序将起动多少个vuser,每个vuser都按线程运行。那些线程vuser将共享父驱动进程的内存段。那就解除了数次再一次加载驱动程序/进程的急需,节省了大气内存空间,从而得以在一个负载生成器上运行更加多的Vuser.

  1. 怎么着把剧本和结果放到load
    generator的机械上?

在controller中,点击Results-Results settings,在其间举行相应的设置即可。

  1. 怎么着设置才能让集合点只对一半的用户生效?

对集合点策略举行对应的安装即可。即在controller中,点击Scenario-Rendezvous-policy举行相应的装置即可,由于题目中“一半的用户”没有证实白具体指什么的用户,现在糟糕确定具体对内部的哪位选项举办设置。

  1. LRd的API分为几类

A:通用的API:,就是跟现实的磋商非亲非故,在别的探讨的脚本里都能用的;

B:针对商事的:像lrs前缀是winsock的;lrd的是本着database;

C:自定义的:那些限制就比较广了;比如至少有Java Vuser API、lrapi、XML
API。仍可以添加WindowsAPI和自定义函数库。

  1. LR两种日志函数的差别?

【lr_message】 int lr_message (const char *format, exp1,
exp2,…expn.);中文表达:lr_message函数将音讯发送到日志文件和输入窗口。在VuGen中运作时,输入文件为output.txt。

【lr_log_message】 int lr_log_message (const char *format, exp1,
exp2,…expn.);汉语解说:lr_log_message函数将音讯发送到Vuser或代理日志文件(取决于应用程序),而不是发送到输出窗口。通过向日志文件发送错误新闻或其余新闻性音信,可以将该函数用于调试。
【lr_error_message】 int lr_error_message (const char *format,
exp1, exp2,…expn.
);汉语演说:lr_error_message函数将错误音讯发送到输出窗口和Vuser日志文件。要发送不是特定错误新闻的更加关照,请使用lr_output_message。

【lr_output_message】 int lr_output_message (const char *format,
exp1,
exp2,…expn.);中文表明:lr_output_message函数将含有脚本有的的行号的音讯发送到输出窗口和日志文件。

【lr_debug_message函数组】 int lr_debug_message (unsigned int
message_level, const char *format, …
);中文表明:lr_debug_message函数在指定的新闻级别处于活动状态时发送一条调试新闻。即使指定的新闻级别未出于活动状态,则不发送音讯。您可以从用户界面或者选择lr_set_debug_message,将高居活动状态的音讯级别设置为MSG_CLASS_BRIEF_LOG或MSG_CLASSS_EXTENDED_LOG。要规定当前级别,

请使用lr_get_debug_message。 unsigned int lr_get_debug_message (
);汉语表达:lr_get_debug_message函数再次回到当前的日志运行时设置。该装置规定发送到输出端的音信。日志设置是行使运行时设置对话框或通过应用lr_set_debug_message函数指定的。int
lr_set_debug_message (unsigned int message_level, unsigned int
on_off);
普通话表达:lr_set_debug_message函数设置脚本执行的调试新闻级别message_lvl。通过安装音信级别,能够规定发送哪些新闻。启动设置的法门是将LR_SWITCH_ON作为on_off传递,禁用设置的艺术是传递LR_SWITCH_OFF。

【lrd_stmt】:将SQL语句与光标关联

【lrd_fetch】:提取结果集中得下一条记下

  1. 特性瓶颈分析方法?

同一场景 1.小用户量的动静下测试 2.大用户量意况下的测试 分析的格局:
整个连串架构分析,系统响应时间花费,利用图表分析
查看工作响应时间,通过作业摘要图分析工作响应时间,那多少个消耗最大(通过小用户量和大用户量的响应时间分析,查看那些事情响应时间最高),确定哪一部分效果是性质的瓶颈,分析window
resource图表,查看cpu 使用下列计数器标识cpu瓶颈 Processor\
Interrupts/sec Processor\ % Processor Time Process(process)\ %
Processor Time System\ Processor Queue Length
通过它来规定是或不是硬件本身出现瓶颈,或者进一步确定相应怎么去判断性能发生瓶颈的地点!
下一步去看清进度,这个进程消耗cpu最高
下面就有很多种状态必要您自己去看清,有可能是进度调用了的函数消耗了系统资源形成上面的题材,也有可能是后台数据库出现的题材(这几个即将看你的系统布局是哪些的,比如您的db服务器和应用服务器都配置在一台机器上)
性能暴发瓶颈有过多地点,所以需求进一判断,是不是是后台数据库的问题还有待分析,是那条语句导致的题材须要越来越分析判断。
分析原则: •
具体问题具体分析(那是出于差距的选择连串,分歧的测试目标,分歧的性能关怀点)
• 查找瓶颈时按以下顺序,由易到难。
服务器硬件瓶颈-〉网络瓶颈(对局域网,能够不考虑)-〉服务器操作系统瓶颈(参数配置)-〉中间件瓶颈(参数配置,数据库,web服务器等)-〉应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)
注:以上进程并不是各类分析中都亟待的,要根据测试目标和要求来规定分析的深度。对有的需要低的,大家解析到使用连串在未来大的载荷压力(并发用户数、数据量)下,系统的硬件瓶颈在何方就够了。
• 分段排除法很得力 分析的新闻来自: •1 按照气象运行进程中的错误提醒音讯•2 根据测试结果收集到的督查指标数据 一.错误提示分析 分析实例: 1
•Error: Failed to connect to server “10.10.10.30:8080″: [10060]
Connection •Error: timed out Error: Server “10.10.10.30″ has shut down
the connection prematurely 分析: •A、应用服务死掉。
(小用户时:程序上的问题。程序上处理数据库的题材) •B、应用服务没有死
(应用服务参数设置问题)
例:在诸多客户端连接Weblogic应用服务器被驳回,而在劳务器端没有不当展现,则有可能是Weblogic中的server元素的AcceptBacklog属性值设得过低。如若连续时收到connection
refused新闻,表达应加强该值,每一次增加25% •C、数据库的连接
(1、在应用服务的性能参数可能太小了
2、数据库启动的最奥斯汀接数(跟硬件的内存有关)) 2 Error: Page download
timeout (120 seconds) has expired 分析:可能是以下原因导致
•A、应用服务参数设置太大导致服务器的瓶颈 •B、页面中图纸太多
•C、在先后处理表的时候检查字段太大多 二.督查目的数量解析
1.最大并发用户数:
应用系统在此时此刻环境(硬件环境、网络环境、软件条件(参数配置))下能接受的最大并发用户数。
在方案运行中,如若出现了超出3个用户的业务操作战败,或出现了服务器shutdown的情事,则表明在当下条件下,系统接受不住当前出现用户的负载压力,那么最大并发用户数就是前一个没有出现那种场地的并发用户数。
如若测得的最大并发用户数到达了性能需要,且各服务器资源情形理想,业务操作响应时间也完结了用户要求,那么OK。否则,再按照各服务器的资源气象和作业操作响应时间尤其分析原因所在。
2.作业操作响应时间: •
分析方案运行状态应从平均事务响应时间图和事情性能摘要图开头。使用“事务性能摘要”图,可以规定在方案实施时期响应时间过长的事务。

细分事务并分析种种页面组件的特性。查看过长的事体响应时间是由哪些页面组件引起的?问题是还是不是与网络或服务器有关?

假如服务器耗时过长,请使用相应的劳动器图确定有题目标服务器度量并查证服务器性能下降的原故。假若网络耗时过长,请使用“网络监视器”图确定导致性能瓶颈的网络问题
3.服务器资源监控目的: 内存: 1
UNIX资源监察中目的内存页互换速率(Paging
rate),如若该值偶尔走高,注明当时无线程竞争内存。要是持续很高,则内存可能是瓶颈。也说不定是内存访问命中率低。
2 Windows资源监察中,若是Process\Private Bytes计数器和Process\Working
Set计数器的值在长日子内不断上涨,同时Memory\Available
bytes计数器的值持续回落,则很可能存在内存泄漏。
内存资源变成系统性能的瓶颈的前兆: 很高的换页率(high pageout rate);
进度进入不活动状态; 调换区所有磁盘的移动次数可高;
可高的全局系统CPU利用率; 内存不够出错(out of memory errors) 处理器: 1
UNIX资源监察(Windows操作系统同理)中目的CPU占用率(CPU
utilization),若是该值持续领先95%,注解瓶颈是CPU。可以设想增添一个处理器或换一个更快的电脑。假设服务器专用于SQL
Server,可接受的最大上限是80-85% 合理运用的范围在60%至70%。 2
Windows资源监察中,假诺System\Processor Queue
Length大于2,而电脑利用率(Processor
提姆e)平素很低,则存在着统计机阻塞。 CPU资源成为系统性能的瓶颈的先兆:
很慢的响应时间(slow response time) CPU空闲时间为零(zero percent idle
CPU) 过高的用户占用CPU时间(high percent user CPU)
过高的系统占用CPU时间(high percent system CPU)
长期的有很长的运作进度队列(large run queue size sustained over time)
磁盘I/O: 1 UNIX资源监察(Windows操作系统同理)中目标磁盘互换率(Disk
rate),如若该参数值一贯很高,注明I/O有问题。可考虑更换更快的硬盘系统。
2 Windows资源监察中,倘使 Disk 提姆(Tim)e和Avg.Disk Queue
Length的值很高,而Page
Reads/sec页面读取操作速率很低,则可能存在磁盘瓶径。
I/O资源变成系统特性的瓶颈的前兆: 过高的磁盘利用率(high disk utilization)
太长的磁盘等待队列(large disk queue length)
等待磁盘I/O的岁月所占的百分率太高(large percentage of time waiting for
disk I/O) 太高的物理I/O速率:large physical I/O rate(not sufficient in
itself) 过低的缓存命中率(low buffer cache hit ratio(not sufficient in
itself)) 太长的周转进程队列,但CPU却空闲(large run queue with idle CPU)
4.数据库服务器: SQL Server数据库: 1
SQLServer资源监控中目标缓存点击率(Cache Hit
Ratio),该值越高越好。借使持续低于80%,应考虑增添内存。 2 倘若Full
Scans/sec(全表扫描/秒)计数器突显的值比1或2高,则应分析你的询问以确定是或不是真正要求全表扫描,以及SQL查询是否足以被优化。
3 Number of
Deadlocks/sec(死锁的数额/秒):死锁对应用程序的可伸缩性非常侵害,并且会招致恶劣的用户体验。该计数器的值必须为0。
4 Lock
Requests/sec(锁请求/秒),通过优化查询来减弱读取次数,可以削减该计数器的值。

Oracle数据库: 1
如果任意内存接近于0而且库快存或数额字典快存的命中率小于0.90,那么需求追加SHARED_POOL_SIZE的大大小小。
快存(共享SQL区)和数目字典快存的命中率:
select(sum(pins-reloads))/sum(pins) from v$librarycache;
select(sum(gets-getmisses))/sum(gets) from v$rowcache; 自由内存 select
* from v$sgastat where name=’free memory’; 2
假使数据的缓存命中率小于0.90,那么须要加大DB_BLOCK_BUFFERS参数的值(单位:块)。
缓冲区高速缓存命中率: select name,value from v$sysstat where name in
(‘db block gets’, ‘consistent gets’,’physical reads’) ;

Hit Ratio = 1-(physical reads / ( db block gets + consistent gets)) 3
即使日志缓冲区申请的值较大,则应加大LOG_BUFFER参数的值。
日志缓冲区的申请情形: select name,value from v$sysstat where name =
‘redo log space requests’ ; 4
假诺内存排序命中率小于0.95,则应加大S(英文名:Barbie Hsu)ORT_AREA_SIZE以幸免磁盘排序。

小说转发自:https://www.cnblogs.com/Sunnychenjuan/p/3421322.html

相关文章