性能测试面试题_第1页
性能测试面试题_第2页
性能测试面试题_第3页
性能测试面试题_第4页
性能测试面试题_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、性能测试1.什么是负载测试?什么是性能测试?性能测试Performance Test:通常收集所有和测试有关的所有性能,通常被不同人在不同场合下进行使用;负载测试Load Test:负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。2.性能测试包含了哪些测试至少举出3种基准测试-比较新的或未知测试对象与参照标准如现有软件或评测标准的性能。争用测试:-核实测试对象对于多个主角对相同资源数据记录、内存等的请求的处理是否可以接受。性能配置-核实在操作条件保持不变的情况下,测试对象在使用不同配置时其性能行为的可接受性。负载测试Load Test-是一种性能测试,指数据在超负荷环境中运

2、行,程序是否能够承担。核实在保持配置不变的情况下,测试对象在不同操作条件如不同用户数、事务数等下性能行为的可接受性。强度测试Stress Testing-核实测试对象性能行为在异常或极端条件如资源减少或用户数过多之下的可接受性。强度测试在系统资源特别低的情况下软件系统运行情况,目的是找到系统在哪里失效以及如何失效的地方。3.简述性能测试的步骤第一,分析产品结构,明确性能测试的需求,包括并发、极限、配置和指标等方面的性能要求,必要时基于LOAD测试的相同测略需同时考虑稳定性测试的需求。第二,分析应用场景和用户数据,细分用户行为和相关的数据流,确定测试点或测试接口,列示系统接口的可能瓶颈,一般是先

3、主干接口再支线接口,并完成初步的测试用例设计。第三,依据性能测试需求和确定的测试点进行测试组网设计,并明确不同组网方案的重要程度或优先级作为取舍评估的依据,必要时在前期产品设计中提出支持性能测试的可测试性设计方案和对测试工具的需求。第四,完成性能测试用例设计、分类选择和依据用户行为分析设计测试规程,并准备好测试用例将用到的测试数据。第五,确定采用的测试工具。第六,进行初验测试,以主干接口的可用性为主,根据测试结果分析性能瓶颈,通过迭代保证根本的指标等测试的环境。第七,迭代进行全面的性能测试,完成方案中的性能测试用例的执行。第八,完成性能测试评估报告4.简述使用Loadrunner的步骤1,创立

4、脚本VuGen-创立脚本,选择协议-录制脚本-编辑脚本-检查修改脚本是否有误2,用中央控制器Controller来调度虚拟用户-创立场景,选择脚本-设置机器虚拟用户数-设置事务-如果模拟多机测试,设置IP3,运行脚本4,分析测试结果Analyze5.什么时候可以开始执行性能测试?在产品相比照拟稳定,功能测试结束后。灵活性比较强。6.LoadRunner由哪些部件组成?Virtual User Generator、Controller、Analyze7.你使用LoadRunner的哪个部件来录制脚本?Virtual User Generator8.LoadRunner的哪个部件可以模拟多用户并发

5、下回放脚本?Controller9.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?插入集合点是为了衡量在加重负载的情况下效劳器的性能情况。在测试方案中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面参加集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户到达1000 人时,LoadRunner 命令1000 人同时去提交数据,从而到达测试方案中的需求。1

6、0.什么是场景?场景的重要性有哪些?如何设置场景?用例场景应该说是写测试用例,甚至是分析测试要素、设计测试策略另外一个重要的依据了。首先,软件研发最终是要再用户那里使用的,用例场景都将在用户的使用过程中被一一实现。 其次,需求的文档会变,设计会变,但用户的用例场景是根本上不会变的除非是政策或者战略上的变更。这样使测试工作的任务更加明确了,也更加容易定义修改的优先级以及在修改建议上和开发人员达成一致。毕竟满足用户的用例场景是首要的。 与微软等技术主导的软件企业相比,我向国内的软件更多的是市场主导,用户需求主导的软件企业和设计思想甚至开发模式。 用例场景会比需求文档和分析报告更容易理解,同时也是对

