性能测试过程分为四个阶段:设计,构建,执行和分析、诊断和调节。

四个阶段的任务分别如下:

● 设计阶段定义待测试的业务流程、业务的平均处理量、业务处理量的最高峰值、组合业务流程、系统的整体用户和响应时间目标。

● 构建阶段涉及设置和配置测试系统及基础设施、使用自动化性能测试解决方案构建测试脚本和负载方案。

● 执行阶段包括运行负载方案和测量系统性能。

● 分析、诊断和调节阶段主要测量系统性能并使负载测试进入下一级别,重点查找问题原因以帮助开发工程师迅速解决问题,并实时调节系统参数以提高性能。

各阶段详细任务分别如下。

// 设计阶段。

设计阶段是性能测试团队与业务领域的经理合作以收集性能要求的主要业务响应时间。可以将需要关注的问题分为四个方面:业务需求、技术需求、系统要求和团队要求。业务要求需通过业务分析师或最终用户收集。一个全面的业务要求应该考虑以下问题:

  • 应用程序情况:创建系统使用演示,让性能测试团队从整体上了解应用程序如何被使用。
  • 业务流程列表:创建关键业务流程列表,以便反映最终用户在系统上执行的活动,见表16-1。

  • 业务流程列表:创建 Word 文档,以便详细记录每个业务流程的正确步骤。
  • 交易混合表:汇编业务流程中需要负载测量(如“登录”或“转移资金”等)的关键活动的列表,见表 16-2。

  • 业务流程图:创建业务流程图,以便描绘业务流程的分支情况。

技术要求应该通过系统管理员和数据库管理员(DBA)进行收集并确认。这些人员可能是企业开发组或运营部门的成员,或同时隶属这两个部门。一个全面的技术要求应该考虑以下问题:

  • 环境预排工作:与系统或基础设施团队开展测试架构的预排工作。
  • 系统范围会议:举行会议来讨论系统的哪些部分应该排除在测试流程之外,并达成一致见解。
  • 生产图:创建生产基础设备的图表,以标记出从 QA 迁移到生产过程中可能影响性能的因素。

收集系统的要求至关重要,这些是管控负载测试流程通过/未通过状态的系统高级目标,这些通常与来自业务的经理合作而达成一致,一个全面的系统要求应该考虑以下问题:

  • 系统在正常和高峰期必须支持的用户数量为多少?
  • 系统每秒必须处理的交易量是多少?常用的一种估算方法为 80/20 原理法。

80/20 原理是指每个工作日中 80%的业务在 20%的时间内完成。每年业务量集中在 8 个月,每个月 20 个工作日,每个工作日 8 小时,每天 80%的业务在 1.6 小时完成。

【实例】如去年全年处理业务约 100 万笔,其中 15%的业务处理中每笔业务需对应用服务器提交 7 次请求;70%的业务处理中每笔业务需对应用服务器提交 5 次请求;其余 15%的业务处理中每笔业务需对应用服务器提交 3 次请求。根据以往统计结果,每年的业务增量为 15%,考虑到今后 3 年业务发展的需要,测试需按现有业务量的两倍进行。

①每年总的请求数为:(100×15%×7+100×70%×5+100×15%×3)×2=1000 万次/年

②每天请求数为:1000/160=6.25 万次/天

③每秒请求数为:(62500×80%)/(8×20%×3600)=8.68 次/秒

即服务器处理请求的能力应达到约 9 次/秒。

  • 对于所有的关键业务交易,可接受的最低和最高的响应时间是多少?
  • 用户社区如何连接到系统?
  • 生产中需要承载的系统工作量如何?交易组合如何?

最后是团队要求阶段,需要确定性能测试团队成员。提前收集完整的业务、技术、系统和团队要求,是有效和成功地进行负载测试的基础。

// 构建阶段。

在构建阶段,需要将设计阶段所确定的业务流程和工作量转变为用来推动可重复、真实负载的自动化组件。可以从两个方面来关注:自动化设置和环境设置。

自动化设置包括一系列由性能工程师执行的序列任务:

第一,制作脚本:将存档的业务流程记录到自动化脚本中。

第二,交易:插入计时器来产生业务所需要的逻辑计时。

第三,参数化:用数据池来代替所有的输入数据(如登录用户名和密码),以便每个虚拟用户使用唯一的数据访问应用程序。

第四,方案:通过为不同的用户组分配不同的脚本、连接性和用户行为来创建生产工作量。

第五,监视:确定要监视哪些负载服务器或机器。

