您好、欢迎来到现金彩票网!
当前位置:ds视讯 > 服务原语 >

LoadRunner面试题

发布时间:2019-06-11 00:14 来源:未知 编辑:admin

  答: 录制时记录的是客户端和服务端的交互,如果要精确模拟 用户的行为,那么客户操作客户端时花费了很多时间要怎么模拟呢?

  录入 填写提交的内容,从列表中下拉搜索选择特定的值等,这时LOADRUNNER 不会记录用户 的客户端操作,而是记录了用户这段

  时间,成为思考时间(Think-time),因为用户的这些客户端操作不会影响服务端,只是让服务器端在这段时间内没有请求而已。,所

  以加入思考时间就能模拟出熟练的或者生疏的用户操作,接近实际对于服务端的压力。

  Vuser 思考时间模拟实际用户在不同操作之间等待的时间。例如,当用户收到来自服务器的数据时,可能要等待几秒钟查看数

  据,然后再做出响应。这种延迟就称为“思考时间”。VuGen 使用 lr_think_time 函数将思考时间值录制到 Vuser 脚本中。以下录

  当您运行了 Vuser 脚本并且 Vuser 遇到了上述 lr_think_time 语句时,默认情况下,Vuser 将等待 8 秒钟后再执行下一个操作。可

  以使用思考时间运行时设置来影响运行脚本时 Vuser 使用录制思考时间的方式。

  答:TPS主要还是体现服务器对当前录制的事务的处理速度快慢。TPS高并不代表性能好。

  TPS 是Transactions Per Second 的 缩 写,也就是事务数/ 秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服

  务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时

  间和完成的事务个数,最终利用这些信息来估计得分。客户机使用加权协函数平均方法来计算客户机的得分,试软件就是利用

  客户机的这些信息使用加权协函 数平均方法来计算服务器端的整体TPS得分。

  /*此段代码为:添加”树状”节点数据,代码源于*****项目,此码仅添加数据到第三层。*/

  二级节点添加完一次就读一次ID读一次二级节点直接添加三级节点*/

  /*修改”树状”节点数据的代码类似,Submit修改时,要多建一个参数TreeCode*/

  int M1,M2,M3; //分别定义一、二级节点的数量,三级节点不保存数据,故未限制大小

  一个应用程序是由很多个组件组成的,整个应用程序的性能好不好需要从整体入手去分析。

  在select page to breakdown 中选择页面。选中后,在选择栏下方看到属于它的组件。哪一行的事物占据的时间较长,那么它的消耗时间点就在这里,分析问题也就要从这里入手。

  显示使用最近的dns服务器,将dns解析为ip地址所需要的时间,“dns查找”度量是指示dns解析问题或dns服务器问题的一个很好的指示器。

  显示与包含指定的URL的web服务器建立初始连接所需要的时间。连接度量是一个很好的网络问题指示器。另外,他还能判断服务器是否对请求作出响应。

  显示从初始HTTP请求(通常为get) 到成功收到来自web服务器的第一次缓冲时为止所经过的时间。第一次缓冲度量可以判断是否存在web服务器延迟或者网络滞后。

  注意点:由于缓冲区最大为8k,因此第一次缓冲时间可能也就是完成元素下载所需要的时间。

  显示建立ssl连接(包括客户端请求,服务器请求,客户端公用密钥传输,服务器证书传输及其它部分可选阶段)所用的时间。自此点之后,客户端及服务器之间所有的通信都将被加密。

  显示验证客户端所用的时间。如果使用ftp,则服务器在开始处理客户端命令之前,必须验证该客户端。、

  显示因浏览器思考时间或其它与客户端有关的延迟而使客户机上的请求发生延迟时,所经过的平均时间。

  显示从发出HTTP请求到返回错误消息(仅限于HTTP错误)期间所经过的平均时间。

  分析以上指标,结合系统资源监控指标,会比较准确快速的定位问题。从而对系统的性能及随后的调优提供针对性的意见。

  ☆ 确定需要进行测试的业务或交易,通过手工操作和Vuser Generator的录制功能来记录并生成虚拟用户脚本。

  ☆ 在Controller中对场景进行配置后,启动测试。在测试过程中,Controller控制Load Generator对被测系统的加压方式和行为。

  ☆ Controller同时负责搜集被测系统各个环节的性能数据。各个Loaded Generator会记录最终用户响应时间和脚本执行的日志。

  ☆ 借助数据分析工具Analysis对性能测试数据进行分析,确定瓶颈和调优方法。

  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也在等待其他资源释放才能继续。这就会出现这样的问题:同一个测试场景,用线程并发就会超时失败或报错,而用进程并发就没错。

  本次通过loadRunner录制SQL Server介绍一下如何测试一个sql语句或存储过程的执行性能。

  测试准备阶段我们首先要确认测试数据库服务器:我们可以在本地安装SQL SERVER数据库服务端及客户端,也可以确定一台装好的SQL SERVER服务器。

  接下来,准备测试数据:对数据库测试时我们要考虑的不是SQL语句是否能够正确执行,而是在某数量级的情况下SQL语句的执行效率及数据库服务的运行情况,所以我们分别准备不同数量级的测试数据,即根据实际的业务情况预估数据库中的记录数,在本次讲解中我们不考虑业务逻辑也不考虑数据表之间的关系,我们只建立一张表,并向此表中加入不同数量级的数据,如分别加入1000条、10000条、50000条、100000条数据查看某SQL语句的执行效率。

  好了,执行完上述语句后,建立的数据表中已经有1000条记录了,下面进行第二步的操作,配置ODBC数据源,为了能让loadrunner能够通过ODBC协议连接到我们建立的SQL SERVER数据路,我们需要在本机上建立ODBC数据源,建立方法如下:

  控制面板性能和维护管理工具数据源(ODBC)--添加,在列表中选择SQL SERVER点击完成,根据向导输入数据源名称,链接的服务器,下一步,输入链接数据库的用户名和密码,更改链接的数据库,完成ODBC的配置,如果配置正确的话,在最后一步点击“测试数据源”,会弹出测试成功的提示。

  3、 开始录制,首先通过查询分析器登录SQL SERVER,在打开的查询分析器窗口中输入要测试的SQL语句,如“select * from test_table;”

  好了,现在就可以看到loadrunner生成的脚本了(由于脚本过长,在这里就不粘贴了,有需要的朋友可以加我QQ,我把脚本发给你们),通过这些语句,我们可以看出,登录数据库的过程、执行SQL语句的过程。

  接下来,我们来优化脚本,我们分别为数据库登录部分和执行SQL语句的部分加一个事物,在增加一个double的变量获取事务执行时间,简单内容如下:

  优化后,在执行上述脚本后,就可以得到登录到数据库的时间及运行select * from test_table这条语句的时间了,当然我们也可以根据实际情况对该条语句进行参数化,可以测试多条语句的执行时间,也可以将该语句改为调用存储过程的语句来测试存储过程的运行时间。

  最起码在VUGen中运行该脚本我们可以得到任意一个SQL语句及存储过程的执行时间,如果我们测试的B/S结构的程序

  2.备份好LoadRunner安装目录下测试脚本,一般存放在LoadRunner安装目录下的“scrīpts”子目录里。

  3.在控制面板的“删除与添加程序”中运行LoadRunner的卸载程序。如果弹出提示信息关于共享文件的,都选择全部删除。

  4.卸载向导完成后,重新启动电脑。完成整个LoadRunner卸载过程。

  2) vugen.*7.运行注册表程序(开始- 运行- regedit)8.删除下列键值:

  完成了以上操作就可以正常的重新安装LoadRunner。安装LoadRunner时最好关闭所有的杀毒程序。

  (小用户时:程序上的问题。程序上处理数据库的问题,实际测试中多半是服务器链接的配置问题)

  对应的Apache和tomcat的最大链接数需要修改,如果连接时收到connection refused消息,说明应提高相应的服务器最大连接的设置,增加幅度要根据实际情况和服务器硬件的情况来定,建议每次增加25%!

  在进行压力测试时,为了检查Web 服务器返回的网页是否正确,这些检查点验证网页上是否存在指定的Text 或者Image,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。

  2、在树形菜单中选择需要插入检查点的一项,然后点鼠标右键,选择将检查点插到该操作执行前(Insert Before)还是执行后(Insert After)。

  通过 LoadRunner,可以从数据库中导入数据以用于参数化。您可以用下列两种方法中的一种导入数据:

  VuGen 提供一个指导您完成从数据库中导入数据的过程的向导。在该向导中,您可以指定如何导入数据(通过 MS Query 新建查询或者指定 SQL 语句)。

  导入数据之后,它被另存为一个扩展名为.dat 的文件,并且存储为常规参数文件。

  集合点:如果脚本中设置集合点,可以达到绝对的并发,但是集合点并不是并发用户的代名词,设置结合点和不设置结合点,需要看你站在什么角度上来看待并发,是整个服务器,还是提供服务的一个事务;

  ? 在测试计划中,可能会要求系统能够承受1000 人甚至更多同时提交数据,在LR 中可以通过在提交数据操作前面加入集合点,当虚拟用户运行到提交数据的集合点时,LR 就会检查同时有多少用户运行到集合点,从而达到测试计划中的需求。

  ? Rendezvous,也可在录制时按插入集合点按钮?具体的操作方法如下:在需要插入集合点的前面,点击菜单Insert

  ? 注意:集合点经常和事务结合起来使用。集合点只能插入到Action 部分,vuser_init和vuser_end 中不能插入集合点。

  2. LoadRunner 运行到该事务的开始点时,LR就会开始计时,直到运行到该事务的结束点,这个事务的运行时间在结果中会有反映。

  3. 插入事务操作可以在录制过程中进行,也可以在录制结束后进行。LR 运行在脚本中插入不限数量的事务。

  4. Start?在菜单中单击Insert Transaction后,输入事务名称,也可在录制过程中进行,在需要定义事务的操作后面插入事务的“结束点”。默认情况下,事务的名称列出最近的一个事务名称。一般情况下,事务名称不用修改。事务的状态默认情况下是LR_AUTO。一般情况下,我们也不需要修改状态的

  1. 启动VuGen:选择需要新建的协议脚本,可以创建单协议,或是多协议脚本

  3. 使用VuGen进行录制:创建的每个 Vuser 脚本都至少包含三部分:vuser_init、一个或多个 Actions 及vuser_end。录制期间,可以选择脚本中 VuGen 要插入已录制函数的部分。运行多次迭代的Vuser 脚本时,只有脚本的Actions部分重复,而vuser_init和vuser_end部分将不重复

  ? 如果基于浏览器的应用程序中包含了Java scrīpt并且该脚本 向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-Based scrīpt方式录制。

  ? 基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-Based scrīpt方式录制。

  ? 录制过程中不要使用浏览器的“后退”功能,LoadRunner对其支持不太好。

  5.Advanced 标签页:可以设置录制时的think time,支持的字符集标准等

  

  很多人使用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协议,这时候才能作那个端口映射。

  5. 一般可以使用Java vuser协议录制由java编写的C/S模式的软件, ,当其他协议都没有用时,只能使用winsocket协议

  通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。

  通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能够提供的最大服务级别的测试。

  通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。

  并发主要是针对服务器而言,是否并发的关键是看用户操作是否对服务器产生了影响。因此,并发用户数量的正确理解为:在同一时刻与服务器进行了交互的在线用户数量,这种交互既可以是单向的传输数据,也可以是双向的传送数据。

  提供了生产负载的虚拟用户运行状态的相关信息,可以帮助我们了解负载生成的结果。

  当设置集合点后会生成相关数据,反映了随着时间的推移各个时间点上并发用户的数目,方便我们了解并发用户的变化情况。

  了解在每个时间点上错误产生的数目,数值越小越好。通过统计数据可以了解错误随负载的变化情况,定为何时系统在负载下开始不稳定甚至出错。

  反映随着时间的变化事务响应时间的变化情况,时间越小说明处理的速度越快。如果和用户负载生成图合并,就可以发现用户负载增加对系统事务响应时间的影响规律。

  TPS吞吐量,反映了系统在同一时间内能处理事务的最大能力,这个数据越高,说明系统处理能力越强。

  统计事物的Pass数和Fail数,了解负载的事务完成情况。通过的事务数越多,说明系统的处理能力越强;失败的事务数越小说明系统越可靠。

  事务的平均时间、最大时间、最小时间柱状图,方便分析事务响应时间的情况。柱状图的落差越小说明响应时间的波动小,如果落差很大,说明系统不够稳定。

  负载用户增长的过程中响应时间的变化情况,该图的线条越平稳,说明系统越稳定。

  不同百分比下的事务响应时间范围,可以了解有多少比例的事物发生在某个时间内,也可以发现响应时间的分布规律,数据越平稳说明响应时间变化越小。

  当前负载重对系统所产生的点击量记录,每一次点击相当于对服务器发出了一次请求,数据越大越好。

  系统负载下所使用的带宽,该数据越小说明系统的带宽依赖就越小,通过这个数据可以确定是不是网络出现了瓶颈。

  每秒服务器返回各种状态的数目,一般和每秒点击量相同。点击量是客户端发出的请求数,而HTTP响应数是服务器返回的响应数。如果服务器的响应数小于点击量,那么说明服务器无法应答超出负载的连接请求。

  统计终端的连接和新建的连接数,方便了解每秒对服务器产生连接的数量。同时连接数越多,说明服务器的连接池越大,当连接数随着负载上升而停止时,说明系统的连接池已满,通常这时候服务器会返回504错误。需要修改服务器的最大连接来解决该问题。

  在录制Web协议脚本中添加了检查方法Web_find,但是在脚本回放的过程中并没有执行。

  错误现象:在脚本中插入函数Web_find,在脚本中设置文本以及图像的检查点,但是在回放过程中并没有对设置的检查点进行检查,即Web_find失效。

  错误分析:由于检查功能会消耗一定的资源,因此LoadRunner默认关闭了对文本以及图像的检查,所以在设置检查点后,需要开启检查功能。

  在录制Web协议脚本回放脚本的过程中,会出现请求无法找到的现象,而导致脚本运行停止。

  错误分析:所选择的录制脚本模式不正确,通常情况下,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用HTTPS安全协议,这时则使用“URL-based script”模式进行录制。

  在录制Web协议脚本回放脚本的过程中,会出现HTTP服务器状态代码,例如常见的页面-404错误提示、-500错误提示。

  错误现象1:-404 Not Found服务器没有找到与请求URI相符的资源,但还可以继续运行直到结束。

  错误分析:此处与请求URI相符的资源在录制脚本时已经被提交过一次,回放时不可再重复提交同样的资源,而需要更改提交资源的内容,每次回放一次脚本都要改变提交的数据,保证模拟实际环境,造成一定的负载压力。

  解决办法:出现此错误是致命的,说明问题很严重,需要从问题的出现位置进行检查,此时需要此程序的开发人员配合来解决,而且产生的原因根据实际情况来定,测试人员无法单独解决问题,而且应该尽快解决,以便于后面的测试。

  这两天测试并发修改采购收货时,录制回放正确,运行脚本,集合点3个并发时,却老是出错

  解决过程:按Help提示在浏览器输入原地址,发现提示“请重新登陆系统”。

  被此误导,偶以为是Session ID、或Cookie失效,于是尝试找关联,花了N多时间。可是脚本里确实不存在需要关联的地方呀,系统默认关联了。

  与程序员沟通,证实此过程不会涉及到Session ID 或Cookie。那为什么?

  Action.c(30): 与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。/font

  其实并发死锁本来就是本次的重点,之前是写事务,但没有做整个页面的锁定,只是写在SQL里。程序员说这样容易出现页面错误,

  又改成页面锁定,具体怎么锁偶没看懂asp外行。之前事务冲突,偶让他写个标志,定义个数值字段增一,偶就可以直观看出来了。

  这次最大的收获就是知道怎么查找Controller的log文件。以后看到Error就不会被牵着鼻子走了~~~~

  在录制Web协议脚本时出现中文乱码,在回放脚本时会使回放停止在乱码位置,脚本无法运行。

  错误分析:脚本录制可能采用的是URL-based script方式,如果程序定义的字符集合采用的是国际标准,脚本就会出现乱码现象。

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

  在录制Web协议脚本回放时超时情况经常出现,产生错误的原因也有很多,解决的方法也不同。

  错误分析:对于HTTP协议,默认的超时时间是120秒(可以在LoadRunner中修改),客户端发送一个请求到服务器端,如果超过120秒服务器端还没有返回结果,则出现超时错误。

  错误分析:这种错误常常是因为并发压力过大,服务器端太繁忙,无法及时响应客户端的请求而造成的,所以这个错误是正常现象,是压力过大造成的。

  如果压力很小就出现这个问题,可能是脚本某个地方有错误,要仔细查看脚本,提示的错误信息会定位某个具体问题发生的位置。

  解决办法:例如上面的错误现象问题定位在某个URL上,需要再次运行一下场景,同时在其他机器上访问此URL。如果不能访问或时间过长,可能是服务器或者此应用不能支撑如此之大的负载。分析一下服务器,最好对其性能进行优化。

  如果再次运行场景后还有超时现象,就要在各种图形中分析一下原因,例如可以查看是否服务器、DNS、网络等方面存在问题。

  解决方法:web_reg_save_param位置放错了,应该放到请求页面前面。

  这个错误是由网络原因造成的,PC1和PC2上面都装了相同的loadrunner 9.0,且以相同数量的虚拟用户数运行相同的业务(机器上的其他条件都相同),PC1上面有少部分用户报错,PC2上的用户全部执行通过。

  这个问题一般是客户端链接到服务失败,原因有两个客户端连接限制(也就是压力负载机器),一个网络延迟严重,解决办法:

  1、修改负载机器注册表中的TcpTimedWaitDelay减小延时和MaxUserPort增加端口数。注:这将增加机器的负荷。

  建议为了减少这种情况,办法一最好测试前就完成了,保证干净的网络环境,每个负载机器的压力测试用户数不易过大,尽量平均每台负载器的用户数,这样以上问题出现的概率就很小了。

  在许多客户端连接Weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic中的server元素的AcceptBacklog属性值设得过低。如果连接时收到connection refused消息,说明应提高该值,每次增加25%

  如果是以上所说的小用户时:程序上的问题。程序上存在数据库的问题,那就必须采用更加专业的工具来抓取出现问题的程序,主要是程序中执行效率很低的sql语句,weblogic可以采用introscope定位,期间可以注意观察一下jvm的垃圾回收情况看是否正常,我在实践中并发500用户和600用户时曾出现过jvm锯齿型的变化,上升下降都很快,这应该是不太正常的。

  实际测试中,可以用telent站点看看是否可以连接进去,可以通过修改连接池中的连接数和适当增加应用内存值,问题可以解决。

  问题一般都在压力较大的时候出现,由于服务器或者应用中间件本身对于打开的文件数有最大值限制造成,解决办法:

  1、修改操作系统的文件数限制,aix下面修改limits下的nofiles限制条件,增大或者设置为没有限制,尽量对涉及到的服务器都作修改。

  2、方法一解决不了情况下再去查看应用服务器weblogic的commonEnv.sh文件,修改其中的nofiles文件max-nofiles数增大,应该就可以通过了,具体就是查找到nofiles方法,修改其中else条件的执行体,把文件打开数调大。修改前记住备份此文件,防止修改出错。

  这个的错误的原因比较复杂,也可能很简单也可能需要查看好几个地方,解决起来不同的操作系统方式也不同。

  1、首先检查是不是连接weblogic服务过大部分被拒绝,需要监控weblogic的连接等待情况,此时需要增加acceptBacklog,每次增加25%来提高看是否解决,同时还需要增加连接池和调整执行线程数,(连接池数*Statement Cache Size)的值应该小于等于oracle数据库连接数最大值。

  2、如果方法一操作后没有变化,此时需要去查看服务器操作系统中是否对连接数做了限制,AIX下可以直接vi文件limits修改其中的连接限制数、端口数,还有tcp连接等待时间间隔大小,wiodows类似,只不过windows修改注册表,具体修改注册表中有TcpTimedWaitDelay和MaxUserPort项,键值在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\]。因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。在全部占满后,就会出现上面的错误。执行netstat na命令,可以看到打开了很多端口。所以就调整TCP的time out。即在最后一个端口还没有用到时,前面已经有端口在释放了。

  1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。

  这个问题不多遇见,一般是由于下载的速度慢,导致超时,所以,需要调整一下超时时间。

  ContentCheck的设置是为了让VuGen 检测何种页面为错误页面。如果被测的Web 应用没有使用自定义的错误页面,那么这里不用作更改;如果被测的Web 应用使用了自定义的错误页面,那么这里需要定义,以便让VuGen 在运行过程中检测,服务器返回的页面是否包含预定义的字符串,进而判断该页面是否为错误页

  使用方法:点击在runtime settings中点击“contentcheck”,然后新建立一个符合要求的应用程序和规则,设定需要查找的文本和前缀后缀即可使用。

  程和线程的区别网上很多,不作过多讨论,重点说一下其在LR中选择的区别。最显著的区别是:线程有

  自己的全局数据。线程存在于进程中,因此一个进程的全局变量由所有的线程共享。由于线程共享同样的系

  统区域,操作系统分配给一个进程的资源对该进程的所有线程都是可用的,正如全局数据可供所有线程使用

  vuser,则对于每个vuser实例,都将反复启动同一驱动程序并将其加载到内存中。将同一驱动程序加载到

  内存中会占用大量的RAM(随机存储器)及其他系统资源。这就限制了可以在任一负载生成器上运行的

  vuser数量。如果按线程运行每个vuser,Controller为每50个vuser(默认情况下)仅启动驱动程序(如

  mdrv.exe)的一个实例。该驱动程序将启动几个vuser,每个vuser都按线程运行。这些线程vuser将共享父

  驱动进程的内存段。这就消除了多次重新加载驱动程序/进程的需要,节省了大量内存空间,从而可以在一

  可以很直观的看到,在负载下系统的运行情况以及各种资源的使用情况,可以对系统的性能瓶颈定位、性

  答:是模拟广域网环境的。模拟大量网络基础架构的行为。可以设置突出 WAN 效果的参数(如延迟、丢包、动态路由效果和链接故障),并监控模拟设置对网络性能的影响。

  置即可,由于题目中“一半的用户”没有说明白具体指什么样的用户,现在不好确定具体对里面的哪个选项

  14,在设置windows资源图监控的时候,用到的是什么端口和协议?在这一过程中,会有大概哪些问题?(大概描述)

  Tree View的好处是使用户更方便地修改脚本,Tree View支持拖拽,用户可以把任意一个节点拖拽到他想

  要的地方,从而达到修改脚本的目的。用户可以右键单击节点,进行修改/删除当前函数参数属性,增加函

  数等操作,通过Tree View能够增加LoadRunner提供的部分常用通用函数和协议相关函数。

  Script View适合一些高级用户,在Script View中能够看到一行行的API函数,通过Script View向脚本中增加一些其他API函数,对会编程的高手来说很方便

  协议包不是指vuser类型。打开LR后,在选择vuser类型时,我们一般选择的上面一个下拉框都是all protocol。那个就是我说的协议包。

  (4)如果知道需要做关联数据的左右边界等信息,可以自己添加相应的关联的规则来录制脚本,从而确定

  性能测试用例设计首先要分析出用户现实中的典型场景,然后参照典型场景进行设计。下面详细介绍一下常见的三类用户场景:

  一天内不同时间段的使用场景。在同一天内,大多数系统的使用情况都会随着时间发生变化。例如对于新浪、网易等门户网站,在周一到周五早上刚一上班时,可能邮件系统用户比较多,而上班前或者中午休息时间则浏览新闻的用户较多;而对于一般的OA系统则早上阅读公告的较多,其他时间可能很多人没有使用系统或者仅有少量的秘书或领导在起草和审批公文。这类场景分析的任务是找出对系统产生压力较大的场景进行测试。

  系统运行不同时期的场景。系统运行不同时期的场景是大数据量性能测试用例设计的依据。随着时间的推移,系统历史数据将会不断增加,这将对系统响应速度产生很大的影响。大数据量性能测试通常会模拟一个月、一季度、半年、一年、的数据量进行测试,其中数据量的上限是系统历史记录转移前可能产生的最大数据量,模拟的时间点是系统预计转移数据的某一时间。

  不同业务模式下的场景。同一系统可能会处于不同的业务模式,例如很多电子商务系统在早上8点到10点以浏览模式为主,10点到下午3点以定购模式为主,而在下午3点以后可能以混合模式为主。因此需要分析哪些模式是典型的即压力较大的模式,进而对这些模式单独进行测试,这样做可以有效的对系统瓶颈进行隔离定位。与“一天内不同时间段的场景测试”不同,“不同业务模式下的场景测试”更专注于某一种模式的测试,而“一天内不同时间段的场景测试”则多数是不同模式的混合场景,更接近用户的实际使用情况

  软件工程定义:吞吐量是指在单位时间内中央处理器(CPU)从存储设备读取-处理-存储信息的量。

  性能瓶颈,可以侦测到使用显示器。这些显示器可能是应用服务器的监测,监控Web服务器,数据库服务器的监控和网络监控。他们帮助找到了动乱地区的情况,原因增加响应时间。该测量通常性能的响应时间,吞吐量,访问/秒,网络延迟图表等

  吞吐量图显示的是虚拟用户每秒钟从服务器接收到的字节数。当和响应时间比较时,可以发现随着吞吐量的降低,响应时间也降低,同样的,吞吐量的峰值和最大响应时间差不多在同时出现。

  VuGen提供了用多线程的便利。这使得在每个生成器上可以跑更多的虚拟用户。如果是以进程的方式跑虚拟用户,为每个用户加载相同的驱动程序到内存中,因此占用了大量的内存。这就限制了在单个生成器上能跑的虚拟用户数。如果按进程运行,给定的所有虚拟用户数(比如100)只是加载一个驱动程序实例到内存里。每个进程共用父驱动程序的内存,因此在每个生成器上可以跑更多的虚拟用户。

  VuGen 包含两个选项来帮助调试 Vuser 脚本:“分步运行”命令和断点。这些选

  1 依次选择“Vuser” “分步运行”,或者单击“调试”工具栏上的“步骤”按

  该脚本对应用程序的影响。要管理书签,请参阅第 186 页上的“断点管理器”。

  2 依次选择“插入” “切换断点”,或者单击“调试”工具栏上的“断点”按

  钮。也可以按键盘上的 F9 键。将在脚本的左边距显示“断点”符号 ( )。

  3 要禁用断点,请将光标置于包含断点符号的行上,然后单击“调试”工具栏上的

  “启用 / 禁用断点”按钮。“断点”符号中将会显示一个白点 ( )。禁用一个断点

  到达断点时, VuGen 将暂停脚本的执行。可以检查脚本运行到断点时的效果,

  1 单击“添加”。将打开“添加断点”对线 选择“操作”,并指定要添加断点的行号。

  1 要在特定的迭代次数后暂停运行脚本,请选择“当迭代次数为下值时暂停”并输

  2 要在参数 X 具有特定值时暂停脚本,请选择“当参数 X 值为下值时暂停”并输

  入所需的值。有关参数的详细信息,请参阅第 8 章“使用 VuGen 参数”。

  当使用脚本视图时, VuGen 使您可以在脚本中各个不同的置放置书签。您可以

  1 将光标置于所需的位置,然后按 Ctrl + F2 组合键。VuGen 会在脚本的左边距放

  2 要删除书签,请单击要删除的标签,然后按 Ctrl + F2 组合键。VuGen 将删除左

  您还可以通过“编辑” “书签”菜单项来创建书签和在书签之间进行导航。

  注意: 只能在当前操作中的书签之间导航。要导航到另一操作中的书签,请在左

  如果要检查特定步骤或函数的“回放日志”消息,请在 VuGen 中选择该步骤,

  然后依次选择“编辑” “转至回放日志中的步骤”。VuGen 将把光标放置在

  当调试脚本时,可以只输出错误日志,当在场景找你管加载脚本时,日志自动变为不可用。

  Standard Log Option:选择标准日志时,就会在脚本执行过程中,生成函数的标准日志并且输出信息,供调试用。大型负载测试场景不用启用这个选项。

  扩展日志包括警告和其他信息。大型负载测试不要启用该选项。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中

  你如何找出哪里需要关联?请给一些你所在项目的实例 哪里设置自动关联选项?

  两种方法:首先,我们可以扫描的关联,看到的清单价值可关联。从这一点我们可以选择一个值的关联。其次,我们可以记录两个脚本并加以比较。我们可以期待的差异档案,看看的价值观,需要予以密切相关。在我的项目,有一个独特的ID为每一个客户,它只是保险号码,这是自动生成的,它是连续和这个值是独一无二的。我有关联这个值,为了避免错误,同时运行的脚本。我没有使用扫描相关的

  两种方法:首先,我们可以扫描的关联,看到的清单价值可关联。从这一点我们可以选择一个值的关联。其次,我们可以记录两个脚本并加以比较。我们可以期待的差异档案,看看的价值观,需要予以密切相关。在我的项目,有一个独特的ID为每一个客户,它只是保险号码,这是自动生成的,它是连续和这个值是独一无二的。我有关联这个值,为了避免错误,同时运行的脚本。我没有使用扫描相关的

  解释:1.基于浏览器的应用程序推荐使用HTML-based Script, 脚本中采用

  HTML页面的形式来表示,这种方式的Script脚本容易维护,容易理解,使用该选项中的advance中的第一个选项,如果单纯的HTML方式,是不允许使用关联的。

  2.不是基于浏览器的应用程序推荐使用URL-based Script,脚本中的表示采用基于URL 的方式,不是很好阅读。

  解释:1.是否记录录制过程中的ThinkTime,如果记录,还可以设置最大值,一般我不记录这个值。

  用例场景应该说是写测试用例,甚至是分析测试要素、设计测试策略另外一个重要的依据了。

  首先,软件研发最终是要再用户那里使用的,用例场景都将在用户的使用过程中被一一实现。

  其次,需求的文档会变,设计会变,但用户的用例场景是基本上不会变的(除非是政策或者战略上的变更)。这样使测试工作的任务更加明确了,也更加容易定义修改的优先级以及在修改建议上和开发人员达成一致。毕竟满足用户的用例场景是首要的。

  与微软等技术主导的软件企业相比,我向国内的软件更多的是市场主导,用户需求主导的软件企业和设计思想甚至开发模式。

  用例场景会比需求文档和分析报告更容易理解,同时也是对于理解用户的需求,产品设计更有帮助。在测试中能够帮助我们发现不仅仅是功能上的问题。

  什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?

  插入集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,从而达到测试计划中的需求。

  说明:在脚本中设置了“集合点”后,当运行场景时可以对集合点进行设置,可以设置当百分之多少用户到达时,系统开始执行以下操作,详细的可以参考中文的用户手册

  Rendezvous points(集合点)衡量最常用的环节在n个用户同时访问的大负载量下的性能

  - Proxys:不要使用代理服务器,或者在IE中设置本地连接不使用代理

  注意: 可能会在VuGen中开发多个脚本,每个脚本的开发最好遵从以上的步骤

  1). 选择场景的类型:根据现在的情况,选择“Manual Scenario”,配置时可以更加的灵活

  7). 配置Schedule:为了充分利用资源,可以配置成晚上10:00以后开始运行,连续运行n个小时,第二天上班来看结果

  1,创建脚本-创建脚本,选择协议-录制脚本-编辑脚本-检查修改脚本是否有误

  2,用中央控制器来调度虚拟用户-创建场景,选择脚本-设置机器虚拟用户数-设置事务-如果模拟多机测试,设置IP

  在同一时间点,支持多个不同的操作。LoadRunner中提供IP伪装,集合点,配合虚拟用户的设计,以及在多台电脑上设置,可以比较好的模拟真实的并发。

  A1:负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试,例如,访问一个页面的响应时间规定不超过1秒,负载测试就是测试在响应时间为1秒时,系统所能承受的最大并发访问用户的数量。

  性能测试:指在一定的约束条件下(指定的软件、硬件、网络环境等),确定系统所能承受的最大负载压力。

  A5:功能测试通过;一般需要进行性能测试的系统,都是用户量比较大、业务使用比较频繁、比较重要的功能模块。

  Q9.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?

  A9:在性能测试过程中,需要模拟大量用户在同一时刻,访问系统并同时操作某一任务,可以通过配置集合点来实现,多个用户同时进行某操作;

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

  设置场景:选择场景类型、设置运行时设置、模拟用户数、加减压方式、持续时间,配置负载生成器。

  A12:LoadRunner在录制脚本的时候,只是忠实的记录了所有从客户端发送到服务器的数据,而在进行性能测试的时候,为了更接近真实的模拟现实应用,对于某些信息需要每次提交不同的数据,或者使用多个不同的值进行循环输入。这时,在LoadRunner中就可以进行参数化设置,以使用多个不同的值提交应用请求。

  A13:【关联的定义】简单的说:就是把脚本中某些写死(固定)的数据,转变成动态的数据,或者说将前面语句的结果数据保存下来,然后在后面的语句提交请求时使用这些数据。

  客户端需要从服务器端返回数据中获取部分数据,并将这些部分数据处理后作为自己下一次请求的一部分发出。

  【自动关联与手工关联的不同】:自动关联是在脚本录制过程中,VuGen会根据已经制定好的规则,自动找出需要关联的值或脚本录制完成后,执行脚本一次,通过Correlation Studio自动找出需要关联的数据,并建立关联;而手动关联是需要录制两份相同业务流程的脚本,输入的数据要相同,利用WinDiff工具,找出两份脚本之间不同之处,也就是需要关联的数据,再通过web_reg_save_param函数手动建立关联,将脚本中用到关联的数据参数化。

  2、利用WinDiff工具,找出两份脚本之间不同之处,也就是需要关联的数据

  3、通过web_reg_save_param函数手动建立关联,将脚本中用到关联的数据参数化。

  A16:Web_reg_save_param函数主要根据需要做关联的动态数据前面和后面的固定字符串来识别、提取动态数据,所以在做关联时,需要找出动态数据的左、右边界字符串。

  A22:在负载测试模式下,可以通过同时运行数个虚拟用户,通过增加虚拟用户数,确定服务器在多大的负载量下,仍然可以正常运行,我一般进行核心功能操作,验证核心功能运行是否正常。

  A23:虚拟用户数随着负载时间逐渐增加,可以帮助确定系统响应时间减慢的准确时间点。

  可以在“加压”选项卡中进行设置:如下图所示,将设置更改为:“每 30 秒启动 2 个 Vuser”

  A24:以线程方式运行的虚拟用户,在默认情况下,Controller为每50个用户仅启动一个mmdrv进程,而每个用户都按线程方式来运行,这些线程用户将共享父进程的内存,这就节省了大量内存空间,从而可以在一个负载生成器上运行更多的用户。

  A26:当系统吞吐量未达到系统处理极限时,系统性能不会衰减,交易平均响应时间一般也不会递增,当系统达到吞吐量极限时,客户端交易会在请求队列中排队等待,等待的时间会记录在响应时间中,故交易平均响应时间一般会递增。

  A27:以windows资源监控为例,可右键点“添加度量”,输入系统IP、选择平台类型,确定即可,详细参加LR自带操作手册^_^。

  对于监控不同类型的操作系统,需要做一些准备工作,可参见监控操作系统资源部分。

  性能瓶颈可以通过监控器来分析发现,这些监控器包括应用服务器监控、web服务器监控、数据库服务器监控器和网络监控器;它们可以帮助分析导致响应时间增加的原因;性能度量一般包括响应时间、吞吐量、每秒点击率、网络延迟等等。

  A30:可以利用web资源监控器发现web服务器相关问题,在场景执行过程中,可以利用监控器分析web服务器吞吐量、每秒点击率、每秒HTTP响应数、每秒页面下载数,以及web服务器硬件资源使用情况等。

  A31:可以通过数据库监控器和数据资源图发现数据库相关的问题,例如在运行Controller之前,可以指定需要度量的资源,之后可以根据监控的数据,分析数据库相关的问题。

  A32:选择录制协议、设置录制选项、选择浏览器、选择存放路径、开始录制。

  A33:覆盖图:合并两个图的内容,使用同一个X轴,合并图左Y轴显示当前图的值,合并图右Y轴显示被合并图的值。

  关联图:当前活动图的Y轴变为合并图的X轴,被合并图的Y轴变成合并图的Y轴。

  A34:负载测试计划多少用户数量、使用什么类型的机器、以及在什么环境下进行。主要基于两个重要的文档,任务分布图和事务信息,任务分布图告诉我们在负载时间段内,某一个事务使用的用户数,高峰使用率及低峰使用率均来自该文档;

  A35:Vuser_init中包含在脚本执行过程中只需执行一次的脚本。一般来说,所有需要初始化的都可以放在vuser_init里面,比如登录。

  A36:vuser_end中一般包含退出的过程,比如退出系统,主要在脚本执行完成或停止时运行,在设置了迭代次数时,vuser_end和vuser_int均只执行一次。

  A37:思考时间:用户在各步骤之间停下来进行思考的时间,由于用户基于其经验水平和目标而与应用程序进行交互操作,因此技术水平更高的用户工作起来可能会比新用户要快。

  通过启用思考时间,可以使 Vuser在负载测试期间更准确地模拟其对应的线.标准日志和扩展日志的区别是什么?

  扩展日志:可以将详细的脚本执行信息输出到日志文件中,可以选择以下三种扩展日志信息:

  A39:lr_debug_message:发送调试信息到输出窗口或业务监控日志文件中

  lr_output_message:发送日志信息到输出窗口或业务监控日志文件中

  lr_error_message:发送错误信息到输出窗口或业务监控日志文件中

  A40:客户端每秒从服务器接收到的数据,或系统服务器每秒能处理通过的交易数。一般随着虚拟用户数的增加,吞吐量也增加,说明网络带宽比较充足,反之,吐过随着虚拟用户数的增加,吞吐量比较平稳,呈直线状态,则说明网络带宽成为瓶颈,限制了数据传输。

  9.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?

  19你在LR中如何编写自定义函数?请给出一些你在以前进行的项目中编写的函数。

  雅虎公司C#笔试题,包括问答题和选择题两部分。试试看,你能回答出多少题,可以通过雅虎的考试吗?

  如果一棵二叉树结点的前序序列是A、B、C,后序序列是C、B、A,则该二叉树结点的对称序序列

  在数据库逻辑设计中,当将E-R图转换为关系模式时,下面的做法哪一个是不正确的?

  4. 由联系类型转换成的关系模式的属性是与该联系类型相关的诸实体类型的属性的全体

  用二分法查找一个长度为10的、排好序的线性表,查找不成功时,最多需要比较多少次?

  根据线程安全的相关知识,分析以下代码,当调用test方法时i10时是否会引起死锁?

  2. C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。

  4. 在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。

  在C#中利用Socket进行网络通信编程的一般步骤是:建立Socket侦听、( )、利用Socket接收和发送数据。

http://wendevick.net/fuwuyuanyu/477.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有