7、于理解用户的需求,产品设计更有帮助。在测试中能够帮助我们发现不仅仅是功能上的问题。 测试有两个目的:确认功能是否实现正确;确认软件是否实现了正确的功能。 “正确的功能,我想就是符合用户需求的功能吧?不根据用户的用例场景你就不可能把这一个目的做到极致。11.请解释一下如何录制web脚本?利用Virtual User Generator录制测试脚本,录制步骤1、选择适宜的协议2、设置录制选项3、开始录制12.为什么要创立参数?如何创立参数?LoadRunner在录制脚本的时候,只是忠实的记录了所有 从客户端 发送到效劳器的数据,而在进行性能测试的时候,为了更接近真实的模拟现实应用,对于某些信息需要

8、每次提交不同的数据,或者使用多个不同的值进行循环输入。 这时,在LoadRunner中就可以进行参数化设置,以使用多个不同的值提交应用请求。【参数化】:使用指定数据源中的值来替换脚本录制生成的语句中的参数。【参数化好处】 减少脚本的大小 提供使用不同的值执行脚本的能力,更加真实的模拟现实应用。【参数化步骤】 用参数替换Vuser脚本中的常量值 为参数设置属性和数据源13.什么是关联?请解释一下自动关联和手动关联的不同。【关联的定义】简单的说:就是把脚本中某些写死固定的数据,转变成动态的数据,或者说将前面语句的结果数据保存下来,然后在后面的语句提交请求时使用这些数据。【需要关联的前提条件】:客户

9、端需要从效劳器端返回数据中获取局部数据,并将这些局部数据处理后作为自己下一次请求的一局部发出。【自动 关联与手工关联的不同】:自动关联是在脚本录制过程中,VuGen会根据已经制定好的规那么,自动找出需要关联 的值或脚本录制完成后,执行脚本一次,通过Correlation Studio自动找出需要关联的数据,并建立关联;而手动关联是需要录制两份相同业务流程的脚本,输入的数据要相同,利用WinDiff工具,找出两份脚 本之间不同之处,也就是需要关联的数据,再通过web_reg_save_param函数手动建立关联,将脚本中用到关联的数据参数化。14.你如何找出哪里需要关联?请给一些你所在工程的实例

10、。录制两份相同业务流程的脚本,输入的数据要相同利用WinDiff工具,找出两份脚本之间不同之处,也就是需要关联的数据通过web_reg_save_param函数手动建立关联,将脚本中用到关联的数据参数化15.你在哪里设置自动关联选项?录制选项中进行设置16.哪个函数是用来截取虚拟用户脚本中的动态值?手工管联Web_reg_save_param函数主要根据需要做关联的动态数据前面和后面的固定字符串来识别、提取动态数据,所以在做关联时,需要找出动态数据的左、右边界字符串。1函数原型:int web_reg_save_param (const char *ParamName, <List of

11、 Attributes>, LAST);17.你在VUGen中何时选择关闭日志?何时选择标准和扩展日志?在测试场景执行时,关闭日志,因为日志信息过多,也会影响性能测试结果;在调试测试脚本时,可以选择标准或扩展日志,用于输出调试信息。可以在运行时设置中,进行日志设置18.你如何调试LoadRunner脚本?通常采用以下方法调试LoadRunner测试脚本 断点【方法】在脚本的任意一行上按右键菜单或F9增加断点。单步跟踪【方法】通过菜单命令VUser>Run Step by Step或F10,可以控制脚本以语句为单位执行。日志输出【方法】通过日志输出函数lr_message、lr_lo

12、g_message、lr_output_message输出。 对话框输出综上,在实际测试工作中,根本上使用前三种方法,对话框输出根本上没用过。19你在LR中如何编写自定义函数?请给出一些你在以前进行的工程中编写的函数在编写用户自定义函数之前,需要首先为函数创立外部库DLL文件,将这些库文件放在bin目录下,一旦库文件已经被添加并且将用户自定义函数作为参数,函数应该为以下格式:_declspec (dllexport) char* (char*, char*)。20.在运行设置下你能更改那些设置?可以修改Run Logic、pacing、Log、Think Time等,见以下图;可以测试实际需要

13、,修改相关选项。21.你在不同的环境下如何设置迭代?运行时设置22.你如何在负载测试模式下执行功能测试?在负载测试模式下,可以通过同时运行数个虚拟用户,通过增加虚拟用户数,确定效劳器在多大的负载量下,仍然可以正常运行,我一般进行核心功能操作,验证核心功能运行是否正常。23.什么是逐步递增?你如何来设置?可以在“加压选项卡中进行设置:如以下图所示,将设置更改为:“每 30 秒启动 2 个 Vuser24.以线程方式运行的虚拟用户有哪些优点?以线程方式运行的虚拟用户,在默认情况下,Controller为每50个用户仅启动一个mmdrv进程,而每个用户都按线程方式来运行,这些线程用户将共享父进程的内