环境设置包括组装硬件、软件和数据,这些都是执行成功及真实负载测试所必需的,这可能要与系统人员、DBA、操作人员和业务团队协作。环境设置中最重要的是准备数据,数据来源有两种方式:历史数据和创建数据。

①历史数据指真实存在的数据,只要从数据库抽取出来即可。

②创建数据则是测试过程中通过一些方法生成批量数据,创建数据的方法通常包括 UltraEdit结合 Excel 制作数据、数据库、Shell 编程和 Java 编程等。所有创建的数据都应该满足数据模型的要求,否则数据在调用过程中会产生错误。

构建阶段的最终结果是得到一套自动化的方案,可在配置好的可用环境中随意执行。

// 执行阶段。

刚刚接触性能测试的人员,常常误认为执行只是一个单一事件,而事实上它是一个多步骤的流程,包括多种类型的性能测试。每种类型的测试所提供的信息对于了解发布应用程序的业务风险都是必不可少的。

常见的几类负载测试如下:

  • 基线测试:用于验证系统及其周围的环境是否在合理的技术参数下运行。性能测试仅运行 5~10 名用户来对最终用户交易性能进行基线测试,这些测试应该在性能测试流程的开始和结束时执行,以测量绝对响应时间的提高量。
  • 性能测试:可模拟环境中的负载,从而提供有关系统可处理多少用户的信息,这些测试应该模拟平均和高峰时的生产用量,它们应该使用真实的用户行为(如思考时间)、调制解调器模拟和多个浏览器类型,以获得最高的准备度,应该运行所有的监视程序和诊断程序,以便最大限度地了解系统的性能降低和瓶颈。
  • 基准测试:用于在理想的情况下测量和比较每种机器的类型、环境或应用程序版本的性能,这些测试是系统进行了可扩展测试后运行的,旨在了解不同架构的性能影响。
  • 渗入测试:其目的在于长时间在负载下运行系统,从而检验系统的性能状况。
  • 峰值测试:其目的在于模拟一段时间内系统上的峰值负载,以帮助演示应用程序和底层硬件是否能够在合理的时间内处理高负荷。

// 分析、诊断和调节阶段。

在完成负载测试的设计、构建和执行阶段后,项目将进入分析、诊断和调节阶段,这些阶段是实时和反复进行的,负载测试解决方案应该提供有关最终用户、系统级别和代码性能数据的全面信息,同时查找导致性能降低的可能原因,这些信息能使你确定是否已经达到性能目标。

在监控、分析、诊断和调节过程中可以获取大量的信息:

  • 监控:性能测试过程中的监控可显示基础设备每个层上所发生的一切,同时会更清晰地提供有关测试中数据库服务器、Web 服务器、应用程序服务器、单个应用程序或流程的信息。监控可快速获取有价值的信息,例如应用程序服务器的处理器(CPU)只能支持150 名用户并发,远低于目标值。
  • 分析:完成负载测试后,可将各种指标(如虚拟用户、CPU 或服务器 CPU)关联起来,以获取有关应用程序行为不端的其他信息。
  • 诊断:高效的性能测试解决方案应该向性能工程师提供有关层、组件、SQL 语句是如何影响负载条件业务流程整体性能的单个统一视图,性能工程师应该能够看到由最终用户交易所接触到的所有组件,然后确定各组件使用的处理时间及调用的次数。有了这些信息,就可以针对 Web 服务器、应用程序和数据服务器瓶颈进行调优。
  • 调节:许多企业都在应用程序部署前、中和后三个阶段进行自动化性能测试。有些自动化性能测试解决方案可系统地识别并分离基础实施性能瓶颈,然后通过修改系统配置设定来解决它们,通过反复解决基础设施瓶颈,可以不断改进配置。

