织梦如何新建网站,旅游网站的建设现状,国内特效网站,个人电脑做网站性能测试需求分析
性能测试需求分析与传统的功能测试需求有所不同#xff0c;功能测试需求分析重点在于从用户层面分析被测对象的功能性、易用性等质量特性#xff0c;性能测试则需要从终端用户应用、系统架构设计、硬件配置等多个纬度分析系统可能存在性能瓶颈的业务。
性…性能测试需求分析
性能测试需求分析与传统的功能测试需求有所不同功能测试需求分析重点在于从用户层面分析被测对象的功能性、易用性等质量特性性能测试则需要从终端用户应用、系统架构设计、硬件配置等多个纬度分析系统可能存在性能瓶颈的业务。
性能测试必要性评估
任何项目在开展性能测试活动前都需要进行必要性评估。通过必要性评估活动确认被测对象是否有必要实施性能测试活动千万不可为了性能而性能。
通常情况下必要性评估可以通过设定不同条件、不同权重进行分析将评估项分为关键评估项和一般评估项两种。关键评估项只要有一项符合则必须开展性能测试而一般评估项可通过加权计算超过60分则需开展性能测试。
软件测试活动中根据测试要求可分为功能测试与非功能测试。非功能测试通常指的即是性能测试。当然具体情况具体分析。
常见性能测试关键评估项如下
1. 被测对象需经过主管部门或监管单位审查、认可需提供性能测试报告。目前很多企业的软件产品在正式上市对外销售、应用时政府机关、主管部门或监管单位可能需要其出具功能测试报告、性能测试报告甚至是第三方测试报告这种情况下必须进行性能测试
2. 涉及财产生命安全的系统。通常情况电商系统、金融业务系统、医疗健康评估涉及用户或行方资金交易生命安全类的需要进行性能测试
3. 首次投产的大型系统具有大量用户使用的核心业务
4. 系统核心数据库、业务逻辑、软硬件升级。与历史系统对比系统核心数据库、业务逻辑调整、软件硬件设备升级同样需要实施性能测试
5. 历史版本存在重大非功能缺陷或风险较大的未评估项
6. 业务量、用户量、节点增长30%以上。系统升级后业务量、用户量、应用节点增长量在30%以上的具体数值可根据实际情况调整。应用节点增长一般指甲方因业务需求增加应用节点银行拓展分行、分中心、分公司、营业网点等
7. 系统架构发生重大变化。不同的系统架构可能存在较大的性能差异因此在系统架构发生变化后必须实施性能测试并且在此过程中无法通过类推的思路推断架构变化后的系统性能
8. 生产环境非功能严重缺陷修复后。生产环境在使用过程中产生重大非功能性缺陷成功修复后需重新开展性能测试活动以验证修复活动是否对生产环境造成不良影响。
以上仅仅列出笔者在日常性能测试活动参考的关键评估项对于不同行业不同测试对象可能存在的不同的关键评估项读者可自行增减。
常见的性能测试一般评估项主要从单次版本考虑如果是平台性的则为关键评估项如果是单次版本单个组件或业务则从以下几个一般评估项评估权重
1. 是否在平台中处于核心位置15分
2. 是否有升级且升级内容中包含了外部系统对接接口、支付接口、Web Service调用接口等与其他系统关联接口20分
3. 是否存在部署方式调整或优化15分
4. 是否增加了性能风险较高的调整20分
5. 是否存在客户要求必须测试的组件或业务流程20分
6. 是否涉及多个功能缺陷的修复且流程发生较大变化10分。
如果上述一般评估项总计分值超过60分则需进行性能测试。
以本ECShop平台为例通过针对上述关键评估项及一般评估项的评估满足关键评估项中的第三条首次投产的大型系统具有大量用户使用的核心业务”因此本ECShop平台的性能测试活动必须开展。
性能测试工具选型
通过测试必要性评估确定了需要对被测对象实施性能测试后则需要考虑采用哪种性能测试方式。根据被测对象的业务特性和架构设计可以采用以下两种方式开展有效的性能测试活动。
如果被测对象为批处理方式实现并且在数据库中设立起始与终止标识字段则可以利用存储过程或发起批处理的方式进行资源监控可以利用监控脚本如python脚本、shell脚本或其他监控工具最终统计时以结束时间减去开始时间则可获得交易时间并可根据每笔交易获得平均交易时间相对来说较为方便。
如果被测对象不是批处理模式且可能存在大量数据交互则可能需要采用专业的性能测试工具来实现。一般而言业内常用的性能测试工具主要要开源的Jmeter和商用的HP公司的LoadRunner。
Jmeter是个开源的性能测试工具目前在市场中的热度很高不依赖于界面功能测试的脚本同样可以作为性能测试脚本运行对测试工程师技术技能要求不高而且提供了参数化、函数、关联等功能便于脚本的优化与扩展。
LoadRunner在商用领域一枝独秀很多年保持排前的市场占有率与Jmeter相比LoadRunner具有强大的脚本开发功能、完善的函数库及结果分析功能。对测试工程师技术要求相对较高但因其在业内流行很多年LoadRunner应用的资料相对于Jmeter较多便于学习与应用。
企业在选择性能测试工具时如有条件可以自己根据实际测试需求自定义开发测试工具也可以选择市场上常用的测试工具通常选择时需考虑以下几个问题
1. 能否自定义开发更符合实际测试需求
2. 商用的测试工具所需的成本企业能否承受
3. 采购的测试工具是否提供了完善的服务、细致的培训
4. 团队人员能否掌握测试活动所需的工具技能。
开源是行业趋势本书案例项目用开源性能工具Jmeter实施性能测试。
性能测试需求分析
与功能测试需求分析一样性能测试同样需要针对被测对象进行需求分析。一般而言用户或产品团队设定性能测试需求时仅会表述字面意义上需求如“系统TPS需达到300以上单笔交易时间不超过3秒”等。需要性能测试工程师结合用户需求及性能测试活动本身需求进行显性与隐性性能测试需求的分解与提取。
随着互联网技术的飞速发展互联网应用架构越来越复杂运营系统涉及的利益相关方越来越多因此在性能测试工作实施过程中需从不同的用户层面分析待测需求。
确定性能测试的必要性后性能测试工程师主要从以下两个用户方确定性能测试需求
业务用户
1. 用户频繁使用且存在大量用户使用的业务流程
2. 交易占比较高日常占比在80%以上甚至更高的业务流程
3. 特殊交易日或峰值交易占比80%以上甚至更高的业务流程
4. 性能较差且有过调整的业务流程
5. 特殊业务场景
6. 核心业务发生重大流程调整的业务流程。
以上从业务用户层面考虑的可能需要进行性能测试的点。实际实施过程中如果可能可向终端用户调研。
项目团队
1. 曾经测过性能后调整了架构设计的业务
2. 逻辑复杂关键的业务
3. 可能消耗大量资源的业务
4. 与外部系统存在接口调用且有大量数据交互的业务
5. 调用第三方业务组件逻辑复杂的业务。
以上从项目开发角度考虑可能需要进行性能测试业务流程性能测试工程师需对被测对象深入了解并且需要研发团队配合。
除上述两种用户还可能包括运营团队调研未来业务发展规划系统需满足未来业务需求的可能性。
性能测试需求评审
确定性能测试需求后如有必要需进行某种程度的测试需求评审活动。性能测试需求评审与功能测试需求评审类似都需关注需求本身的可测性、一致性及正确性。
可测性
软件可测性通常理解为软件本身是否具备实施测试的条件是否便于发现缺陷及定位缺陷。
在一定的时间及成本范围内构建测试环境设计及执行测试用例测试工程师能够相对便捷的发现、定位缺陷从而协助研发人员解决对应的缺陷无论是功能测试还是性能测试都需要被测对象具备上述的可测试特性。
性能测试活动与功能测试活动有个显著的特点是被测对象运行环境要求不同。实施功能测试时只要被测对象能够在合理的运行环境中正常运行即可即使测试环境与生产环境可能存在较大的差异性能测试则不同一定需模拟尽可能真实的运行环境。当测试环境与实际生产环境差异较大时性能测试结果往往不被接受如果在性能测试实施过程中无法搭建相对真实的测试环境即可认为被测对象不具备性能的可测性。
一致性
性能测试需求一致性主要关注用户需求、生产需求、运营需求几个方面。通过对性能测试需求的分析判断本次测试需求是否满足用户需求规格说明书中明确列出的性能需求项。生产需求则是关注被测对象运行的真实性从而在测试结束后能够提供相对准确的数据依据。
运营需求需以历史数据或者现今运营数据为基础规划未来业务发展的可能性从而使得被测对象性能指标具有一定的冗余度。
通过性能测试需求评审活动确定本次性能需求与上述的关注点一致。
正确性
在可测性与一致性得到保证的基础上需针对性能测试指标进行验证从而保证后续实施活动中所关注的各个项目需求、场景及指标的正确性从而尽量减少返工、重新设计的风险。
通过可测性、一致性及正确性的评估最终确定本轮性能测试需求并以此作为后续测试实施活动的输入。
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走【文末领取】 【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图全套资料】 一、Python编程入门到精通
二、接口自动化项目实战 三、Web自动化项目实战
四、App自动化项目实战 五、一线大厂简历
六、测试开发DevOps体系 七、常用自动化测试工具
八、JMeter性能测试 九、总结文末尾部小惊喜
生命不息奋斗不止。每一份努力都不会被辜负只要坚持不懈终究会有回报。珍惜时间追求梦想。不忘初心砥砺前行。你的未来由你掌握
生命短暂时间宝贵我们无法预知未来会发生什么但我们可以掌握当下。珍惜每一天努力奋斗让自己变得更加强大和优秀。坚定信念执着追求成功终将属于你
只有不断地挑战自己才能不断地超越自己。坚持追求梦想勇敢前行你就会发现奋斗的过程是如此美好而值得。相信自己你一定可以做到