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

下载本文档

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

文档简介

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

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

3、分析应用场景和用户数据,细分用户行为和相关的数据流,确定测试点或测试接口,列示系统接口 的可能瓶颈,一般是先主干接口再支线接口,并完成初步的测试用例设计。第三,依据性能测试需求和确定的测试点进行测试组网设计,并明确不同组网方案的重要程度或优先级作 为取舍评估的依据,必要时在前期产品设计中提出支持性能测试的可测试性设计方案和对测试工具的需 求。第四,完成性能测试用例设计、分类选择和依据用户行为分析设计测试规程,并准备好测试用例将用到的 测试数据。第五,确定采用的测试工具。 第六,进行初验测试,以主干接口的可用性为主,根据测试结果分析性能瓶颈,通过迭代保证基本的指标 等测试的环境。第七,迭代进行全

4、面的性能测试,完成计划中的性能测试用例的执行。 第八,完成性能测试评估报告4. 简述使用 Loadrunner 的步骤1, 创建脚本 VuGen- 创建脚本 ,选择协议 -录制脚本 -编辑脚本 -检查修改脚本是否有误2, 用中央控制器 Controller 来调度虚拟用户 -创建场景 ,选择脚本 -设置机器虚拟用户数 -设置事务 -如果模拟 多机测试 ,设置 IP3, 运行脚本4, 分析测试结果 Analyze5, 什么时候可以开始执行性能测试?在产品相对比较稳定,功能测试结束后。灵活性比较强。6, LoadRunner 由哪些部件组成?Virtual User Generator、Contr

5、oller 、Analyze7. 你使用 LoadRunner 的哪个部件来录制脚本?Virtual User Generator8. LoadRunner 的哪个部件可以模拟多用户并发下回放脚本?Controller9. 什么是集合点?设置集合点有什么意义 ?Loadrunner 中设置集合点的函数是 哪个?插入集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中,可能会要求系统能够承受 1000 人同时提交数据,在 LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运 行到提交数据的集合点时, LoadRunner 就会检查同时有多少用户运行到集合点,

6、如果不到 1000 人, LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到 1000 人时, LoadRunner 命令 1000 人同时去提交数据,从而达到测试计划中的需求。10. 什么是场景?场景的重要性有哪些 ?如何设置场景 ?用例场景应该说是写测试用例,甚至是分析测试要素、设计测试策略另外一个重要的依据了。 首先,软件研发最终是要再用户那里使用的,用例场景都将在用户的使用过程中被一一实现。其次,需求的文档会变,设计会变,但用户的用例场景是基本上不会变的(除非是政策或者战略上 的变更)。这样使测试工作的任务更加明确了,也更加容易定义修改的优先级以及在修改

7、建议上和开发人 员达成一致。毕竟满足用户的用例场景是首要的。与微软等技术主导的软件企业相比,我向国内的软件更多的是市场主导,用户需求主导的软件企业 和设计思想甚至开发模式。用例场景会比需求文档和分析报告更容易理解,同时也是对于理解用户的需求,产品设计更有帮助。 在测试中能够帮助我们发现不仅仅是功能上的问题。测试有两个目的:确认功能是否实现正确;确认软件是否实现了正确的功能。“正确的功能 ”,我想就是符合用户需求的功能吧?不根据用户的用例场景你就不可能把这一个目的 做到极致。11. 请解释一下如何录制 web 脚本?利用 Virtual User Generator 录制测试脚本,录制步骤1、选

8、择合适的协议2、设置录制选项3、开始录制12. 为什么要创建参数 ?如何创建参数 ?LoadRunner 在录制脚本的时候,只是忠实的记录了所有 从客户端 发送到服务器的数据,而在进行性能 测试的时候,为了更接近真实的模拟现实应用,对于某些信息需要每次提交不同的数据,或者使用多个不 同的值进行循环输入。 这时,在 LoadRunner 中就可以进行参数化设置,以使用多个不同的值提交应用 请求。【参数化】:使用指定数据源中的值来替换脚本录制生成的语句中的参数。【参数化好处】减少脚本的大小提供使用不同的值执行脚本的能力,更加真实的模拟现实应用。【参数化步骤】用参数替换 Vuser 脚本中的常量值为

9、参数设置属性和数据源13. 什么是关联?请解释一下自动关联和手动关联的不同 【关联的定义】简单的说:就是把脚本中某些写死(固定)的数据,转变成动态的数据,或者说将前面语 句的结果数据保存下来,然后在后面的语句提交请求时使用这些数据。【需要关联的前提条件】 : 客户端需要从服务器端返回数据中获取部分数据,并将这些部分数据处理后作为自己下一次请求的一 部分发出。【自动 关联与手工关联的不同】 :自动关联是在脚本录制过程中, VuGen 会根据已经制定好的规 则,自动找出需要关联 的值或脚本录制完成后,执行脚本一次,通过 Correlation Studio 自动找出需要关 联的数据,并建立关联;

10、而手动关联是需要录制两份相同业务流程的脚本, 输入的数据要相同, 利用 WinDiff 工具,找出两份脚 本之间不同之处,也就是需要关联的数据,再通过 web_reg_save_param 函数手动建立 关联,将脚本中用到关联的数据参数化。14. 你如何找出哪里需要关联?请给一些你所在项目的实例。录制两份相同业务流程的脚本,输入的数据要相同利用 WinDiff 工具,找出两份脚本之间不同之处,也就是需要关联的数据通过 web_reg_save_param 函数手动建立关联,将脚本中用到关联的数据参数化15. 你在哪里设置自动关联选项? 录制选项中进行设置16. 哪个函数是用来截取虚拟用户脚本中

