什么是性能测试?
性能测试是在上线前对系统进行端到端性能测试的惟一方法。性能测试解决方案是:
1.使用最少的硬件模拟成百上千的用户与系统进行交互
2.测量最终用户的响应时间
3.以一致的方式重复负载
4.在负载下监测系统组件
5.提供健壮的的分析和报告机制
自动化测试方案通常使用4个主要的组件来构建和运行测试。这些包括:
1.虚拟用户发生器可以捕获最终用户业务过程,并转化为自动化脚本
2.控制器将组织、驱动、管理、和监测负载
3.执行期间负载发生器执行虚拟用户
4.分析引擎观测、分析和对比结果
为什么使性能测试自动化?
自动化测试是一种方法,发挥人力,过程,技术的作用,以降低应用,升级或补丁部署的风险。其核心,自动化性能测试是在预部署的系统上施加生产环境的负载,同时测量系统性能和最终用户的体验。构建良好的性能测试可以回答类似下面的问题:
1.应用响应时间对于计划的用户足够快么?
2.应用是否能够处理期望的用户负载或更多?
3.应用是否能处理业务所需的事务数量?
4.应用在期望内或期望外的用户负载下是否稳定?
5.你确定用户会在上线时得到积极的体验么?
通过回答这些问题,自动化性能测试采用业务术语量化改变所带来的影响。这样,就明确了部署的风险。一个有效的自动化性能测试过程可以帮助制定考虑周详的发布决策并防止系统故障和可用性问题。
自动化性能测试过程
一些已经成功实行自动化性能测试的组织,已经将这个过程分解为独立的阶段。虽然具体的实施可能有所不同,但是,宽泛地说,性能测试可以分为四个 阶段—设计,构建,执行和诊断/调整。每个阶段有具体的任务,涉及到不同的角色,这些任务在转到下一阶段前必须完成。在最高级别,四个阶段可以被描述如 下:
1.设计阶段包括定义系统中所要测试的业务过程,在平均或峰值生产时间的综合业务过程,和用户和响应时间的全面目标。
2.构建阶段包括建立和配置测试系统和基础设施,并且使用自动化性能测试解决方案来构建测试脚本和负载场景。
3.执行阶段由运行负载场景和测量系统性能组成。
4.诊断和调整反复迭代的阶段超出了测量系统性能和负载测试,达到另外一个层次,关键是要查明问题来快速帮助解决问题,并且调整系统参数来最优化性能。
让我们详细分析关系到每个阶段成功与否的必要任务。
设计
这是性能测试团队向业务部门搜集性能需求的主要阶段。需求可以被认为分为四个方面—业务,技术,系统和团队需求。
业务需求一般通过与主题专家(SME,subject matter expert)的会议来搜集。这些人可以是业务分析师和最终用户。当下面内容准备好后,一套全面的业务需求就形成了:
1.应用概要:系统用法的演示使得性能团队得到更高层次的理解,应用是如何被使用的。
2.业务过程列表:最终用户在系统上所执行的关键业务过程列表。
3.业务流程:Word文档,详尽记录每个业务过程的精确步骤和屏幕。
4.事务列表:业务过程中关键活动的列表—例如登录或转移资金—需要在负载下测量。
5.业务过程图:业务流程图说明业务流程的分支条件。
技术需求可以通过与系统管理员和数据库管理员(DBA)的会议来搜集。这些人可以隶属于开发或运营部门,或者隶属于两者。一套全面的技术需求仅当以下内容齐备时完成:
1.环境评审:按照测试体系结构由系统或基础设施组进行走查评审。
2.系统范围的会议:召开会议,讨论和确认在测试过程中系统需要排出的部分。
3.生产图:一个生产基础设施图,用于说明测试与生产环境的差异,当从QA向生产迁移时可能对性能造成影响。
最后,重要的是,必须收集系统需求。这些是系统的高层次目标,决定着负载测试过程的通过/失败状态。这些一般在与LOB的项目经理工作中达成一致。系统需求包括对以下问题的回答:
1.系统在正常和最高峰时期必须支持多少用户?
2.每秒钟它必须处理多少个事务?
3.对于可业务关键事务最大和最小可接受的响应时间是多少?
4.用户群体如何联系?
5.生产中系统承受的工作负载是什么?以及混合的事务?
团队需求是进展到构建阶段前需要解决的最后一个问题。这只不过是决定适合的性能团队成员来参与到未来的负载测试。最初,这也许被自动的确定(例如,当只有一个团队)。然而,如果性能测试成为卓越中心(CoE)的一部分,那么资源分配,内部后勤就应该在设计阶段考虑和解决。
预先收集一套完整的业务,技术,系统,和团队需求是使负载测试有效和成功的基础。
文章来源于领测软件测试网 https://www.ltesting.net/