1.客户交付一个性能测试项目,请阐述你的实施流程。
答案:
测试设计阶段:
1)了解被测系统的性能需求,定义测试目标和范围;
2)了解系统的技术信息,如系统架构等;
3)确定测试方案、进度安排,并制定测试计划,场景设置方案,及需要收集的测试数据;
5)准备数据收集模板;不同项目的性能测试,需要收集的数据不同;针对性的制定一个模板,更符合需要;
测试环境准备:
1)技术准备;选择性能测试工具;测试方案中涉及到的技术问题;测试数据的收集方案实现;
如:如何监控系统资源等;
2)搭建测试环境;
3)创建初始数据;如虚拟用户使用的账号等;
测试执行阶段:
1)录制脚本;
2)调试脚本;
3)执行场景;
4)收集测试数据,并简单整理;
测试分析阶段:
1)分析测试数据;
提交测试报告。
2.解释5个常用的性能指标的名称与具体含义。
●并发:所有用户在同一时刻对系统执行操作,一般指做同一件事情或操作。
●TPS(TransactionPerSecond)
每秒钟系统能够处理的交易或事务的数量。它是衡量系统处理能力的重要指标。TPS是LoadRunner中重要的性能参数指标。
●点击率(HitPerSecond)
每秒发送的HTTP请求的数量;点击率越大对Server的压力越大
●资源利用率
对不同资源的使用程度,如CPU,I/O,内存,……
3.写出5个Loadrunner中常用函数,并对其中2个举例说明用法。
字符串复制
strcpy(str,"Hello");
字符串连接
strcat(str,"World!");
lr_message("str:%s",str);
sprintf(s,"%slove%s.","I",“ocean");//产生:“Iloveocean."
变量转为参数,将变量str的值存到参数Param中
lr_save_string(str,"Param");
参数复制
lr_save_string(lr_eval_string("{Param}"),"Param_1");
参数转为变量
strcpy(str1,lr_eval_string("{Param_1}"));
4.简述LoadRunner的工作原理?
答案:loadrunner会自动监控指定的URL或应用程序所发出的请求及服务器返回的响应,它做为一个第三方(Agent)监视客户端与服务器端的所有对话,然后把这些对话记录下来,生成脚本,再次运行时模拟客户端发出的请求,捕获服务器端的响应。
5.什么是集合点?设置集合点有什么意义?LoadRunner中设置集合点的函数是哪个?
答案:集合点:是一个并发访问的点,例如在测试计划中,可能会要求系统能够承受1000人同时提交数据,在LoadRunner中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner就会检查同时有多少用户运行到集合点,如果不到1000人,LoadRunner就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000人时,LoadRunner命令1000人同时去提交数据,并发访问的目的。
注意:集合点经常和事务结合起来使用,常放在事务的前面,集合点只能插入到Action部分,vuser_init和vuser_end中不能插入集合点。集合点函数如下:lr_rendezvous(“SubmitData”)
6.HTML-basedscript与URL-basedscript的脚本有什么区别?
答案:使用“HTML-basedscript”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-basedscript”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。
通常,基于浏览器的Web应用会使用“HTML-basedscript”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的JavaApplet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-basedscript”模式进行录制。
7.如何设置LaodRunner才能让集合点只对一半的用户生效?
答案:在Loadrunner中,进入Controller->Scenario->Rendezvous…->Policy,系统弹出Policy对话框。在该对话框中可以设定集合点执行的策略。
第一项:表示当所有用户数的X%到达集合点时,开始释放等待的用户并继续执行场景。
第二项:表示当前正在运行用户数的X%到达集合点时,开始释放等待的用户并继续执行场景。
第三项:表示当X个用户到达集合点时,开始释放等待的用户并继续执行场景。
其中还有一项TimeoutbetweenVusers,就30秒来说,当第一个用户到达集合点后,再等待30秒,如果在30秒内到达的用户数达到指定的数量,就开始继续执行场景。如果在30秒内还没有达到指定的用户数量,就不再等待,开始释放等待的用户并继续执行场景。
由上可知,将第一项用户数设置成50%可。
8.LoadRunner的Controller组件中Pacing参数的作用是什么?
9.LoadRunner中如何监控Windows资源?
答案:进入被监视windows系统,开启以下二个服务:RemoteProcedureCall(RPC)和RemoteRegistryService;在controller中,WindowsResources窗口中右击鼠标选择AddMeasurements,添加被监控windows的IP地址,选择所属系统,然后选择需要监控的指标就可以开始监控。
11.什么是负载测试?
12.什么是性能测试?
性能测试:指在一定的约束条件下(指定的软件、硬件、网络环境等),确定系统所能承受的最大负载压力。
13.说明负载测试过程?
第一步:计划测试。在这里,我们需开发一个明确定义的测试计划,以确保该测试方案能完成负载测试目标。
第二步:创建虚拟用户。创建的脚本需要包含单个虚拟用户需要执行的操作、多个虚拟用户作为一个整体要执行的操作、以及能够作为事务来度量的操作。
第三步:创建场景。一个场景描述了在一个测试会话中发生的事件。它包含了当场景中运行时的机器、脚本和虚拟用户。我们使用LoadRunner中的Controller创建场景。我们可以创建手动场景也可以创建基于目标的场景。在手动场景中,我们定义虚拟用户的数量、负载生成器、被分配到每个脚本中虚拟用户的百分比。对于web测试,我们创建基于目标的场景,其中目标即测试过程中要达成的性能目标。LoadRunner会由此自动为我们创建一个场景。
第四步:运行场景。我们通过配置多个虚拟用户同时执行任务来模拟对服务器加压。在测试之前,我们设置场景的配置和计划安排。我们可以运行整个场景、一组虚拟用户或单个虚拟用户。
第五步:监控场景。我们使用LoadRunner联机运行来监测场景执行、事务系统资源,Web资源,Web服务器资源,Web应用服务器资源,数据库服务器资源,网络延迟,流媒体资源,防火墙服务器资源,ERP服务器资源,Java性能监视器。
第六步:分析测试结果。在场景执行时,LoadRunner记录了应用软件在不同负载下的性能。我们可以使用LoadRunner的图表和报告来分析应用软件的性能。
14.我们什么时候做负载和性能测试?
15.什么是LoadRunner的组件?
LoadRunner的组件有虚拟用户生成器,控制器、代理程序、LoadRunner的分析器和监控器,LoadRunner在线帮助
16.你用LoadRunner的哪个组件录制脚本?
虚拟用户生成器(VuGen)可以用来录制脚本。它通过多种应用程序类型和通讯协议来确保你开发一个Vuser脚本。
17.在多用户模式下你用LoadRunnner的哪个组件来回放脚本?
18.在多用户模式下你用LoadRunnner的哪个组件来回放脚本?
Controller组件可以用来在多用户模式下回放脚本。这个过程可以在一组虚拟用户以组的形式执行脚本的场景中运行时完成。
19.什么是场景
场景定义了发生在每个测试会话中的事件。例如,一个场景定义和控制了要加载的虚拟用户的数量,要被执行的动作,虚拟用户模拟压力时的机器。
20.解释WebVuser脚本的录制模式
我们使用VuGen通过记录一个用户在客户端执行典型的业务流程来开发一个Vuser脚本。VuGen通过记录客户端和服务器之间的交互来创建脚本。例如,基于Web的应用程序,VuGen监测客户端直到数据库,跟踪所有发送出的请求,再从数据库服务器接收。我们使用VuGen:监测应用程序和服务器的交互;使形成函数调用;插入生成的函数调用到一个Vuser脚本中。
21.为什么创建参数
参数就像脚本中的变量。他们被用来改变对服务器的输入值来模拟真正的用户。每次当脚本运行时,不同的数据设置被发送到服务器。为了更精确的在Controller中测试,从而更好的模拟使用模型;一个脚本在系统上模拟很多不同的用户。
22.什么是关联?
关联是用来获取每次脚本运行时由嵌套请求产生的唯一的数据。关联提供值以避免产生重复值的错误,并且优化代码(避免嵌套请求)。自动关联是我们自己为关联设置的一定规则。它可以是应用服务器特定的。这里的值被通过规则创建的数据取代。在手动关联里,我们要关联的值被浏览和创建关联以用来关联。
23.解释自动关联和手动关联的区别
自动关联:在tools-recordingoptions的correlation中,选中enablecorrelationduringrecording的复选框,在下面list中选择你需要自动关联的协议。这样在录制脚本时,在可关联处会弹出一个dialog进行选择是否对该处进行关联,这样,在你脚本录制好之后,关联已经自动生成了,十分方便。
另一种自动关联的方法是,你在tools-recordingoptions的correlation中,不选中enablecorrelationduringrecording的复选框的情况下进行自动关联,你可以先录制一个脚本,然后选择vuser-scanactionforcorrelation或者直接ctrl+f8来运行一下脚本,这样也能自动找到不同的地方而进行自动关联,此时你只需要钩选你需要关联的地方后点击关联即可
手工关联:需要录制2个相同业务流程的虚拟用户脚本,然后通过tools-comparewithvusers来打开wdiff.exe对2个脚本进行比较,找到需要关联的部分,然后指定左右边界,然后将脚本中原来的值替换成参数即可
24.你在哪里设置自动关联的选项
从web自动关联的观点来说,可以在录制选项中和关联表单中设置。这里我们可以使整个脚本关联,选择在线信息或者离线的动作,在这里我们可以定义关联的规则。为数据库自动关联可以使用显示输出窗口和为了关联浏览,找出关联查询的图表,选择我们想关联的查询值来完成。如果我们知道要被关联的特殊值,我们只用为这个值创建关联,指定如何创建这个值
25.什么函数可以捕捉到webVuser脚本的动态值?
Web_reg_save_param函数保存动态的数据信息到一个参数中。
26.什么时候你在虚拟用户产生器中禁用日志,什么时候选择标准日志和扩展日志?
一旦我们调试脚本来验证它的功能,我们可以只记录错误。当我们在场景中添加一个脚本,日志记录将自动被禁用。标准日志选项:当您选择标准日志,它在脚本执行调试时创建一个标准的功能和发送信息的日志。大负荷的测试场景时,禁用此选项。当你复制一个脚本到一个场景,日志自动禁用扩展日志选项:选择扩展日志创建一个扩展的日志,包括警告和其他信息。禁用此选项为大负荷的测试场景。当你复制一个脚本的场景,将被自动禁用日志记录。我们可以指定附加信息,用扩展日志选项添加到扩展日志中。
27.你如何调试LoadRunner的脚本?
VuGen包含两个选项帮助调试VuGen脚本—通过逐步命令和断点运行某一步。选项对话框中的Debug设置,使我们决定在场景运行期间进行跟踪的程度。Debug信息被写到输出窗口,我们可以使用lr_set_debug_message函数手动设置你的脚本中的信息类。如果我们希望得到关于一小部分脚本的调试信息时,这就有意义了。
28.你怎么写LR中用户自定义的函数?写几个你以前项目中的函数?
在我们创建用户自定义的函数之前我们需要创建外部的库函数。我们添加这个库到VuGenbin目录下。一旦库被添加,然户我们分配给用户自定义的函数作为参数。函数应该有以下格式:__declspec(dllexport)char*<函数名称>(char*,char*)。用户自定义函数如下:GetVersion,GetCurrentTime,GetPltform,这些都是我之前的项目中用到的用户自定义的函数。
29.在run-timesetting里你可以设置哪些改变?
RunTimeSetting中我们所做的是:a)Pacing—它有迭代次数。b)Log—在此,我们有已禁用的标准日志。c)扩展ThinkTime—在ThinkTime里有两个选项,忽略thinktime和回放thinktime。d)General—在General选项卡中,我们可以设置vusers作为进程或者多线程,将每一步作为一个事务。
30.你在哪里设置Vuser测试时迭代?
我们在VuGen中的RunTimeSetting中设置迭代。这个导航是RunTimeSetting,Pacing选项卡,设置迭代次数。
31.你如何在负载下执行功能测试?
负载下的功能可以通过同时运行多个Vuser来测试。通过增加一定数量的Vuser,我们可以判断服务器可以承受多少负载。
32.什么是Rampup?你如何设置?
这个选项被用来逐步增加Vuser的数量/服务器上的负载。初始值设置,间隔的等待值可以被指定。要设置Rampup,进入“场景调度选项”
33.Vuser作为线程运行的优势是什么?
VuGen提供使用多线程的设施。这使每个产生器中运行更多的Vuser。如果Vuser作为进程运行,相同的驱动程序为每个Vuser加载到内存,从而占用大量的内存。这限制了在单发生器中运行的Vuser的数量。如果Vuser作为线程运行,为给定数量的Vuser(如100),只有一个驱动程序的实例被加载到内存。每个线程共享父驱动程序的内存,从而使每个产生器运行更多的Vuser。
34.如果你想停止执行出错的脚本,怎么做?
Lr_abort函数中止执行Vuser脚本。它指示Vuser停止执行Action部分,执行vuser_end部分,并结束执行。这个函数是有用的,当你需要手工停止一个脚本的执行,作为一个指定错误条件下的结果。当你使用这个函数停止一个脚本,Vuser被分配成停止状态。为让它生效,我们必须首先在Run—TimeSetting中取消选择“Continueonerror”
37.如果web服务器、数据库服务器、网络都一切正常,那么哪里可能有问题?
问题可能是系统本身,应用程序服务器或为应用程序编写的代码。
利用web资源监控器,我们可以发现web服务器的性能。使用这些监测器我们可以分析发生在场景中的web服务器的吞吐量,每秒点击数、以及每秒HTTP响应数,每秒下载的网页数量。
40.覆盖图和关联图之间的区别是什么?
覆盖图:它覆盖两个图表的内容,使共用一个X轴。合并后的图形左Y轴显示当前图形中的值,右Y轴显示合并图的Y轴的值。关联图:绘制相互对立的两个图表的Y轴。活动图的Y轴,成为合并后的图的X轴。合并图的Y轴成为合并后的图的Y轴
41.你是怎么计划负载的?标准是什么?
42.vuser_init动作包含什么?
43.vuser_end动作包含什么?
Vuser_end部分包含注销的程序。
44.什么是ThinkTime?你如何改变这个阈值?
45.简述使用Loadrunner的步骤
制定性能测试计划—>开发测试脚本—>设计测试场景—>执行测试场景—>监控测试场景—>分析测试结果
46.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?
在性能测试过程中,需要模拟大量用户在同一时刻,访问系统并同时操作某一任务,可以通过配置集合点来实现,多个用户同时进行某操作;
集合点可以在服务器上创建密集的用户负载,使LoadRunner能够测试服务器在负载状态下的性能。
设置集合点函数:lr_rendezvous(“Meeting”);//Meeting是集合点名称
47.请解释一下如何录制web脚本?
48.请解释一下自动关联和手动关联的不同。
49.哪个函数是用来截取虚拟用户脚本中的动态值?(手工关联)
Web_reg_save_param函数主要根据需要做关联的动态数据前面和后面的固定字符串来识别、提取动态数据,所以在做关联时,需要找出动态数据的左、右边界字符串。
1.函数原型:
intweb_reg_save_param(constchar*ParamName,,LAST);
2.参数说明:
ParamNam:存放动态数据的参数名称
ListofAttributes:其它属性,包含Notfound、LB、RB、RelFrameID、Search、ORD、SaveOffset、Convert、SaveLen。
50.你如何在负载测试模式下执行功能测试?
在负载测试模式下,可以通过同时运行数个虚拟用户,通过增加虚拟用户数,确定服务器在多大的负载量下,仍然可以正常运行,我一般进行核心功能操作,验证核心功能运行是否正常。
51.什么是逐步递增?你如何来设置?
可以在“加压”选项卡中进行设置:如下图所示,将设置更改为:“每30秒启动2个Vuser”
52.当你需要在出错时停止执行脚本,你怎么做?
54.说明一下如何在LR中配置系统计数器?
以windows资源监控为例,可右键点“添加度量”,输入系统IP、选择平台类型,确定即可,详细参加LR自带操作手册^_^。
对于监控不同类型的操作系统,需要做一些准备工作,可参见监控操作系统资源部分。
55..如果web服务器、数据库以及网络都正常,问题会出在哪里?
58.解释所有web录制配置?
59.你如何设计负载?标准是什么
60.什么是吞吐量?
lr_think_time(8);
62.如何理解TPS
TPS主要还是体现服务器对当前录制的事务的处理速度快慢。TPS高并不代表性能好。
63.loadrunner中的设置线程和进程的区别
loadrunner中,在进行运行设置中有一项选择,是按进程运行Vuser或按线程运行Vuser下面进行分别来讲:
(1)按进程运行Vuser:Controller将使用驱动程序mdrv运行Vuser。如果按进程方式运行每个Vuser,则对于每个Vuser实例,都将启动一个mdrv进程。如果设置了10个Vuser,则在任务管理器中出现10个mdrv进程。多个mdrv进程肯定会占用大量内存及其他系统资源,这就限制了可以在任一负载生成器上运行的Vuser的数量。
(2)按线程运行Vuser:及设置了10个Vuser,其只会调用一个驱动程序mdrv.而每个Vuser都按线程运行,这些线程Vuser将共享父进程的内存段。这就节省了大量内存控件,从而可以在一个负载生成器上运行更多的Vuser。
任何选择都是有两面性的。选择线程方式运行Vuser会带来一些安全问题。因为线程的资源是从进程资源中分配出来的,因此同一个进程中的多个线程会有共享的内存空间,这样可能会引起多个线程的同步问题,调度不好,就会出问题,不如A线程要用的资源就必须等待B线程释放,而B也在等待其他资源释放才能继续。这就会出现这样的问题:同一个测试场景,用线程并发就会超时失败或报错,而用进程并发就没错。
虽然会有区别,但两种方式的运行都会给服务端造成的压力是一样的。
64.loadrunner如何遍历一个页面中的url并进行访问?
65.HTML-Basedscrīpt和URL-Basedscrīpt录制的区别?
基于浏览器的应用程序推荐使用HTML-Basedscrīpt。
不是基于浏览器的应用程序推荐使用URL-Basedscrīpt。
如果基于浏览器的应用程序中包含了Javascrīpt并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-Basedscrīpt方式录制。
基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-Basedscrīpt方式录制。
录制过程中不要使用浏览器的“后退”功能,LoadRunner对其支持不太好。
66.本次通过loadRunner录制SQLServer介绍一下如何测试一个sql语句或存储过程的执行性能。
主要分如下几个步骤完成:
第一步、测试准备
第二步、配置ODBC数据源
第三步、录制SQL语句在SqlServer查询分析器中的运行过程
第四步、优化录制脚本,设置事务
第五步、改变查询数量级查看SQL语句的性能
第六步、在controller中运行脚本
67.LoadRunner如何创建脚本?
(1)启动VuGen:选择需要新建的协议脚本,可以创建单协议,或是多协议脚本
(2)点击StartRecord按钮,输入程序地址,开始进行录制
(3)使用VuGen进行录制:创建的每个Vuser脚本都至少包含三部分:vuser_init、一个或多个Actions及vuser_end。录制期间,可以选择脚本中VuGen要插入已录制函数的部分。运行多次迭代的Vuser脚本时,只有脚本的Actions部分重复,而vuser_init和vuser_end部分将不重复
1.菜单tools->RecordingOptions进入录制的设置窗体
2.Recording标签页:选用哪种录制方式
3.Browser标签页:浏览器的选择
4.RecordingProxy标签页:浏览器上的代理设置
5.Advanced标签页:可以设置录制时的thinktime,支持的字符集标准等
6.Correlation标签页:手工设置关联,通过关联可在测试执行过程中保存动态值。使用这些设置可以配置VuGen在录制过程中执行的自动关联的程度。
69.LoadRunner如何选择协议?
LoadRunner属于应用在客户端的测试工具,在客户端模拟大量并发用户去访问服务器,从而达到给服务器施加压力的目的。所以说LoadRunner模拟的就是客户端,其脚本代表的是客户端用户所进行的业务操作,即只要脚本能表示用户的业务操作就可以。
1.LR支持多种协议,请大家一定要注意,这个地方协议指的是你的Client端通过什么协议访问的Server,Client一般是面向最终使用者的,Server是第一层Server端,因为现在的体系架构中经常Server层也分多个层次,什么应用层,什么数据层等等,LR只管Client如何访问第一层Server.
2.特别要注意某些应用,例如一个Web系统,这个系统是通过ActiveX控件来访问后台的,IE只是一个容器,而ActiveX控件访问后台是通过COM/DCOM协议的,这种情况就不能使用Web协议,否则你什么也录制不到,所以,LR工程师一定要了解应用程序的架构和使用的技术。
3.象HTTPS,一般来讲一定要选择多协议,但在选择具体协议的时候一定只选Web协议,这时候才能作那个端口映射。
n通常协议选择
1.对于常见的B/S系统,选择Web(Http/Html)
2.测一个C/S系统,根据C/S结构所用到的后台数据库来选择不同的协议,如果后台数据库是
sybase,则采用sybaseCTlib协议,如果是SQLserver,则使用MSSQLserver的协议,至于oracle数据库系统,当然就使用Oracle2-tier协议。
3.对于没有数据库的C/S(ftp,smtp)这些可以选择WindwosSockets协议。
4.至于其他的ERP,EJB(需要ejbdetector.jar),选择相应的协议即可.
5.一般可以使用Javavuser协议录制由java编写的C/S模式的软件,,当其他协议都没有用时,
只能使用winsocket协议
70.Loadrunner支持哪些常用协议?
Web(HTTP/HTML)
Sockets
.net协议
webservices
常用数据库协议(ODBC,ORACLE,SQLSERVER等)
邮件(SMTP、pop3)
其它协议
71.性能测试的类型都有哪些?
负载测试(LoadTest)
通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
压力测试(StressTest)
通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能够提供的最大服务级别的测试。
压力测试是一种特定类型的负载测试。
疲劳强度测试
疲劳强度测试可以反映出系统的性能问题,例如内存泄漏等。
大容量测试(VolumeTest)
对特定存储、传输、统计、查询业务的测试。
72.Loadrunner常用的分析点都有哪些?
Vusers:
Rendezvous(负载过程中集合点下的虚拟用户):
Errors(错误统计):
ErrorsperSecond(每秒错误):
TransactionsperSecond(每秒事务):
TransactionsSummary(事务概要说明)
统计事物的Pass数和Fail数,了解负载的事务完成情况。通过的事务数越多,说明系统的处理能力越强;失败的事务数越小说明系统越可靠。
TransactionperformanceSummary(事务性能概要):
HitsperSecond(每秒点击):
当前负载重对系统所产生的点击量记录,每一次点击相当于对服务器发出了一次请求,数据越大越好。
Throughput(吞吐量):
系统负载下所使用的带宽,该数据越小说明系统的带宽依赖就越小,通过这个数据可以确定是不是网络出现了瓶颈。
HTTPResponsesperSecond(每秒HTTP响应):
每秒服务器返回各种状态的数目,一般和每秒点击量相同。点击量是客户端发出的请求数,而HTTP响应数是服务器返回的响应数。如果服务器的响应数小于点击量,那么说明服务器无法应答超出负载的连接请求。
ConnectionsperSecond(每秒连接):
统计终端的连接和新建的连接数,方便了解每秒对服务器产生连接的数量。同时连接数越多,说明服务器的连接池越大,当连接数随着负载上升而停止时,说明系统的连接池已满,通常这时候服务器会返回504错误。需要修改服务器的最大连接来解决该问题。
LoadRunner不执行检查方法怎么解决?
在录制Web协议脚本中添加了检查方法Web_find,但是在脚本回放的过程中并没有执行。
错误现象:在脚本中插入函数Web_find,在脚本中设置文本以及图像的检查点,但是在回放过程中并没有对设置的检查点进行检查,即Web_find失效。
错误分析:由于检查功能会消耗一定的资源,因此LoadRunner默认关闭了对文本以及图像的检查,所以在设置检查点后,需要开启检查功能。
解决办法:打开运行环境设置对话框进行设置,在“Run-timeSettings”的“InternetProtocol”
选项里的“Perference”中勾选“Check”下的“EnableImageandtextcheck”选项。73.并发用户数是什么?跟在线用户数什么关系?
并发主要是针对服务器而言,是否并发的关键是看用户操作是否对服务器产生了影响。因此,并发用户数量的正确理解为:在同一时刻与服务器进行了交互的在线用户数量,这种交互既可以是单向的传输数据,也可以是双向的传送数据。
并发用户数是指系统运行期间同一时刻进行业务操作的用户数量。
使用频率较低的应用系统并发用户数一般为在线用户数的5%左右。
使用频率较高的应用系统并发用户数一般为主线用户数的10%左右
74.LoadRunner请求无法找到如何解决?
在录制Web协议脚本回放脚本的过程中,会出现请求无法找到的现象,而导致脚本运行停止。
错误现象:Action.c(41):Error-27979:Requestedform.notfound[MsgId:MERR-27979]
Action.c(41):web_submit_form.highestseveritylevelwas“ERROR”,0bodybytes,0headerbytes[MsgId:MMSG-27178]”
错误分析:所选择的录制脚本模式不正确,通常情况下,基于浏览器的Web应用会使用“HTML-basedscript”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的JavaApplet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用HTTPS安全协议,这时则使用“URL-basedscript”模式进行录制。
解决办法:打开录制选项配置对话框进行设置,在“RecordingOptions”的“InternetProtocol”选项里的“Recording”中选择“RecordingLevel”为“HTML-basedscript”,单击“HTMLAdvanced”,选择“Script.Type”为“Ascript.containingexplicit”。然后再选择使用“URL-basedscript”模式来录制脚本。
75.LoadRunnerHTTP服务器状态代码都有哪些?如何解决?
在录制Web协议脚本回放脚本的过程中,会出现HTTP服务器状态代码,例如常见的页面-404错误提示、-500错误提示。
错误现象1:-404NotFound服务器没有找到与请求URI相符的资源,但还可以继续运行直到结束。
错误分析:此处与请求URI相符的资源在录制脚本时已经被提交过一次,回放时不可再重复提交同样的资源,而需要更改提交资源的内容,每次回放一次脚本都要改变提交的数据,保证模拟实际环境,造成一定的负载压力。
解决办法:在出现错误的位置进行脚本关联,在必要时插入相应的函数。
错误现象2:-500InternalServerError服务器内部错误,脚本运行停止。
错误分析:服务器碰到了意外情况,使其无法继续回应请求。
解决办法:出现此错误是致命的,说明问题很严重,需要从问题的出现位置进行检查,此时需要此程序的开发人员配合来解决,而且产生的原因根据实际情况来定,测试人员无法单独解决问题,而且应该尽快解决,以便于后面的测试
76.HTTP的超时有哪三种?
HTTP-requestconnecttimeout、HTTP-requestreceivetimeout、stepdownloadtimeout
77.在什么地方设置HTTP页面filter
在runtime_settings中downloadfilter里面进行设置。
78.如何设置可以让一个虚拟IP对应到一个Vuser
利用线程和进程做中介,逻辑上的对应。
选中ExpertMode,设置Options中的General
79.什么是contentcheck如何来用?
ContentCheck的设置是为了让VuGen检测何种页面为错误页面。如果被测的Web应用没有使用自定义的错误页面,那么这里不用作更改;如果被测的Web应用使用了自定义的错误页面,那么这里需要定义,以便让VuGen在运行过程中检测,服务器返回的页面是否包含预定义的字符串,进而判断该页面是否为错误页
面。如果是,VuGen就停止运行,指示运行失败。
使用方法:点击在runtimesettings中点击“contentcheck”,然后新建立一个符合要求的应用程序和规则,设定需要查找的文本和前缀后缀即可使用。
模拟用户访问速度的带宽。
81.生成WEB性能图有什么意义?大概描述即可。
可以很直观的看到,在负载下系统的运行情况以及各种资源的使用情况,可以对系统的性能瓶颈定位、性
能调优等起到想要的辅助作用。
82.WANemulation是模拟什么的?
83.如何设置才能让集合点只对一半的用户生效?
84.在设置windows资源图监控的时候,用到的是什么端口和协议?在这一过程中,会有大概哪
些问题?(大概描述)
microsoft-ds:445;要有权限、开启服务。树视图和脚本视图各有什么优点?
85.需要关联的数据怎么确定?
86.
87.树视图和脚本视图各有什么优点?
TreeView的好处是使用户更方便地修改脚本,TreeView支持拖拽,用户可以把任意一个节点拖拽到他想
要的地方,从而达到修改脚本的目的。用户可以右键单击节点,进行修改/删除当前函数参数属性,增加函
ScriptView适合一些高级用户,在ScriptView中能够看到一行行的API函数,通过ScriptView向脚本中增加一些其他API函数,对会编程的高手来说很方便
88.LR中的API分为几类?
A:通用的API:,就是跟具体的协议无关,在任何协议的脚本里都能用的;
B:针对协议的:像lrs前缀是winsock的;lrd的是针对database;
C:自定义的:这个范围就比较广了;
89.解释以下函数及他们的不同之处。
Lr_debug_message
Lr_output_message
Lr_error_message
Lrd_stmt
Lrd_fetch
二、选择题(2*5=10分)
1.Duringtherunofascenario,whichLoadRunnercomponentstoresthe
performancemonitoringdataB
A.Analysis
B.Controller
C.Fileserver
D.Loadgenerator/host
2.WherearetheresultsstoredduringtherunofascenarioD
C.Utilityserver
D.Loadgenerator
3.Ascriptwasrecordedwithanaveragethinktimeforanadvanceduser.An
advanceduserpauses5secondsbetweenclicks.Afirst-timeuserpausesanaverageof10secondsbetweenclicks.Howcanyoumodifythethinktimerun-timesettingstoemulateafirst-timeuserC
A.Setthethinktimetosrecorded
B.Setthethinktimetomultiplytherecordedthinktimeby4
C.Setthethinktimetoarandompercentagebetween150%-250%
D.Setthethinktimetoreplayasrecorded,butlimitthethinktimeto10seconds
4.WhichHTTPerrorcodeindicatesthatanindividualbusinessprocessisfailing