《应用程序性能测试的艺术(第2版)》—第2章 2.3节性能测试工具集:概念验证

2.3 性能测试工具集:概念验证
对于候选的性能测试工具,你需要对它们一一试用以验证工具的可行性,只有这样才能确保你最终选择的工具集能够满足你的需求。在验证过程中至少选择录制两个测试用例:一个只读用例(比如一个返回一条或者多条记录的搜索操作)和一个涉及插入和更新你的应用数据库的写用例。这样你就能验证录制下来的测试用例是否能够正确回放。如果你的应用是只读的,你也要检查脚本回放日志来确保回放过程中没有任何错误。

概念验证完成以下目标。

为验证性能测试工具是否适合目标应用提供了一次技术评估的机会
技术兼容性显然是一个关键目标,否则你将会在测试用例的脚本实现阶段举步维艰(或者根本是不可能完成的任务)!你必须在真实的应用环境来试用性能测试工具,只有这样才能在确定是否在项目中应用该工具之前充分暴露和解决问题。

发现脚本的数据需求
典型的概念验证会构建一些简单的测试用例,这些用例是整个性能测试项目的基础。这是在正式开始编写性能测试脚本之前非常好的一次排演机会,在这个过程中你会发现为了正确执行用例所需要的外部数据和运行时数据。概念验证只会创建两三个测试用例,随着正式用例的增多,你会发现更多的数据需求。但是概念验证经常能够帮你快速定位到一些常用的输入数据需求,比如登录的用户名密码和一些保持用户会话有效的状态数据。

帮助评估脚本编写难度
概念验证还可以帮你评估编写一个典型的测试用例脚本需要耗费多少时间以及评估修改脚本所带来的额外时间。

展示性能测试解决方案是否适合目标应用
相比简单的样例沙箱,针对实际应用的工具测试要靠谱很多。

概念验证检查点
下面列举的检查点为有效地开展概念验证提供了一些指引。就时间而言,每个概念验证都有它的独特性,但是在应用环境可用的前提下,一般不会超过几天的时间。

前提
下面这些需求应当在项目中尽早准备以便在需要的时候能够快速搭建POC环境。

和客户(内部其他项目部门)就POC项目的成功或者退出条件达成一致,你们需要对POC本身是否成功有一致判断。这些条件需要在正式开始POC之前文档化,并且确认签字。
拥有满足性能测试工具最低软硬件需求的一台工作站或者客户端平台。这台机器必须已经安装了应用客户端和相应的支撑软件。
拥有在被测应用环境安装任何需要的监控软件的权限。
最好能够在POC期间独占应用的使用权。
能够联系到一个熟悉应用的负责人(比如一个超级用户),他能够回答可能出现的应用使用问题。
能够联系到一个熟悉应用原理的专家(比如应用开发),他能够回答POC过程中出现的相关技术问题,并且能够解释应用架构在中间件层面是如何运作的。
一个能够正确安装性能测试工具到工作站的账号,并且这个账号需要对被测应用客户端有访问权限。
至少两套针对目标应用的登录信息。之所以需要两套是因为你需要验证并发执行测试用例时不会出现问题。
两个样例测试用例,一个是只读类型的操作,另一个是相对复杂的涉及更新应用数据的操作。这样就能验证脚本在读写模式下是否正常工作。
流程
下面这个列表可以帮助你确保POC项目为后续的正式性能测试打下坚实的基础。

针对同样的测试用例录制两份,然后使用你认为最便捷的方式对这两份脚本进行比较。选择有很多,Windiff就是一个不错的选择,也许你的性能测试工具本身就提供了这样的比较功能。定位两次录制脚本中不一致的地方,这些地方将会是需要重点关注和解决的运行时数据关联需求。
在定位了脚本输入数据和运行时数据关联以及其他一些必要的脚本修改之后,确保脚本在单用户和多用户模式下都能够正确回放。确认任何数据库更新在脚本回放之后都已经生效,并且回放日志没有错误信息。在POC或者后续的正式测试过程中,都需要避免由于手工修改脚本带来诸如内存泄漏等非业务问题。
注意