11、的动态值?(手工管联) Web_reg_save_param 函数主要根据需要做关联的动态数据前面和后面的固定字符串来识别、提取动态数 据,所以在做关联时, 需要找出动态数据的左、 右边界字符串。1函数原型: int web_reg_save_param(const char *ParamName, <List of Attributes>, LAST);17. 你在VUGer中何时选择关闭日志?何时选择标准和扩展日志?在测试场景执行时,关闭日志,因为日志信息过多,也会影响性能测试结果;在调试测试脚本时,可以选 择标准或扩展日志,用于输出调试信息。可以在运行时设置中,进行日志设置1

12、8. 你如何调试 LoadRurrer 脚本?通常采用以下方法调试 LoadRurrer 测试脚本断点【方法】在脚本的任意一行上按右键菜单或 F9 增加断点。单步跟踪【方法】通过菜单命令 VUser >Run Step by Step或F10,可以控制脚本以语句为单位执行。日志输出方法】通过日志输出函数lr_message、lr_log_message 、lr_output_message 输出对话框输出综上,在实际测试工作中,基本上使用前三种方法,对话框输出基本上没用过。19你在LR中如何编写自定义函数?请给出一些你在以前进行的项目中编写的函 数在编写用户自定义函数之前,需要首先为函数

13、创建外部库( DLL )文件,将这些库文件放在 bin 目 录下,一旦库文件已经被添加并且将用户自定义函数作为参数, 函数应该为以下格式: _declspec (dllexport) char* (char* , char*) 。20. 在运行设置下你能更改那些设置?可以修改 Run Logic 、 pacing 、 Log 、 Think Time 等,见下图;可以测试实际需要,修改相关选项。21. 你在不同的环境下如何设置迭代?运行时设置22. 你如何在负载测试模式下执行功能测试?在负载测试模式下,可以通过同时运行数个虚拟用户,通过增加虚拟用户数,确定服务器在多大的 负载量下,仍然可以正常

14、运行,我一般进行核心功能操作,验证核心功能运行是否正常。23. 什么是逐步递增?你如何来设置?可以在 “加压 ”选项卡中进行设置:如下图所示,将设置更改为: “每 30 秒启动 2 个 Vuser”24. 以线程方式运行的虚拟用户有哪些优点?以线程方式运行的虚拟用户,在默认情况下, Controller 为每 50 个用户仅启动一个 mmdrv 进程, 而每个用户都按线程方式来运行,这些线程用户将共享父进程的内存,这就节省了大量内存空间,从而可 以在一个负载生成器上运行更多的用户。25. 当你需要在出错时停止执行脚本,你怎么做?取消运行设置中的 “Continue on error 复”选框。

15、26. 响应时间和吞吐量之间的关系是什么?当系统吞吐量未达到系统处理极限时,系统性能不会衰减,交易平均响应时间一般也不会递增,当 系统达到吞吐量极限时,客户端交易会在请求队列中排队等待,等待的时间会记录在响应时间中,故交易 平均响应时间一般会递增。27. 说明一下如何在LR中配置系统计数器?以 windows 资源监控为例,可右键点 “添加度量 ”,输入系统 IP 、选择平台类型,确定即可,详细参加 LR 自带操作手册A/。对于监控不同类型的操作系统,需要做一些准备工作,可参见监控操作系统资源部分。28.你如何识别性能瓶颈?性能瓶颈可以通过监控器来分析发现,这些监控器包括应用服务器监控、 we

16、b 服务器监控、数据库 服务器监控器和网络监控器;它们可以帮助分析导致响应时间增加的原因;性能度量一般包括响应时间、 吞吐量、每秒点击率、网络延迟等等。29. 如果web服务器、数据库以及网络都正常,问题会出在哪里?问题可能出在系统本身或应用服务器、或为应用编写的代码编写中。30. 如何发现web服务器的相关问题?可以利用 web 资源监控器发现 web 服务器相关问题,在场景执行过程中,可以利用监控器分析 web 服务器吞吐量、 每秒点击率、 每秒 HTTP 响应数、每秒页面下载数, 以及 web 服务器硬件资源使用情况等。31. 如何发现数据库的相关问题?可以通过数据库监控器和数据资源图发

17、现数据库相关的问题,例如在运行 Controller 之前,可以指 定需要度量的资源,之后可以根据监控的数据,分析数据库相关的问题。32. 解释所有web录制配置?选择录制协议、设置录制选项、选择浏览器、选择存放路径、开始录制。33. 解释一下覆盖图和关联图的区别?盖图:合并两个图的内容,使用同一个 X 轴,合并图左 Y 轴显示当前图的值,合并图右 Y 轴显示被合并 图的值。关联图:当前活动图的 Y 轴变为合并图的 X 轴,被合并图的 Y 轴变成合并图的 Y 轴。34. 你如何设计负载?标准是什么?负载测试计划多少用户数量、使用什么类型的机器、以及在什么环境下进行。主要基于两个重要的文档, 任

18、务分布图和事务信息,任务分布图告诉我们在负载时间段内,某一个事务使用的用户数,高峰使用率及 低峰使用率均来自该文档;事务信息告诉我们事务名及优先级,在设计场景时可以参考35. Vuser_init 中包括什么内容?Vuser_init 中包含在脚本执行过程中只需执行一次的脚本。 一般来说, 所有需要初始化的都可以放在 vuser_init 里面,比如登录36. Vuser_end 中包括什么内容?vuser_end 中一般包含退出的过程,比如退出系统,主要在脚本执行完成或停止时运行,在设置了迭 代次数时, vuser_end 和 vuser_int 均只执行一次。37. 什么是 think time ? think_time 有什么用?思考时间:用户在各步骤之间停下来进行思考的时间,由于用户基于其经验水平和目标而与

温馨提示

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

评论

0/150

提交评论