性能测试笔试大接触(上)-

上一篇 / 下一篇  2010-08-04 15:51:03

1.什么是负载测试?什么是性能测试
 负载测试:逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能够承受的最大负载量,(通俗的说,就是通过逐步加压的方式确定系统的处理能力,确定系统能够承受的各项阀值,比如响应时间不超过10秒等阀值)
性能测试:为了描述测试对象与性能相关特征并对他进行评价而实施和执行的一类测试。
 
2.性能测试包含了哪些测试(至少举出3种)
压力测试,负载测试,配置测试,并发测试,容量测试,可靠性测试,失败测试。。
 
3.简述性能测试的步骤
 
4.简述使用Loadrunner的步骤(这个没找到正确答案,以后再优化)
 设计和手写或者录制脚本---调试脚本---设计场景-运行并监控场景--分析结果
5.什么时候可以开始执行性能测试?
 
我们执行性能测试一般在我们做界面( GUI )的测试,系统功能测试后。现代系统架构的庞大和复杂。而单用户测试,主要功能和用户界面的系统组件,应用程序测试的重点是性能和可靠性的整个系统。例如,一个典型的应用试验情况可能描绘1000年的用户同时登录系统。这会引起问题,如什么是响应时间的系统,它崩溃,将它转到不同的应用软件和平台,能举行如此多的数十万用户,等等,这是当我们做一套负荷和性能测试。
6.LoadRunner由哪些部件组成?
The Virtual User Generator, Controller, and the Agent process, LoadRunner Analysis and Monitoring, LoadRunner Books Online.
 1、虚拟用户脚本生成器:捕获最终用户业务流程和创建自动性能测试脚本,即我们在以后说的产生测试脚本;
 2、压力产生器:通过运行虚拟用户产生实际的负载;
   3、用户代理:协调不同负载机上虚拟用户,产生步调一致的虚拟用户;
   4、压力调度:根据用户对场景的设置,设置不同脚本的虚拟用户数量;
   5、监视系统:监控主要的性能计数器;
   6、压力结果分析工具:本身不能代替分析人员,但是可以辅助测试结果的分析。

 
7.你使用LoadRunner的哪个部件来录制脚本?
Virtual User Generator (VuGen)
 
8.LoadRunner的哪个部件可以模拟多用户并发下回放脚本?
 Controller
9.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?
集合点用以同步虚拟用户以便恰好在同一时刻执行任务
设置集合点在Vuser脚本中来模拟用户负载沉重的服务器上。集合点指示Vusers等待执行测试过程中的多个Vusers到达了某一点,使他们可在同时执行的任务。例如,仿效高峰负荷银行服务器,您可以插入一个集合点指示100 Vusers存入现金到自己的帐户,在同一时间。Loadrunner通过集合点来实现真正意义上的并发。
LR_rendezvous(“集合点名称”)
 
10.什么是场景?场景的重要性有哪些?如何设置场景?
场景:主要表现为在control中设计和执行测试用例中的用户场景。(一般是由用户在某个时间段内所有业务使用状况组成)

 

 
11.请解释一下如何录制web脚本?
 
选择WEB(HTTP/HTML)协议,访问需要录制的在相关web站点的操作。
 代理(Proxy)是客户端和服务器之间的中介人,LoadRunner就是通过代理方式截获客户端和服务器之间交互的数据流。
 
  1)虚拟用户脚本生成器通过代理方式接收客户端发送的数据包,记录并将其转发给服务器端;接收到从服务器端返回的数据流,记录并返回给客户端。
 
  这样服务器端和客户端都以为在一个真实运行环境中,虚拟脚本生成器能通过这种方式截获数据流;虚拟用户脚本生成器在截获数据流后对其进行了协议层上的处理,最终用脚本函数将数据流交互过程体现为我们容易看懂的脚本语句。
 
  2)压力生成器则是根据脚本内容,产生实际的负载,扮演产生负载的角色。

我们使用VuGen开发Vuser脚本记录用户执行典型业务流程的客户端应用程序。 VuGen创建脚本记录活动之间的客户端和服务器。例如,在基于网络的应用, VuGen监控客户端的数据库和客户端所有发出的请求,并收到了数据库服务器返回的信息。我们使用VuGen到:监视器之间的沟通和应用服务器;产生所需的功能要求;并插入生成函数调用到Vuser脚本。
12.为什么要创建参数?如何创建参数?
录制程序运行的过程中,VuGen(脚本生成器)自动生成了包含录制过程中实际用到的数值的脚本。如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询、提交等等),那么你必须用参数值取代录制的数值。这个过程称为参数化脚本。

 
13.什么是关联?请解释一下自动关联和手动关联的不同。
 所谓的关联(correlation)就是把脚本中某些写死的(hard-coded)资料,转