Windiff.exe是一款用于定位两个文件中不同内容的Windows工具程序;这是一款免费工具并且已经伴随Windows发布有好长时间。如果你需要更加强大的对比功能,可以尝试下面的工具:

prestoSoft的ExamDiff Pro
WinMerge
交付物
下面列表中的内容是POC的交付物,它们是后续有效开展正式性能测试项目的基础。

POC的输出应该针对性能测试工具是否能够对应用测试用例进行脚本化和回放给出明确的结论。
你应该在POC过程中定位到一些脚本输入数据和会话数据的需求并从中了解到后续性能测试项目过程中可能存在的数据需求。
你应该能够了解为了让脚本正确回放所需要做的一些脚本修改工作并且对编写一个能够正确执行的测试用例脚本所需要的时间也有相应评估。
如果这是一个销售过程的POC,你应该能够打动你的客户,并且和客户就之前达成的POC完成条件形成共识——一次完美的销售!

时间: 2024-08-02 23:07:32

《应用程序性能测试的艺术(第2版)》—第2章 2.3节性能测试工具集:概念验证的相关文章

《全栈性能测试修炼宝典 JMeter实战》—第2章 2.3节性能测试成功与失败要素

2.3 性能测试成功与失败要素 性能测试上手难度比较高,是一门融合测试.开发.运维.需求调研.架构.协调管理等综合技能的学科,掌握一门性能测试工具对于性能测试来说只是万里长征的第一步,没有一定的需求.开发和运维专业能力,往往会吃一些苦头. 性能测试有几大难点: (1)需求分析: (2)场景设计: (3)性能诊断调优. (4)环境搭建和模拟 往往很多性能测试从业者在需求分析方面没有做到位,不能准确地预估用户行为:在场景上不能复现用户操作,无法把需求体现在脚本和场景设计上,无法模拟真实的系统负载:这

《全栈性能测试修炼宝典 JMeter实战》—第2章 2.1节性能测试初体验

