性能测试题库答案一、低难度类:1、理论类选择类1)通过疲劳强度测试,最容易发现问题的问题是:BA.并发用户数B.内存泄露C.系统安全性D.功能错误2)如下那些工具不属于压力测试工具:DA.LoadRunnerB.Logiscope(嵌入式测试工具)C.WAS(WebSphereApplicationServer(WAS))(中间件服务器)D.RationalRobot(用于功能测试的GUI脚本、用于性能测试的VU以及VB脚本)3)如下哪些测试场景不属于负载压力测试:AA.恢复测试B.疲劳强度测试C.大数据量测试D.并发性能测试4)LINUX下,解压缩文件的命令为:BA.tarzxvf文件名B.unzip文件名C.CAT文件名D.VI文件名5)对abcd文件赋予所有者和组许可的读和执行权限,命令正确的是:BA.chmod033abcdB.chmod550abcdC.chmod770abcdD.chmodu+rxabcd6)在软件性能测试中,下列指标中哪个不是软件性能的指标DA)响应时间B)吞吐量C)资源利用率D)并发进程数7)下列关于软件性能测试的说法中,正确的是BA)性能测试的目的不是为了发现软件缺陷B)压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力C)性能测试通常要对测试结果进行分析才能获得测试结论D)在性能下降曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处8)下列关于软件可靠性测试的说法中,错误的是AA)发现软件缺陷是软件可靠性测试的主要目的B)软件可靠性测试通常用于有可靠性要求的软件C)在一次软件可靠性测试中,执行的测试用例必须完全符合所定义的软件运行剖面D)可靠性测试通常要对测试结果进行分析才能获得测试结论问答类1)什么是性能测试,其应用领域分别是什么?性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试,应用领域有四个:能力验证、能力规划、性能调优、缺陷发现。2)什么是负载测试?负载测试:通过被测试系统不断增加压力,直到性能指标超过预期值或者某种资源达到饱和状态;3)可靠性测试、可用性测试的定义,有什么区别?可靠性测试:通过在有使用代表性的环境中执行软件,以证实软件需求是否正确实现。为进行软件可靠性估计采集准确的数据。估计软件可靠性一般可分为四个步骤,即数据采集、模型选择、模型拟合以及软件可靠性评估。可用性测试:故名思议是测试设计方案或者产品在一定的环境下的可用性水平。4)性能测试包含了哪些测试(至少举出3种)?压力测试、负载测试、并发测试、疲劳强度测试、大数据量测试;5)什么时候可以开始执行性能测试?在产品相对比较稳定,功能测试完成后;6)Web服务器指标指标有哪些?*AvgRps:平均每秒钟响应次数=总请求时间/秒数;*SuccessfulRounds:成功的请求;(成功回合)*FailedRounds:失败的请求;*SuccessfulHits(点击):成功的点击次数;*FailedHits:失败的点击次数;*HitsPer每Second秒:每秒点击次数;*SuccessfulHitsPerSecond:每秒成功的点击次数;*FailedHitsPerSecond:每秒失败的点击次数;*AttemptedConnections:尝试链接数;2、工具类问答类1)LoadRunner由哪些部件组成?virtualusergenerator、contorller、runningcontorller、analysis;2)简述使用Loadrunner的步骤:脚本录制设置—录制脚本—调试脚本—场景设置—结果分析;3)什么是关联?关联:很多构架用sessionid等方法标识不同任务和数据,应用在每次运行时方式发送数据不完全相同,需要利用的机制对录制的脚本进行处理,这种机制叫做关联(服务端发送到客户端)4)什么是thinktime?思考时间是真实用户在action之间等待的时间。例如:当一个用户从服务器接收到数据时,用户可能需要在响应之前等待几分钟回顾数据,这种推迟被称为思考时间5)场景设置有哪几种方法?目标场景和手工场景6)性能测试工具有哪些?LR、Jmeter、OpenSTA(WEB测试工具)、DBMonster(数据库测试工具)、TPTEST、WebApplicationLoadSimulator(负载模拟器)等7)用IP欺骗能对外网进行测试吗?关于IP欺骗一般只用在内网,不管你在内网如何欺骗,经过网络地址转换后到了外网上的IP地址表现就是你的公网的IP,除非你一开始就设置成公网的IP地址,但这个一般不可能。二、中难度类:1、理论类选择类1)以下哪一个选项按顺序包括了OSI模型的各个层次:BA.物理层,数据链路层,网络层,传输层,会话层,表示层和应用层B.物理层,数据链路层,网络层,传输层,系统层,表示层和应用层C.物理层,数据链路层,网络层,转换层,会话层,表示层和应用层D.表示层,数据链路层,网络层,传输层,会话层,物理层和应用层2)在网络应用测试中,网络延迟是一个重要指标。以下关于网络延迟的理解,正确的是:DA.指响应时间B.指报文从客户端发出到客户端接收到服务器响应的间隔时间C.指报文在网络上的传输时间D.指从报文开始进入网络到它开始离开网络之间的时间问答类1)简述性能测试的步骤:计划测试—测试设计—创建脚本—创建场景—分析结果;2)响应时间和吞吐量之间的关系是什么吞吐量图显示的是虚拟用户每秒钟从服务器接收到的字节数。当和响应时间比较时,可以发现随着吞吐量的降低,响应时间也降低,同样的,吞吐量的峰值和最大响应时间差不多在同时出现.3)您认为性能测试工作的目的是什么?目的:是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。寻找瓶颈:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。验证稳定性和可靠性:在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。4)请问您是如何得到性能测试需求?怎样针对需求设计、分析是否达到需求?在查看需求文档,从中提取性能测试需求,与用户交流,了解实际使用情况。结合业务信息设计操作场景总结出需测试的性能关键指标。执行用例后根据提取关键性能指标来分析是否满足性能需求5)性能测试数据如何准备?能测试数据分成两部分:业务数据+基础数据。业务数据是符合业务逻辑规则的数据,常见的如表和表中相关联的数据。一旦缺少某个环节,页面就无法打开,即便打开也会报错;相应的性能测试脚本执行过程中,服务器端也会报错。两方面,一是构造业务数据,需要工程师熟悉业务逻辑;基础数据不一定要符合业务逻辑规则。它们的存在,是为了将表中数据量占用率到某种程度,以验证SQL语句的执行效率、索引创建的合理性和正确性,数据库相关参数设置是否合理等。二是,构造基础数据,不需要工程师熟悉业务逻辑,但需要工程师具备编写高效存储过程或者高效SQL语句的能力。6)cookie和session什么意思,有什么区别Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。服务器也可以通过URL重写的方式来传递SessionID的值,因此不是完全依赖Cookie。如果客户端Cookie禁用,则服务器可以自动通过重写URL的方式来保存Session的值,并且这个过程对程序员透明。可以试一下,即使不写Cookie,在使用request.getCookies();取出的Cookie数组的长度也是1,而这个Cookie的名字就是JSESSIONID,还有一个很长的二进制的字符串,是SessionID的值。Cookie是客户端的存储空间,由浏览器来维持。7)路由器,集线器,交换机的区别?路由器的作用是用于连接不同网段并且找到网络中数据传输最合适的路径。集线器的作用是将一些pc机连起来组成一个局域网。交换机的作用与集线器的相似,区别在于集线器采用的是共享带宽的方式,交换机是独享带宽。2、工具类问答类1)什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?集合点:设置多个用户到达某个用户数量点集合,同时触发一个事务,以达到模拟真实环境下同时多个用户操作,同时模拟负载,实现性能测试的最终目的,LR_rendezvous(“集合点名称”)2)什么是场景?场景的重要性有哪些?如何设置场景场景:模拟真实环境中,用户运行状况。场景的重要性是1.通过场景来模拟实际用户的操作,性能测试结果才具有代表性2.在运行过程中也需要关注场景性能测试值,测试过程是否正常;设置场景的步骤:选择场景中需要的脚本,选择为目标场景,还是指定的手工场景,设置用户数、设置产生负载的设备,设置执行策略;3)请解释一下如何录制web脚本?LR通过转发请求,来捕获数据包,来形成脚本;4)如何调试LoadRunner脚本在RunStepbyStep命令和断点(breakpoints)设置插入断点。在Option对话框中的调试设置(Debugsetting)项,可以确定在场景执行过程中执行轨迹范围。可以用lr_set_debug_messag函数在脚本中手工设置信息类型,调试信息写在output窗口。。5)当你需要在出错时停止执行脚本,你怎么做?lr_abort函数放弃虚拟用户脚本的执行。说明虚拟用户停止Action的执行,直接执行vuser_end然后结束执行。在出现错误情况下想手工放弃脚本的执行,这个函数是有用的。用这个函数停止脚本时,Vuser被指定为“Stopped”状态。为了这个函数起作用,开始时候就不能选择Run-TimeSettings中的Continueonerror选项。6)说明一下如何在LR中配置系统计数器?通过Web资源监视器,利用这些监控器可以分析web服务器的吞吐量、点击率、每秒http响应数以及每秒下载的页面数7)标准日志和扩展日志的区别是什么?StandardLogOption:选择标准日志时,就会在脚本执行过程中,生成函数的标准日志并且输出信息,供调试用,扩展日志包括警告和其他信息。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中三、高难度类:1、理论类问答类1)执行性能测试的基本原则是什么?原则一:测试前,要确认系统级的关键参数已经基本配置正确(例如:数据库、WEB容器、线程池、JDBC连接池、对象池、JVM、操作系统、应用系统等配置);原则二:测试前,要确保测试脚本的业务功能运行正确;原则三:测试前,清空所有应用日志、调高错误日志的输出级别(Error级),必要时在每次测试前重启应用服务和数据库应用服务;原则四:调整系统参数时,一次只调整一个,不要同时调整多个,并记录调整前后的系统变化;原则五:优先测试基线案例2)性能问题分析原则是什么?原则一:把事实与推测分开,总是用实际的证据来证明你的推测;原则二:在没有足够证据之前,不对程序进行优化;原则三:优先验证简单的假设;原则四:日志文件中没有错误不代表真的没有错误;原则五:从系统到应用、从外到内进行层层剥离,缩小范围;原则六:范围缩小后,再分割成多个小单元,对每个小单元进行轮番压力测试,来证明或者否定是那个单元引起性能问题3)调优的原则是什么?原则一:在应用系统的设计、开发过程中,应始终把性能放在考虑的范围内