性能测试流程和各阶段的工作相关推荐

  1. 性能测试流程-各阶段的工作

    1        性能测试流程 1.1      性能测试计划阶段 测试计划阶段主要工作如下: 1.明确测试对象 2.定义测试目标 3.定义测试通过的标准 4.规划测试进度 5.规划测试参与人员(需求 ...

  2. 浅描工作环境电脑维护以及性能测试流程

    浅描工作环境电脑维护以及性能测试流程 2011年09月03日 人生如同一本书,是一本难以折叠又难以合并的旅程课本.也许有的人根本无法享受其中的乐趣就由衷而散,也许有的人享受到讨厌其中的奥妙,而我们呢? ...

  3. 软件性能测试有哪些功能点,软件性能测试流程规范说明

    软件性能测试流程规范说明 发表于:2011-01-14来源:作者:点击数: 标签:软件 软件性能测试流程规范说明 文档控制 Date Version Description Author 2006-4 ...

  4. 基于阿里PTS性能测试流程

    性能测试流程 流程图: 性能测试流程分为五个阶段,分别是[需求调研阶段]→[测试准备阶段]→[测试执行阶段]→[测试报告阶段]→[测试总结阶段]. 需求调研阶段 1.1.阶段概述 调研阶段的主要工作为 ...

  5. 性能测试流程_流性能

    性能测试流程 当我阅读Angelika Langer的Java性能教程时-Java 8流有多快? 我简直不敢相信,对于一个特定的操作,它们花费的时间比循环要长15倍. 流媒体性能真的会那么糟糕吗? 我 ...

  6. 性能测试流程-性能测试2

    性能测试流程 1. 性能测试需求分析 2. 性能测试计划及方案 3. 性能测试用例 4. 搭建测试环境 5. 测试数据准备 6. 测试脚本编写 7. 执行测试脚本 8. 性能测试监控 9. 性能分析和 ...

  7. JMeter性能测试流程及性能指标关注点

    性能测试流程 平常我们做黑盒测试,都会有一套功能测试流程,做性能测试也不例外,性能也会有规范的流程.如下图所示就是我们常规的性能测试流程图. .1.业务学习:通过查看文档,手工操作系统来了解系统功能. ...

  8. Jmeter性能测试【应用场景、性能测试流程、搭建测试环境】

    目录 一.性能测试的概念 二.性能测试类型 三.性能测试应用场景(领域) 四.性能测试常用的指标 五.性能测试流程 六.搭建测试环境 七.测试用例设计和脚本开发 八.测试数据准备 九.性能测试执行和管 ...

  9. 什么是性能测试?为什么要进行性能测试?什么时候开展性能测试?性能测试流程是什么?性能测试有关术语是什么意思?

    前言 本文文章读起来过于枯燥,但是你用15-20分钟认真读一下,获取会为你理解性能测试有所帮助.其中有些是借鉴网上的一些大神的经验. 性能测试5问: 什么是性能测试? 性能测试是指被测系统在一点负载下 ...

  10. 驰骋工作流程引擎案例-水质检测工作流程设计开发实现过程

    2019独角兽企业重金招聘Python工程师标准>>> Technorati Tags: 开源驰骋工作流引擎, .NET工作流,表单设计器,ccflow, jflow, 案例,水质监 ...

最新文章

  1. amf java_java – 不支持的AMF版本
  2. centos6.3 nginx php,CentOS 6.3 编译安装Nginx+MySQL+PHP
  3. 空间计量模型_Stata中的空间计量回归模型应用
  4. Linux文本过滤与处理命令
  5. P1083 [NOIP 2012]借教室
  6. 利用Oracle虚拟私有数据库进行整合
  7. Python面向对象-概念、类、实例
  8. 话里话外:企业内控的灵魂——企业文化
  9. python索引例子_谈谈python中的索引
  10. 新浪Linux运维工程师面试真题曝光
  11. 第三方登录之QQ登录(一)——QQ互联开放平台新建应用
  12. 微信小程序chooseMedia应用
  13. 新型发明创造大赛计算机类,参加2019自主招生要具备什么条件?高校更青睐包括专利在内的七大类!...
  14. (一)Word中如何将表格断开,并且增加空的一行
  15. Log binomial 回归详解
  16. 用Java实现网易云音乐爬虫(非selenium)
  17. Android Studio查看SQLite数据库方法大全
  18. 计算机最快接口速度,实测:USB3.1究竟比USB3.0接口快多少?
  19. Python Pandas库 Series.dt.tz_localize()和 Series.dt.tz_convert()的简单使用
  20. [Erlang] XML处理方案

热门文章

  1. Halcon教程十三:图像预处理
  2. android 播放多个声音小,手机音量调最大,外播声音却还是很小?可能是你没打开这两个设置...
  3. 电子基础大全:整理了电子设计所需的基础知识
  4. 开关电源/LDO反馈电阻辅助计算工具PowerHelper使用介绍
  5. HTML5网页设计——新闻页面制作
  6. Smobiler-ListView
  7. maven+Tomcat热部署
  8. Java拼接sql,并组装成建表语句
  9. 科学计算机怎么用10次方,计算器里10次方怎么按
  10. 腾达W311MA无线网卡驱动安装 ubuntu16.04