变成是来自服务器的、动态的、每次都不一样的资料。
 
自动关联
VuGen 内建自动关联引擎(auto-correlation engine),可以自动找出需要关
联的值,并且自动使用关联函数建立关联。
 
手动关联
手动关联的执行过程大致如下:
1. 使用相近的业务流程与资料,录制二份脚本
2. 使用WinDiff 工具帮助找出需要关联的资料
3. 使用web_reg_save_param 函数手动建立关迯
4. 将脚本中有用到关联的资料,以新数替代
 
14.你如何找出哪里需要关联?请给一些你所在项目的实例。
两种方法:首先,我们可以扫描的关联,看到的清单价值可关联。从这一点我们可以选择一个值的关联。其次,我们可以记录两个脚本并加以比较。我们可以期待的差异档案,看看的价值观,需要予以密切相关。在我的项目,有一个独特的ID为每一个客户,它只是保险号码,这是自动生成的,它是连续和这个值是独一无二的。我有关联这个值,为了避免错误,同时运行的脚本。我没有使用扫描相关的
比如登陆网站后的sessionID
 
15.你在哪里设置自动关联选项?
启用auto-correlation
1. 点选VuGen 的【Tools】>【Recording Options】,开启【Recording
Options】对话视窗,选取【Internet Protocol】>【Correlation】,
勾选【Enable correlation during recording】,以启用自动关
联。
2. 假如录制的应用系统属于内建关联规则的系统,如AribaBuyer、
BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、
Oracle、PeopleSoft、Siebel、SilverJRunner 等,请勾选相对应
的应用系统。
3. 或者也可以针对录制的应用系统加入新的关联规则,此即为使用者
自订的关联规则。
4. 设定当VuGen 检测到符合关联规则的资料时,要如何处理:
􀂃 【Issue a pop-up message and let me decide online】:
跳出一个讯息对话视窗,询问您是否要建立关联。
􀂃 【Perform. correlation in sceipt】:直接自动建立关联
 
16.哪个函数是用来截取虚拟用户脚本中的动态值?(手工管联)
 web_reg_save_param
17.你在VUGen中何时选择关闭日志?何时选择标准和扩展日志?
 
Run-time,log,
当调试脚本时,可以只输出错误日志,当在场景找你管加载脚本时,日志自动变为不可用。
Standard Log Option:选择标准日志时,就会在脚本执行过程中,生成函数的标准日志并且输出信息,供调试用。大型负载测试场景不用启用这个选项。
扩展日志包括警告和其他信息。大型负载测试不要启用该选项。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中
18.你如何调试LoadRunner脚本?
VuGen有两个选项帮助调试Vuser脚本。Run Step by Step 命令和断点(breakpoints)。Option对话框中的调
试设置(Debug setting)项,可以确定在场景执行过程中执行轨迹范围。 调试信息写在output窗口。可以用
lr_set_debug_messag函数在脚本中手工设置信息类型。如果我们只想接收到一小段脚本的调式信息
 
19你在LR中如何编写自定义函数?请给出一些你在以前进行的项目中编写的函数。
 在创建用户自定义函数前我们需要和创建DLL(external libary)。把库放在VuGen bin 目录下。一旦加了库,把自定义函数分配做一个参数。该函数应该具有一下格式:__declspec (dllexport) char* <function name>(char*, char*)。
20.在运行设置下你能更改那些设置?
 
运行时间设置,我们作出如下:a)Pacing -迭代次数。b) Log -打开日志或者是关闭日志。 c) Extended Think Time -,我们有两种选择。  d) General ,我们可以设置vusers作为或作为多线程过程,或者是多进程。
21.你在不同的环境下如何设置迭代?
 Run Time Settings -Pacing -set number of iterations.
22.你如何在负载测试模式下执行功能测试?
 
同时运行几个Vusers 。增加的一定数额Vusers ,我们可以判断多少压力服务器可以维持的。
23.什么是逐步递增?你如何来设置?
 Ramp up这个选项用于逐渐增加服务器的虚拟用户数或负载量。设置一个初始值而且可以在两个迭代之间设置一个值等待。设置Ramp up,请到‘Scenario Scheduling Options’。


24.以线程方式运行的虚拟用户有哪些优点?
 VuGen提供了用多线程的便利。这使得在每个生成器上可以跑更多的虚拟用户。如果是以进程的方式跑虚拟用户,为每个用户加载相同的驱动程序到内存中,因此占用了大量的内存。这就限制了在单个生成器上能跑的虚拟用户数。如果按进程运行,给定的所有虚拟用户数(比如100)只是加载一个驱动程序实例到内存里。每个进程共用父驱动程序的内存,因此在每个生成器上可以跑更多的虚拟用户。