14、存,这就节省了大量内存空间,从而可以在一个负载生成器上运行更多的用户。25.当你需要在出错时停止执行脚本,你怎么做?取消运行设置中的“Continue on error复选框。26.响应时间和吞吐量之间的关系是什么?当系统吞吐量未到达系统处理极限时,系统性能不会衰减,交易平均响应时间一般也不会递增,当系统到达吞吐量极限时,客户端交易会在请求队列中排队等待,等待的时间会记录在响应时间中,故交易平均响应时间一般会递增。27.说明一下如何在LR中配置系统计数器?以windows资源监控为例,可右键点“添加度量,输入系统IP、选择平台类型,确定即可,详细参加LR自带操作手册_。对于监控不同类型的操作系

15、统,需要做一些准备工作,可参见监控操作系统资源局部。28.你如何识别性能瓶颈?性能瓶颈可以通过监控器来分析发现,这些监控器包括应用效劳器监控、web效劳器监控、数据库效劳器监控器和网络监控器;它们可以帮助分析导致响应时间增加的原因;性能度量一般包括响应时间、吞吐量、每秒点击率、网络延迟等等。29.如果web效劳器、数据库以及网络都正常,问题会出在哪里?问题可能出在系统本身或应用效劳器、或为应用编写的代码编写中。30.如何发现web效劳器的相关问题?可以利用web资源监控器发现web效劳器相关问题,在场景执行过程中,可以利用监控器分析web效劳器吞吐量、每秒点击率、每秒HTTP响应数、每秒页面下

16、载数,以及web效劳器硬件资源使用情况等。31.如何发现数据库的相关问题?可以通过数据库监控器和数据资源图发现数据库相关的问题,例如在运行Controller之前,可以指定需要度量的资源,之后可以根据监控的数据,分析数据库相关的问题。32.解释所有web录制配置?选择录制协议、设置录制选项、选择浏览器、选择存放路径、开始录制。33.解释一下覆盖图和关联图的区别?盖图:合并两个图的内容,使用同一个X轴,合并图左Y轴显示当前图的值,合并图右Y轴显示被合并图的值。关联图:当前活动图的Y轴变为合并图的X轴,被合并图的Y轴变成合并图的Y轴。34.你如何设计负载?标准是什么?负载测试方案多少用户数量、使用

17、什么类型的机器、以及在什么环境下进行。主要基于两个重要的文档,任务分布图和事务信息,任务分布图告诉我们在负载时间段内,某一个事务使用的用户数,顶峰使用率及低峰使用率均来自该文档;事务信息告诉我们事务名及优先级,在设计场景时可以参考35.Vuser_init中包括什么内容?Vuser_init中包含在脚本执行过程中只需执行一次的脚本。一般来说,所有需要初始化的都可以放在vuser_init里面,比方登录36. Vuser_end中包括什么内容?vuser_end中一般包含退出的过程,比方退出系统,主要在脚本执行完成或停止时运行,在设置了迭代次数时,vuser_end和vuser_int均只执行一

18、次。37.什么是think time?think_time有什么用?思考时间:用户在各步骤之间停下来进行思考的时间,由于用户基于其经验水平和目标而与应用程序进行交互操作,因此技术水平更高的用户工作起来可能会比新用户要快。通过启用思考时间,可以使 Vuser在负载测试期间更准确地模拟其对应的真实世界用户。38.标准日志和扩展日志的区别是什么?标准日志:脚本执行过程中,将函数集及信息发送到日志文件中扩展日志:可以将详细的脚本执行信息输出到日志文件中,可以选择以下三种扩展日志信息:参数替换:脚本运行过程中,可以将参数及当前参数值输出到日志文件中效劳器返回的数据:将效劳器返回给客户端的数据输出到日志文件中高级跟踪:所有的虚拟用户信息和函数调用输出到日志文件中39.解释以下函数及他们的不同之处。lr_debug_message:发送调试信息到输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论