《性能测试人员面试经典技术问题.》由会员分享,可在线阅读,更多相关《性能测试人员面试经典技术问题.(21页珍藏版)》请在金锄头文库上搜索。
1、1.请问什么是性能测试、负载测试、压力测试?性能测试:对一个软件系统而言,包括执行效率、资源占用、系统稳定性、安全性兼容性、可扩展性等。负载测试:通过逐步加压的方式来确定系统的处理能力,确定系统能承受的各项阀值。压力测试:逐步增加负载,使系统某些资源达到饱和甚至失效的测试。2.请分别针对性能测试、负载测试和压力测试试举一个简单的例子?性能测试例子:公司开发了一个小型项目管理系统,上线前需要做负载、压力、大数据量、强度测试等。负载测试:逐步加压,从而得到“响应时间不超过10秒”,“服务器平均CPU利用率低于85%”等指标阀值。压力测试:逐步加压,从而使“响应时间超过10秒”,“服务器平均CPU利
2、用率高于90%”等指标来确定系统能承受的最大负载量。3.请例举出常用的性能测试工具,并指出这些工具的优缺点?LoadRunner,录制脚本快捷操作简便,需要一定的学习时间,有采购成本。4.请问您是如何得到性能测试需求?怎样针对需求设计、分析是否达到需求?在查看需求文档,从中提取性能测试需求,与用户交流,了解实际使用情况。结合业务信息设计操作场景总结出需测试的性能关键指标。执行用例后根据提取关键性能指标来分析是否满足性能需求。5.什么时候可以开始执行性能测试?在产品相对比较稳定,功能测试结束后。灵活性比较强。6.什么是集合点?设置集合点有什么意义?LoadRunner中设置集合点的函数是哪个?集
3、合点可以控制各个Vuser以便在同一时刻执行任务。借助集合点,可以再LoadRunner中实现真正意义上的并发。lr_rendezvous()7.性能测试时,是不是必须进行参数化?为什么要创建参数?LoadRunner中如何创建参数?8是。模拟用户真实的业务操作。创建参数列表,用参数替换固定的文本。8.您了解关联吗?如何找出哪里需要关联?请给一些您所在项目的实例。了解。使用LoadRunner自动关联功能。手动关联:录制两份相同操作步骤的脚本,找出不同的部分进行判断。一个项目管理系统,每次登录后服务器都自动分配一个sessionID以便之后每次表单提交后验证。9.您如何调试LoadRunner
4、脚本?设置断点、增加log。10.在LoadRunner中如何编写自定义函数?请给出一个您在以前项目中编写的函数。11.请问您是如何理解LoadRunner中集合点、事务以及检查点等概念?集合点:可以控制各个Vuser以便在同一时刻执行任务,可实现真正意义上的并发。事务:事务是用来度量服务器响应时间的操作集。检查点:在回放脚本期间搜索特定内容,从而验证服务器响应内容的正确性。12.如何应用LoadRunner进行性能测试?使用虚拟用户生成器创建脚本,使用控制器设定场景、运行脚本,使用分析器分析运行后得到的数据。13.LoadRunner中思考时间有什么作用?用户执行两个连续操作期间等待的时间。
5、模拟用户真实的使用情况。14.LoadRunner中如何实现多用户并发操作,需要进行哪些设置?设置集合点来实现,在脚本中加入lr_rendezvous(),然后可以在控制器中设定集结百分比。15.LoadRunner中有基于目标和手动两种场景设计方式,他们分别适用于什么情况?手动场景可按照要求来配置场景,能够更加精确的满足测试需要。目标场景要先制定希望实现的测试目标,然后由控制器惊醒自动测试评估。16.LoadRunner中有几种并发执行策略,它们的含义是什么?三种。1.当所有虚拟用户中的x%到达集合点时释放。2.当所有正在运行的虚拟用户中的x%到达集合点时释放。3.当x个虚拟用户到达集合点时
6、释放。17.有5台配置为处理器:Intel Pentium 4 1.6G,内存容量 512MB,硬盘容量 40GB的机器,如何较好的利用这些机器完成一次并发用户数为1000人的性能测试工作?1台做应用服务器,1台做数据库服务器,1台运行控制器并承担一部分负载生成任务,2台负载生成器。18.平时大家在注册邮箱等关联操作时,经常会遇到需要输入验证码的情况,请问,如果我们公司也开发了一套带验证码的应用软件,需要警醒性能测试,您会如何处理?留一个后门,我们设定一个所谓的“万能验证码”,只要用户输入这个“万能验证码”,系统就验证通过。测试完成后补上后门。LR性能测试结果样例分析 测试结果分析 LoadR
7、unner性能测试结果分析是个复杂的过程,通常可以从结果摘要、并发数、平均事务响应时间、每秒点击数、业务成功率、系统资源、网页细分图、Web服务器资源、数据库服务器资源等几个方面分析,如图1- 1所示。性能测试结果分析的一个重要的原则是以性能测试的需求指标为导向。我们回顾一下本次性能测试的目的,正如所列的指标,本次测试的要求是验证在30分钟内完成2000次用户登录系统,然后进行考勤业务,最后退出,在业务操作过程中页面的响应时间不超过3秒,并且服务器的CPU使用率、内存使用率分别不超过75%、70%,那么按照所示的流程,我们开始分析,看看本次测试是否达到了预期的性能指标,其中又有哪些性能隐患,该
8、如何解决。图1- 1性能测试结果分析流程图 结果摘要 LoadRunner进行场景测试结果收集后,首先显示的该结果的一个摘要信息,如图1- 2所示。概要中列出了场景执行情况、“Statistics Summary(统计信息摘要)”、“Transaction Summary(事务摘要)”以及“HTTP Responses Summary(HTTP响应摘要)”等。以简要的信息列出本次测试结果。图1- 2性能测试结果摘要图场景执行情况该部分给出了本次测试场景的名称、结果存放路径及场景的持续时间,如图5- 3所示。从该图我们知道,本次测试从15:58:40开始,到16:29:42结束,共历时31分2秒
9、。与我们场景执行计划中设计的时间基本吻合。图1- 3场景执行情况描述图Statistics Summary(统计信息摘要)该部分给出了场景执行结束后并发数、总吞吐量、平均每秒吞吐量、总请求数、平均每秒请求数的统计值,如图5- 4所示。从该图我们得知,本次测试运行的最大并发数为7,总吞吐量为842,037,409字节,平均每秒的吞吐量为451,979字节,总的请求数为211,974,平均每秒的请求为113.781,对于吞吐量,单位时间内吞吐量越大,说明服务器的处理能越好,而请求数仅表示客户端向服务器发出的请求数,与吞吐量一般是成正比关系。图1- 4统计信息摘要图Transaction Summa
10、ry(事务摘要)该部分给出了场景执行结束后相关Action的平均响应时间、通过率等情况,如图1- 5所示。从该图我们得到每个Action的平均响应时间与业务成功率。注意:因为在场景的“Run-time Settings”的“Miscellaneous”选项中将每一个Action当成了一个事务执行,故这里的事务其实就是脚本中的Action。图1- 5事务摘要图HTTP Responses Summary(HTTP响应摘要)该部分显示在场景执行过程中,每次HTTP请求发出去的状态,是成功还是失败,都在这里体现,如图5- 6所示。从图中可以看到,在本次测试过程中LoadRunner共模拟发出了211
11、974次请求(与“统计信息摘要”中的“Total Hits”一致),其中“HTTP 200”的是209811次,而“HTTP 404”则有2163,说明在本次过程中,经过发出的请求大部分都能正确响应了,但还是有部分失败了,但未影响测试结果,“HTTP 200”表示请求被正确响应,而“HTTP 404”表示文件或者目录未能找到。有朋友可能会问,这里出现了404的错误,为什么结果还都通过了。出现这样问题的原因是脚本有些页面的请求内容并非关键点,比如可能请求先前的cookie信息,如果没有就重新获取,所以不会影响最终的测试结果。图1- 6 HTTP响应摘要常用的HTTP状态代码如下:400 无法解析
12、此请求。401.1 未经授权:访问由于凭据无效被拒绝。401.2 未经授权: 访问由于服务器配置倾向使用替代身份验证方法而被拒绝。401.3 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。401.4 未经授权:Web 服务器上安装的筛选器授权失败。401.5 未经授权:ISAPI/CGI 应用程序授权失败。401.7 未经授权:由于 Web 服务器上的 URL 授权策略而拒绝访问。403 禁止访问:访问被拒绝。403.1 禁止访问:执行访问被拒绝。403.2 禁止访问:读取访问被拒绝。403.3 禁止访问:写入访问被拒绝。403.4 禁止访问:需要使用 SSL 查看该资源。403.5
13、禁止访问:需要使用 SSL 128 查看该资源。403.6 禁止访问:客户端的 IP 地址被拒绝。403.7 禁止访问:需要 SSL 客户端证书。403.8 禁止访问:客户端的 DNS 名称被拒绝。403.9 禁止访问:太多客户端试图连接到 Web 服务器。403.10 禁止访问:Web 服务器配置为拒绝执行访问。403.11 禁止访问:密码已更改。403.12 禁止访问:服务器证书映射器拒绝了客户端证书访问。403.13 禁止访问:客户端证书已在 Web 服务器上吊销。403.14 禁止访问:在 Web 服务器上已拒绝目录列表。403.15 禁止访问:Web 服务器已超过客户端访问许可证限制
14、。403.16 禁止访问:客户端证书格式错误或未被 Web 服务器信任。403.17 禁止访问:客户端证书已经到期或者尚未生效。403.18 禁止访问:无法在当前应用程序池中执行请求的 URL。403.19 禁止访问:无法在该应用程序池中为客户端执行 CGI。403.20 禁止访问:Passport 登录失败。404 找不到文件或目录。404.1 文件或目录未找到:网站无法在所请求的端口访问。需要注意的是404.1错误只会出现在具有多个IP地址的计算机上。如果在特定IP地址/端口组合上收到客户端请求,而且没有将IP地址配置为在该特定的端口上侦听,则IIS返回 404.1 HTTP错误。例如,如
15、果一台计算机有两个IP地址,而只将其中一个IP地址配置为在端口80上侦听,则另一个IP地址从端口80收到的任何请求都将导致IIS返回404.1错误。只应在此服务级别设置该错误,因为只有当服务器上使用多个IP地址时才会将它返回给客户端。404.2 文件或目录无法找到:锁定策略禁止该请求。404.3 文件或目录无法找到:MIME 映射策略禁止该请求。405 用于访问该页的 HTTP 动作未被许可。406 客户端浏览器不接受所请求页面的 MIME 类型。407 Web 服务器需要初始的代理验证。410 文件已删除。412 客户端设置的前提条件在 Web 服务器上评估时失败。414 请求 URL 太大,因此在 Web 服务器上不接受该 URL。500 服务器内部错误。500.11 服务器错误:Web