25.当你需要在出错时停止执行脚本,你怎么做?
 lr_abort函数放弃虚拟用户脚本的执行。说明虚拟用户停止Action的执行,直接执行vuser_end 然后结束执行。在出现错误情况下想手工放弃脚本的执行,这个函数是有用的。用这个函数停止脚本时,Vuser被指定为“Stopped”状态。为了这个函数起作用,开始时候就不能选择Run-Time Settings中的Continue on error选项

26.响应时间和吞吐量之间的关系是什么?
 吞吐量图显示的是虚拟用户每秒钟从服务器接收到的字节数。当和响应时间比较时,可以发现随着吞吐量的降低,响应时间也降低,同样的,吞吐量的峰值和最大响应时间差不多在同时出现。
27.说明一下如何在LR中配置系统计数器?
 通过Web资源监视器,利用这些监控器可以分析web服务器的吞吐量、点击率、每秒http响应数以及每秒下载的页面数。
28.你如何识别性能瓶颈?
 
性能瓶颈,可以侦测到使用显示器。这些显示器可能是应用服务器的监测,监控Web服务器,数据库服务器的监控和网络监控。他们帮助找到了动乱地区的情况,原因增加响应时间。该测量通常性能的响应时间,吞吐量,访问/秒,网络延迟图表等
29.如果web服务器、数据库以及网络都正常,问题会出在哪里?
 
这个问题可以在系统本身,还是在应用服务器中的代码。
30.如何发现web服务器的相关问题?
 
利用网络资源的监控,我们可以找到的Web服务器的性能。利用这些监测分析吞吐量我们可以在Web服务器上,点击数每秒
期间发生的情况下,一些HTTP响应每秒下载的人数页每秒。
31.如何发现数据库的相关问题?
 
运行“数据库”的监督和帮助下, “数据资源图”我们可以找到数据库有关的问题。例如您可以指定您想要的资源来衡量的,然后再运行控制器和比你可以看到数据库的有关问题
32.解释所有web录制配置?
 
33.解释一下覆盖图和关联图的区别?
 
覆盖图:它覆盖的内容,这两个图表有着共同的X轴。左Y轴的图表显示,合并后的当前图的价值和权利Y轴显示的价值, Y轴的图表是合并。
关联图:图的Y轴的两个图表互相对抗。积极图表的Y轴成为X -轴的合并图。 Y轴的图表合并成为合并后的图Y轴。
34.你如何设计负载?标准是什么?
 
负荷试验计划,以决定用户数量,什么样的机器,我们要使用和从那里运行。它是基于两个重要文件,工作分布图和交易资料。任务分布图给我们的信息的用户人数为特定的交易和时间上的负荷。在高峰使用和场外的使用是决定从这个图。交易的个人资料给我们提供了一个有关交易的名字和他们的优先级
35.Vuser_init中包括什么内容?
 Vuser_init action contains procedures to login to a server.
36. Vuser_end中包括什么内容?
Vuser_end section contains log off procedures. 
 
37.什么是think time?think_time有什么用?
 思考时间是真实用户在action之间等待的时间。例如:当一个用户从服务器接收到数据时,用户可能需要在响应之前等待几分钟回顾数据,这种推迟被称为思考时间。
38.标准日志和扩展日志的区别是什么?
 Standard Log Option:选择标准日志时,就会在脚本执行过程中,生成函数的标准日志并且输出信息,供调试用。大型负载测试场景不用启用这个选项。
扩展日志包括警告和其他信息。大型负载测试不要启用该选项。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中


39.解释以下函数及他们的不同之处。
Lr_debug_message
Lr_output_message
Lr_error_message
Lrd_stmt
Lrd_fetch
 
Lr_debug_message
lr_debug_message 函数在指定的消息级别
// 处于活动状态时发送一条调试消息。如果指定的
// 消息级别未处于活动状态,则不发出消息。
Lr_output_message
要发送不是特定错误消息的特殊通知,
Lr_error_message
函数将错误消息发送到
// 输出窗口和 Vuser 日志文件
Lrd_stmt lrd_exec 函数执行 lrd_stmt 设置的 SQL 语句。
Lrd_fetch  函数从结果集中提取后续若干行


40.什么是吞吐量?
 (吞吐量)网络上面传输的数据总量(单位时间内系统处理的客户请求数量)
41.场景设置有哪几种方法?
目标场景,还是指定的手工场景


TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-12  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 9550
  • 日志数: 14
  • 建立时间: 2010-07-28
  • 更新时间: 2010-09-07

RSS订阅

Open Toolbar