网站营销策略,国家建筑规范标准,湖北省和住房建设厅官方网站,浙大企业管理培训课程简介#xff1a; 性能测试#xff1a;利用工具模拟大量用户操作#xff0c;验证系统承受的负载情况。
性能测试#xff1a;利用工具模拟大量用户操作#xff0c;验证系统承受的负载情况。
性能测试的目的#xff1a;找到潜在的性能问题或瓶颈#xff0c;分析并解决 性能测试利用工具模拟大量用户操作验证系统承受的负载情况。
性能测试利用工具模拟大量用户操作验证系统承受的负载情况。
性能测试的目的找到潜在的性能问题或瓶颈分析并解决找出性能变化趋势为后续扩展系统提供参考。
测试监控基准测试、配置测试、负载测试、稳定性测试对硬件和中间件进行监控。 一、系统非功能需求采集
1系统架构物理架构硬件及部署策略和逻辑架构系统的功能与服务包括中间件产品与配置、数据库配置等供我们搭建测试环境时进行参考。
2业务流程业务量和业务分布。采集业务分析出哪些业务纳入性能测试范围并量化业务、业务扩展趋势年增长率或者未来的业务量、业务发生时段业务高峰的发生时间和高峰业务量、业务分布各项业务之间的比例。
3用户信息在线用户数、活动用户数、业务分布。有些系统用户量特别大会对系统造成性能瓶颈可以通过分析活动用户数和业务分布来分析负载情况。
4系统是否与第三方系统有关是否需要做挡板Mock程序。
5系统是否有归档机制如果数据库有归档机制可以把一些无用或者过时的信息移到归档库这样就减少当前数据库的数据有利于提高系统性能。
6性能指标吞吐率、响应时间、事务成功率CPU、内存、磁盘、带宽使用阀值。 二、系统非功能需求分析
确定性能测试范围
是否核心业务是否要求严格的质量是否高频次的业务是否占用系统较多资源、或性能影响大的业务使用人数多还是少在线人数多还是少确定此功能的可测性、可验证性功能是否可验证是否牵连到第三方程序是否需要做挡板Mock程序。 明确性能指标
业务性能指标
1. 吞吐量PV、吞吐率TPS等
2. 响应时间RT/ 应用响应时间ART3秒以内
3. 事务成功率99%以上
4. 稳定波动正常范围 响应时间2-5-8原则 当用户在2秒以内得到响应时会感觉系统的响应很快 当用户在2-5秒之间得到响应时会感觉系统的响应速度还可以 当用户在5-8秒以内得到响应时会感觉系统的速度很慢但是还可以接受 而当用户在超过8秒后仍然无法得到响应时会感觉系统糟糕透了或者认为系统已经失去响应。 硬件性能指标
CPU、内存、磁盘、网络带宽等。
系统硬件指标阀值
这些指标比较抽象在监控分析时应该进一步细化。比如CPU的性能指标在Linux中分为用户利用率、系统利用率及平均负载等重要指标。以上指标具体数据来源于非功能需求、组织要求公司运维总结出来的可行性指标或者行业标准建议。
现在我也找了很多测试的朋友做了一个分享技术的交流群共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源没人解答问题坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化性能安全测试开发等等方面有一定建树的技术大牛
分享他们的经验还会分享很多直播讲座和技术沙龙
可以免费学习划重点开源的
qq群号691998057【暗号csdn999】 分析业务量
测试数据的多少对测试结果会有影响。特别是数据成千万上亿条之后性能影响明显所以需要做足一定数量的历史数据。除此之外还得关注业务的增长。如果系统需要满足未来三年的业务增长需求那么在测试时就需要生成三年的存量业务数据。对于关系型数据库来说数据最大时对性能的影响还是比较明显的。 估算TPS与并发数
一般我们会从运维那里得到整个系统在一天内按小时进行统计的PV趋势图。根据访问高峰业务量估算出TPS与并发用户数等性能测试执行依据。一般采用二八原则即80%的业务在20%的时间内完成。二八原则计算的结果是吞吐量即TPS而并发数 TPS *ThinkTimeRunTime。
如果你的系统性能要求更高也可以选择一九原则或更严格的算法二八原则比较通用一般系统性能比较接近这个算法而已大家应该活用。 分析系统协议
一般性能测试脚本可以通过录制或者手动开发而录制方式对协议的依赖性相当强。一般我们先分析系统协议向开发团队咨询或者截包分析再评估用什么工具完成。HTTP可以用JMeter或者LoadRunnerJava接口可以用JMeter的JavaRequest元件与JUnit元件测试。 三、性能测试从哪里获取需求 一般需求文档中会有一部分章节用于描述系统非功能性需求但是多数需求文档对于性能需求的说明都比较笼统抽象。在需求不明确的情况下通常需要性能测试工程师主动向需求提供方BA团队、产品团队等去征询。
对于升级、优化类的老系统可考虑是否存有历史测试方案参考或许可以省事很多。或者我们分析原型系统业务数据即可最直接的办法就是分析原型系统的数据、统计业务量、业务分布等信息。 1、学习业务
通过查看文档、手工操作系统对系统功能进行学习。 2、需求分析
分析系统非功能需求关注业务量、业务分布、用户规模、性能指标等信息确定性能测试范围了解性能指标。 3、工作评估
工作量分解评估工作量计划资源投入即需要多少人力多少工作日来完成性能测试工作。 4、设计模型
圈定测试范围后把业务模型映射成测试模型。
业务模型业务流程系统在某个时间段内运行的业务种类及其业务占比即哪个业务在什么时段在运行业务量是多少
测试模型从业务模型中分析整理出来的需要进行测试的业务。对业务进行拆分对象实现这个完整的功能包含哪些流程、环节。比如“购买商品”具体的流程环节包括“登录-搜索商品-提交订单-支付订单-退出”。接着明确业务占比重要程度目的在于
1明确重点测试对象安排测试优先级
2建模混合场景中虚拟用户资源分配针对不同业务功能施加不同的负载。
3明确下“需求分析-指标分析”中相关业务功能所需基础数据及数据量问题因为那块需求分析时可能只是大致估算下评估指标是否合理需要认真再分析下。
有些因为特殊原因无法测试比如第三方非开源加密程序测试程序无法模拟的业务测试模型中将会去掉这部分业务或者设计替代等价方案比如第三方程序可以使用挡板程序实现。
性能测试场景参照用户使用习惯设计负载场景比如哪些业务的测试脚本一起运行哪些业务有先后顺序运行多少并发用户等。比如WMS系统仓库管理系统WMS中都会有盘点功能此功能就不应该与日常功能混合在一起因为盘点通常都是一个月一次。所以组织测试场景时尽量要与实际业务情况一致。 5、编写计划
在文档中明确列出测试范围、人力投入、持续时间、工作内容、风险评估、风险应对策略等。
系统概述简述系统使命、系统功能用于给非专业人士了解系统是做什么的。测试环境生产环境、测试环境服务器负载机的硬件架构和详细配置信息。需求分析需要测试的业务模型及其信息采集性能指标的采集和确定。测试策略测试目的、测试执行的可行性分析、具体的测试手段及测试监控策略。测试场景如何组合业务场景进行性能测试。测试准备包括测试工具的准备负载工具、监控工具、文档管理工具测试脚本及测试程序准备测试数据准备测试环境准备。时间计划进行需求分析、测试策略后就可以相对合理的估算测试资源及耗时。测试组织架构测试相关干系人明确不同干系人的工作职责。交付物清单性能测试计划、性能测试脚本、性能缺陷报告、性能测试阶段性报告、性能测试报告包括且不仅限于事务成功率、TPS、硬件性能指标等。系统风险风险预测及风险评估包括且不仅限于人员风险、软件风险、进度风险、变更风险、系统风险、数据风险、环境风险并提出应对策略。 6、开发脚本
录制脚本或手动开发添加固定计时器模拟ThinkTime增加同步定时器模拟集合点增加IF条件控制器判断逻辑添加后置处理器获取参数。脚本注意做断言验证事务是否成功。
开发挡板程序开发测试工具等。
事务定义
合理的定义事务能够方便分析耗时特别是混合业务功能场景测试进而方便分析瓶颈。比如购买商品我们可以把下订单定义为一个事务把支付也定义为一个事务。 7、测试环境准备
测试环境包括服务器和负载机。找出这些
请求顺序、请求之间相互调用关系。数据流向数据是怎么走的经过哪些组件、服务器等。预测可能存在性能瓶颈的环节组件、服务器等。明确应用类型IO型还是CPU消耗性、内存消耗型-弄清楚重点监控对象。关注应用是否采用多进程、多线程架构-多线程容易造成线程死锁、数据库死锁数据不一致等。是否使用集群/是否使用负载均衡。
生产环境和测试环境的硬件架构和配置需要进行估算否则结果会有很大的偏差。了解测试环境部署和生产环境部署差异是否按1:1的比例部署。通常建议测试时先不考虑集群采用单机测试测试通过后再考虑使用集群这样有个比较比较能说明问题。 8、测试数据准备
准备被测系统的主数据保证系统能够正常运行的数据比如论坛版块、角色、用户等数据与业务数据运行业务产生的数据比如订单订单出库需要库存数据库存数据也是业务数据。
我们知道数据量变会引起性能的变化。在制作测试数据时一要注意量需要准备足够的存量/历史业务数据二要注意数据的分布。比如我们计算出需要并发100个虚拟用户我们至少需要准备100个以上账号并对账号赋予相应的权限浏览、发帖、删除、查询。
那么准备多少数据够用呢
往往性能测试需求会要求我们对系统进行定容定量所以测试过程会经历如图的曲线变化我们需要跨过③到达④这个阶段所以至少需要准备在④这个点所需要的用户账号。 RTTPS和Thread的趋势图
另外为了更形象的模拟用户使用情况我们会希望使用尽可能多的模拟用户即并发用户数通过ThinkTime来调节这些模拟用户产生的负载因为并发用户数TPS*(ThinkTimeRunTime)。ThinkTime时间越长所需要的并发数越大请求数量越多TPS也会相应增加大小用户越多越好。
数据制作方法
可以使用工具、SQL或者存储过程来完成。建议使用SQL同时还能够熟悉数据库的物理设计索引、字段、范式、反范式等和ER关系 9、测试执行
测试执行是性能测试的关键同样的脚本不同执行人员得出的结果可能差异较大。这些差异主要体现在场景设计与测试执行上。
场景设计
前面已经确定了测试模型。场景设计是根据测试模型与目标组织虚拟用户、组合业务种类到一个测试单元。组织测试场景时尽量要与实际业务情况一致。
基准测试
采用单业务场景、单用户的方式执行脚本。用于验证测试环境、测试脚本以及为后续的测试执行提供性能基准。比如一个登录系统如果系统登录时间为8秒那么这个系统也就没必要再进行性能测试因为它连一般性能都达不到要求。
配置测试
配置测试场景一般为混合场景多个业务同时执行用于帮助分析系统软、硬件配置是否满足性能需求指标优化配置使各项资源达到最优分配原则。测试过程是一个实验过程先是找出不合理配置然后进行修改最后进行验证周而复始到配置满足需求。
负载测试
负载测试的目的是分析性能变化趋势找出性能拐点分析性能问题与风险对系统进行定容定量为系统优化、性能调整提供数据支撑。负载测试分为单场景与混合场景单场景有利于分析性能问题因为排除了其他业务干扰混合场景更贴近用户实际使用习惯是一个综合的性能评估。建议先做单场景测试再做混合场景测试。
负载测试的性能变化曲线图见前面的 “RTTPS和Thread的趋势图”①可以理解为单业务、单用户时的系统性能②通常是我们估算的满足性能需求的点③是性能拐点之后性能变差在这个点系统吞吐量达到最大④这个点已经过载吞吐量开始减小。负载测试一般需要找到②③④这三个点通常会因为一些配置、程序问题而受到干扰所以执行测试也是一个耗时的工作。
稳定性测试
稳定性测试在正常性能阀值下尽量加大负载长时间运行确定系统的软、硬件环境是否运行稳定。什么是阀值呢比如响应时间要求3s以内3秒就是阀值比如CPU利用率70%以下70%就是阀值。假设满足性能要求的负载是B那么稳定性测试时负载一般是1.5B~2B。执行时采用混合场景按惯例执行时间不低于8小时。时间上越长越好有些隐藏较深的诸如内存溢出的问题是需要长时间运行才能反映出来的。
测试监控
测试监控
测试执行
一般第三方性能测试会有一个测试准入条件Checklist。如果是项目组内的就没有这么严格了但基本内容不变。
1检查网络环境
确保环境独立不会对生产系统、外部系统等的使用造成影响。
确保环境可靠不会因为生产系统、外部系统而影响测试结果。
为了方便分析问题排除网络IO的影响测试在局域网中进行。
2检查测试数据
确保基础数据完整能够支持性能测试脚本对业务功能的覆盖。
确保基础数据量能够支持性能测试脚本的参数化要求。
确保存量数据量能够尽量真实反映系统数据环境。
确保存量数据分布能够对结果施加有意义的影响。
3检查监控设备
监控工具是否已经准备完毕可用。
4脚本检查
确认脚本能够模拟业务场景。
确认脚本无性能风险不影响测试结果。
注具体的测试执行详细见 场景设计与测试执行 10、缺陷管理 对性能测试过程中发现的缺陷进行管理。 11、性能分析和性能调优 性能测试工程师与开发人员一起来解决性能问题。 12、测试报告 如何由测试环境推算生产环境配置
对于报告人来说报告的是工作是对整个测试过程的报告。对于决策层报告相关干系人来说关心的是结果决策层迫切的想知道Yes or No系统能不能上线如果不能上线有什么问题怎么能够尽快解决这两方面的需求决定了测试报告需要包含以下内容。
性能测试背景测试原因性能测试开展的必要性。性能测试目标对系统进行定容定量、响应时间、配置、稳定性等测试风险评估。性能测试范围参考测试计划中的测试范围。名词术语涉及专业名词的解释参考测试计划。测试环境报告结果基于的测试环境不同的环境结果可能大相径庭。测试数据报告测试数据量参考测试计划。测试进度报告测试过程什么时候做什么工作比如哪一天执行了哪些测试脚本。测试结果基准测试、配置测试、负载测试、稳定性测试等全面多方位的报告测试结果TPS、ART、事务成功率、硬件资源使用率CPU、内存、网络、IO等。测试结论分析给出测试结论系统能否满足性能要求存在什么问题有哪些缺陷解决了哪些问题还有哪些问题没有解决列出仍没有解决的系统缺陷。系统风险报告系统可能存在的风险帮助决策层应对风险。
测试报告要非专业人士也能看懂做好指标对比、用图表表达性能变化趋势。 13、评审
下面是配套资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你 最后 可以在公众号自动化测试老司机 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容请 “点赞” “评论” “收藏” 一键三连哦