性能测试工程师面试真题及答案——软件测试工程师面试秘籍(37)

发表于:2022-1-26 09:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:G. li    来源:51Testing软件测试网原创

  3.9.4  性能测试工程师面试真题及答案
  试题1.什么是性能测试?什么是负载测试?什么是压力测试
  答案:性能测试是指通过自动化的测试工具模拟多种正常、峰值及异常负载条件来对系统的各项性能指标进行测试。
  负载测试是指确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
  压力测试是指通过确定一个系统的瓶颈或者不能接收的性能点来获得系统能提供的最大服务级别。

  试题2.性能测试包含哪些测试(至少举出3种)?
  答案:压力测试、负载测试、并发测试、可靠测试、失效恢复测试等。

  试题3.简述性能测试的步骤。
  答案:确定测试计划→设计测试→创建脚本→创建场景→分析结果。

  试题4.简述使用LoadRunner的步骤。
  答案:完成脚本录制设置→录制脚本→调试脚本→设置场景→分析结果。

  试题5.什么时候可以开始执行性能测试?
  答案:在产品相对比较稳定、功能测试完成后。性能测试的时间可以灵活选择。

  试题6.LoadRunner由哪些部件组成?
  答案:LoadRunner由Virtual User Generator、Controller、Running Controller和Analysis组成。

  试题7.你使用LoadRunner的哪个部件来录制脚本?
  答案:Virtual User Generator。

  试题8.LoadRunner的哪个部件可以模拟在多用户并发下回放脚本?
  答案:Controller。

  试题9.什么是集合点?设置集合点有什么意义?LoadRunner中设置集合点的函数是哪个?
  答案:集合点就是到达某个用户数量的点集合。设置集合点可同时触发一个事务,以模拟真实环境下多个用户同时操作,同时模拟负载,实现性能测试的最终目的。LoadRunner中设置集合点的函数是LR_rendezvous("集合点名称")?

  试题10.什么是场景?场景的重要性有哪些?如何设置场景?
  答案:场景是指模拟真实环境中用户运行状况的环境。
  场景的重要性如下。
  (1)通过场景来模拟实际用户的操作,这样得到的性能测试结果才具有代表性。
  (2)在运行过程中也需要关注性能测试,以便检测测试过程是否正常。
  要设置场景,应尽量站在用户的角度考虑用户操作。

  试题11.请解释如何录制Web脚本。
  答案:LoadRunner通过转发请求来捕获数据包,从而录制脚本。

  试题12.为什么要创建参数?
  答案:在环境变化时为了使脚本具有随环境变化的能力,就需要创建参数(从客户端发送到服务器)。

  试题13.什么是关联?请解释自动关联和手动关联的不同。
  答案:关联是指很多框架用sessionid等方法标识不同任务和数据,应用在每次运行时发送的数据不完全相同,需要利用算法对录制的原有脚本进行处理,这种机制称为关联(从服务器发送到客户端)。
  自动关联在跳转过程中通过sessionid可以自动找到信息,手动关联需要用户再次输入登录密码进行关联。

  试题14.你如何找出哪里需要关联?请给出一些项目实例。
  答案:用户登录、客户端发送请求、服务端验证正确性后,给客户端发送sessionid,以产生某种规则。例如,登录一个淘宝账号,跳转到支付宝后,无须输入支付宝账号即可登录,这就是关联。

  试题15.在VuGen中何时选择关闭日志?选择标准的作用是什么?扩展日志包括什么?
  答案:当调试脚本时,可以只输出错误日志;当加载脚本时,日志自动变为不可用的。选择标准日志时,就会在脚本运行过程中生成函数的标准日志并且输出信息,供调试用。在大型负载测试场景中不用启用这个选项。扩展日志包括警告和其他信息,在大型负载测试中不要启用该选项。扩展日志选项可以指定哪些附加信息需要加入扩展日志。

  试题16.如何调试LoadRunner脚本?
  答案:使用Run Step by Step命令和Breakpoints(断点)。在Option对话框中的Debug setting选项中,可以确定在场景运行过程中的轨迹。调试信息在Output窗口中输出。如果只想接收到一小段脚本的调试信息,可以用lr_set_debug_messag()函数在脚本中手动设置信息类型。

  试题17.在LoadRunner中如何编写自定义函数?请给出一些在以前进行的项目中编写的函数。
  答案:在编写用户自定义函数前需要创建DLL,将其放在VuGen bin目录下。该函数应该为以下格式。
__declspec (dllexport)‘’char* <function name>(char*, char*)。

  试题18.什么是逐步递增?如何进行设置?
  答案:逐步递增用于逐渐增加服务器的虚拟用户数或负载量。可以设置一个初始值,而且可以在两个迭代之间设置一个值等待。要设置逐步递增,就设置Scenario Scheduling Options。

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

  试题20.在出错时,要停止运行脚本,应怎么做?
  答案:lr_abort()函数用于放弃虚拟用户脚本的运行,虚拟用户停止Action的运行,直接运行vuser_end(),然后结束运行。在出现错误时想手动放弃脚本的运行,这个函数是有用的。用这个函数停止脚本时,Vuser被指定为Stopped状态。为了使这个函数起作用,开始时就不能选择Run_Time Settings中的Continue on Error选项。

  试题21.响应时间和吞吐量之间的关系是什么?
  答案:吞吐量显示的是虚拟用户每秒从服务器接收到的字节数。当和响应时间比较时,可以发现随着吞吐量的降低,响应时间也缩短;同样,吞吐量的峰值和最长响应时间差不多同时出现。

  试题22.如何在LoadRunner中配置系统计数器?
  答案:通过Web资源监视器,可以分析Web服务器的吞吐量、单击率、每秒HTTP响应数及每秒下载的页面数。

  试题23.如果Web服务器、数据库及网络都正常,客户反馈的问题可能会出在哪里?
  答案:操作系统、代码算法、其他通信传输层硬件等。

  试题24.如何发现Web服务器的相关问题?
  答案:通过测试网络带宽、内存、存储、CPU等。

  试题25.什么是思考时间?思考时间有什么作用?
  答案:思考时间是真实用户在Action之间等待的时间。例如,当一个用户从服务器接收到数据时,用户可能需要在响应之前等待几分钟回顾数据,这段时间称为思考时间。

  试题26.标准日志和扩展日志的区别是什么?
  答案:选择标准日志时,会在脚本运行过程中生成函数的标准日志并且输出信息,供调试用。在大型负载测试场景中不用启用该选项。
  扩展日志包括警告和其他信息,在大型负载测试中不要启用该选项。用扩展日志选项可以指定哪些附加信息需要加到扩展日志中。

  试题27.什么是吞吐量?
  答案:在单位时间内系统处理客户端的请求数。

查看《软件测试工程师面试秘籍》全部连载章节
版权声明:51Testing软件测试网获得人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号