当前位置:
文档之家› 确定软件性能测试性能需求的方法
确定软件性能测试性能需求的方法
3 性能测试需求分析
性能测试和其他类型的测试一样,都需要先进行测试需 求分析,进行相应的测试设计工作,否则测试工作就没有目 标。那么性能测试需求从哪里来?怎么判断出用户提出的性 能测试需求是否过于理想化? 答案也和其他类型测试一样, 性能测试需求从需求文档、 各种招标文档中来,从和项目组人员、客户交流的信息中获 取。对于无法和用户直接沟通的测试人员来说,建议先从需 求、招标等文档中获得一些明确的信息点(包括用户情况和 系统运行环境情况、各个系统的运行场景),通过这些信息 点挖掘出隐含的性能测试需求。挖掘的角度可以按照性能测 试侧重的角度分析,如:系统的用户访问量、系统的处理能 力(响应时间)、系统的数据量、网络要求等方面。下面介 绍一些理论知识及经验方法。 (1)测试需求分析原理 80/20 原理测试强度估算 80/20 原理:每个工作日中 80%的业务在 20%的时间内 完成。 举例:每年业务量集中在 8 个月,每个月 20 个工作日, 每个工作日 8 小时,即每天 80% 的业务在 1.6 个小时内完成。 2015 年全年处理业务约 100 万笔,其中 15 %的业务处理中 每笔业务需对应用服务器提交 7 次请求;其中 70%的业务处 理中每笔业务需对应用服务器提交 5 次请求;其余 15%的业 务处理中每笔业务需对应用服务器提交 3 次请求。根据以往 统计结果显示,每年的业务增量为 15%。考虑到今后 3 年业 务发展的需要,测试需按现有业务量的两倍进行。 每年总的请求数为: (100x15%x7+100x70%x5+100x15%x3)x2=1000 万次 / 年
2015 年, “双十一”当天天猫总成交金额达到 912 亿元, 从 11 月 11 日零点开始,天猫的交易额就在不断上涨,1 分 钟破 10 亿,3 分钟破 30 亿,12 分钟破 100 亿,10 个小时破 500 亿。这些数据背后支付宝系统承受着巨大压力,最高时 交易峰值达到 8.59 万笔 / 秒,是 2014 年“双十一”峰值 3.85 万笔 / 秒的 2.23 倍。反观 2008 年的奥运会订票系统瘫痪, 2009 年的淘宝“双十一”导致多家银行网银系统宕机,再到 12306 购票难。根据 Google 的统计显示,如果网站打开每慢 500 毫秒,用户访问量将下降 20%,根据 Amazon 统计显示, 每慢 100 毫秒,交易额下降 1%。这些事件和统计数据让企 业越来越重视性能测试,会要求上线前对系统进行性能测试, 科学评价系统性能,从而降低系统上线后的性能风险。 如何确定软件测试性能需求的正确性是整个性能测试工 作的基本前提。若不能保证性能测试需求的正确性,即使性 能测试工具选择正确,性能测试执行顺利,也无法保证性能 测试达到预期效果,无法对系统性能进行有效评估,发现不 了实际情况中系统出现的弱点或瓶颈。下面从性能测试目的 出发,然后再对如何确定性能测试性能需求进行分析。
2 性能需求要求
2.1 系统容量要求 系统容量一般包括并发用户数、系统用户数、同时在线 用户数、数据量等。 如测试系统在 1 000 个系统在线用户、2.0GB 业务数据 下,连续运行 24 小时过程中,业务动作是否稳定、有无业 务处理失败; 测试系统在 500 个并发用户的负载下, 接收邮件、 发送邮件、保存邮件等业务动作是否可行及稳定。 2.2 时间特性要求 时间特性分为呈现时间和系统响应时间。呈现时间是指 数据在被客户端收到的响应数据后呈现页面所消耗的时间; 系统响应时间是指应用系统从请求发出开始到客户端收到数 据所消耗的时间。如系统登陆的响应时间小于 3 秒,搜索页 面呈现的时间平均在 1 ~ 3 秒。 2.3 资源利用率要求 操 作 系 统、 数 据 库 以 及 中 间 件 等 资 源 使 用 情 况。 如 WEB 应用服务器的 CPU 使用率不超过 75%,网络带宽是否 满载等。 因此,性能测试需求必须要包含在多少负载下,进行了 什么业务,持续了多长时间,最终需要关注怎样的指标(交
每天请求数为:1000/(20x8)=6.25 万次 / 天 每秒请求数为:(62500x80%)/(8x20%x3600)=8.68 次 / 秒 即服务器处理请求的能力应达到 9 次 / 秒。 (2)需求分析方法 任务分布图方法 使用任务分布图方法应关注两点: 第一,有哪些交易任务; 第二,在一天的某些特定时刻系统都有哪些主要操作。 交易混合图方法 使用交易混合图方法应关注三点: 第一,系统日常业务主要有哪些操作,高峰期主要有哪 些操作; 第二,数据库操作有多少; 第三,如果任务失败,商业风险有多少。 用户概况图方法 使用用户概况图方法应关注两点: 第一,哪些任务是每个用户都要执行的; 第二,针对每个用户,不同任务的比例如何,根据不同 的部门用户进行模拟角色的负载压力。
1 性能测试的目的
“很多人都在使用系统时,响应时间太慢了”“完成一 笔交易要花多少时间”“系统能在无错的情况下承担多大及 多长的时间的负载”“哪些因素降低交易响应时间”等,这 样直观的问题描述反映了测试需求,也由此决定了测试目的。 软件性能测试目的包括以下几个方面。 1.1 评估系统能力 根据已确定的环境下测试得到的负载和响应时间等指标 数据,来验证已部署的系统能否在 A 条件下具备 B 能力,从 而能准确评估系统能力。 1.2 查找系统中的瓶颈或弱点 通过测试发现系统中导致系统性能大幅下降的原因,找
作者简介:姚彬彬(1986-),男,安徽同城人,本科,助理工程师。研究方向:软件性能测试。
— 92 —
2016 年第 5 期
信息与电脑 China Computer&Communication
软件开发与应用
易处理性能指标、服务器操作系统资源、数据库资源、中间 件服务器资源)。了解性能需求包含哪些要求,通过这些要 求如何确定性能测试的需求。下面将介绍一些常用的性能测 试需求获取方法。
软件开发与应用
信息与电脑 China Computer&Communication
2016 年第 5 期
确定软件性能测试性能需求的方法
姚彬彬
(广西区信息安全测评中心,广西 南宁 530031)
摘 要: 性能需求分析是整个性能测试工作开展的基础,如果不清楚性能需求,就无法进行后面的性能测试。测试 需求分析阶段是通过对系统功能模块进行调研与分析, 根据需求测试分析原理和需求分析方法, 最终确认明确的性能需求。 关键词:软件性能测试;性能需求;任务分布图方法;用户概况图方法 中图分类号:TP311.52 文献标识码:A 文章编号:1003-9767(2016)05-092-02
到系统的瓶颈或弱点,但在测试过程中并没有可以参照的性 能指标或者是需要达到的性能目标。 1.3 系统性能调优 重复进行运行测试、结果分析,验证调整系统的活动是 否达到了预期性能调优目标,从而改进性能。 1.4 验证系统稳定性、可靠性 采用系统稳定运行情况下能够支持的最大用户数,或者 日常运行用户数,持续执行一段时间测试,验证系统稳定性、 可靠性。