第2章 性能测试初体验 全栈性能测试修炼宝典 JMeter实战 从本章你可以学到: 性能测试的价值 性能测试流程 性能测试成功与失败要素 不同角色看性能 性能测试工具选择 性能测试相关术语 性能测试通过标准 性能测试趋势 性能测试是一项综合性的工作,致力于暴露性能问题,评估系统性能趋势.性能测试工作实质上是利用工具去模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题,分析并解决:找出系统性能变化趋势,为后续的扩展提供参考.测试显然不是录制脚本那么简单的事情(而且现在很多系统还无法录

《精通软件性能测试与LoadRunner最佳实战》—第2章2.2节性能测试需求分析

2.2 性能测试需求分析精通软件性能测试与LoadRunner最佳实战性能测试的目的就是把客户的真正需求搞清楚,这是性能测试最关键的过程.有很多客户对性能测试是不了解的,可能您会因为对客户提出的"我们需要贵单位对所有的功能都进行性能测试"."系统用户登录响应时间小于3秒"."系统支持10万用户并发访问"等要求所困扰.不知道您是不是看出了上面几个要求存在的问题, 下面让我们逐一来分析一下这几句话. 1."我们需要贵单位对所有的功能都进行性

《全栈性能测试修炼宝典 JMeter实战》—第1章 1.6节性能测试技能树

1.6 性能测试技能树 下面细化一下性能测试所要掌握的知识,如图1-1所示. 1.6.1 测试工具 通过测试工具能提高测试软件开发速度,腾出时间专注于问题分析.主流工具有LoadRunner与JMeter,当然了,工具也不能解决所有问题,有时候还是需要自己编写程序来实现测试脚本.很多初学者认为这2个工具只能用来做性能测试,其实能做性能测试的工具也可以做功能自动化回归.API和UI测试等都可以实现.不是非得Selinum.WebDriver等才能做自动化测试. 常见难点 (1)用户和业务模型分析搭

《全栈性能测试修炼宝典 JMeter实战》—第2章 2.2节性能测试流程

2.2 性能测试流程 做事情我们讲究方法,注重效益,例如生产企业会有流水线.做性能测试也一样,我们也有规范的流程,完全符合项目管理流程,图2-3所示是性能测试常规流程. (1)业务学习:通过查看文档,手工操作系统来了解系统功能. (2)需求分析:分析系统非功能需求,圈定性能测试的范围,了解系统性能指标. (3)工作评估:工作量分解,评估工作量,计划资源投入(即需要多少人力,多少工作日来完成性能测试工作). (4)设计模型:圈定性能测试范围后,把业务模型映射成测试模型. 什么是测试模型呢?比如一个

《全栈性能测试修炼宝典 JMeter实战》—第2章 2.6节性能测试相关术语

2.6 性能测试相关术语 (1)负载:模拟业务操作对服务器造成压力的过程,比如模拟100个用户进行发帖. (2)性能测试(Performance Testing):模拟用户负载来测试系统在负载情况下,系统的响应时间.吞吐量等指标是否满足性能要求. (3)负载测试(Load Testing):在一定软硬件环境下,通过不断加大负载(不同虚拟用户数)来确定在满足性能指标情况下能够承受的最大用户数.简单说,可以帮我们对系统进行定容定量,找出系统性能的拐点,给予生产环境规划建议.这里的性能指标包括TPS(

《全栈性能测试修炼宝典 JMeter实战》—第2章 2.5节性能测试工具选择

2.5 性能测试工具选择 工欲善其事必先利其器,性能测试时模拟大量负载需要工具帮忙,市面上可供使用的负载工具繁多,如何选择呢? 首先我们要明白负载工具是帮助我们来模拟负载的,对于性能测试来说,工具并不是核心,分析.评估.找出性能问题才是核心,这些是主观因素:工具是客户因素,自然要降低其对结果的影响,所以工具选择时我们有几个方面要考虑. (1)专业.稳定.高效,比如Loadrunner,工业级性能负载工具. (2)简单易上手,在测试脚本上不用花太多时间. (3)有技术支持,文档完善,不用在疑难问题

《全栈性能测试修炼宝典 JMeter实战》—第2章 2.8节性能测试趋势

2.8 性能测试趋势 "云"计算已经来到我们身边,测试也已经向云计算在发展,性能测试也将深度"云"计算化. 提高工作效率是人类一直的追求,性能测试将会在自动化的道路上越走越快,持续集成也将更好的集成性能测试部分.已经有公司在用docker来做持续集成. 另外,最近几年开始流行devops(当然devops也会基于云计算),开发与运维,开发与测试的边界越来起窄,很多运维及测试的事情都在开发的考虑范围内,自动化测试工作,性能测试工作都会有一部分并入devops中,测试的

《全栈性能测试修炼宝典 JMeter实战》—第2章 2.7节性能测试通过标准

2.7 性能测试通过标准 性能测试从需求.设计.准备.执行到分析,最后需要判断性能测试是否通过,性能测试工程师最终需要考虑很多因素,判断的标准相应也会有多个维度. 性能测试通过标准包括服务端性能.前端性能和用户体验性能,常规通过标准如表2-2所示.

《精通软件性能测试与LoadRunner最佳实战》—第2章2.1节性能测试的基本过程

第2章 性能测试过程概述 2.1 性能测试的基本过程精通软件性能测试与LoadRunner最佳实战笔者所在公司招聘性能测试人员时,经常会问一个问题"您能否简单地介绍一下性能测试的过程?"多数应聘者的回答差强人意,原因是很多人不是十分清楚以至于回答问题的思路混乱.其实,大家在应聘性能测试职位时,必须要清楚这个职位是具体做哪些工作的,并且按照工作的流程把每一个环节都表述清楚.下面笔者将结合自己多年的工作经验向读者介绍一下,性能测试的过程到底是如何进行的. 为了方便大家了解性能测试的过程,笔