文章目录
大家好,我是晓星航。今天为大家带来的是 相关的讲解!😀
1.常见的性能问题
系统内部以及软件的代码实现
1,资源泄漏,包括内存泄漏。
2,CPU使用率达到100%,系统被锁定等。
3,线程死锁,阻塞等造成系统越来越慢。
4,查询速度慢,或者列表的效率低。
5,受外部系统影响越来越大
2.为什么要进行性能测试
- 获取系统性能的指标,作为性能指标的基准
- 验证系统的性能指标是否达到要求(性能需求)
- 应用程序是否能够满足系统要求的各中性能指标
- 应用程序是否能处理预期的用户负载并有盈余能力
- 应用程序是否能处理业务所需要的事务数量
- 在预期和非预期的用户负载下,应用程序是否稳定
- 是否能确保用户在真正使用软件时获得舒服的体验
- 发现系统的性能瓶颈,内存泄漏等问题。
- 系统正常工作的情况下的最大容量。
- 帮助系统运维部门能更好的规划硬件配置
3.性能测试实施的流程
- **分析性能测试需求 **
- **根据性能测试的目标,设计性能测试的场景 **
- **开发性能测试场景和性能测试脚本 **
- **分析性能测试报告 **
- 根据性能测试报告排查和定能系统的性能瓶颈
如何确定性能测试的需求
从以下两个方面去确定系统性能测试的需求。
1,关键性能指标分析
在进行性能测试需求之前,一定要清楚的知道系统的性能需求,不能过于简单或者过于模糊的描述性能 需求,系统性能的需求必须通过具体数据进行量化,也就是人们常说的性能指标。性能指标一旦量化, 就可以度量,才具备可测试性(可验证性),即能确认系统的性能指标是否符合设计的要求,是否符合 客户的需求。
所以一般的性能测试,需要明确而量化的性能指标。请看下面的例子,
【例1】某电商交易系统,业务要求支持2亿用户(同一时刻 1%的用户在线),每天支持 2000万次交易量(交易 的时间集中在早上 8点到凌晨 2点),交易响应时间要求在 1s中之内。
此外,高峰期系统的处理能力要求是平均值的 3倍;
本地交易响应时间正常低于1s,在高峰时可以高于1s,但是要在 3s内。
正常及交易成功率 100%,在高峰期不能低于 99.9%
这样的业务要求,作为测试人员,如何转化为可以性能测试可以验证的指标呢?
(1)业务支持 2亿用户 数据库要支持这个量级的数据存储。同时按 1%的用户在线,那么意味着同时有 200万用户在线,那系统就要支 持这个数量级用户的各种增删改查操作。
(2)每天支持 2000万次交易 根据题意,每天交易的时间在18小时,折算成每秒需要完成多少次交易,即 20000000/(186060)=309 次/s
…
一组清晰定义的预期性能指标值,是性能测试的基本要素。
如果是一个全新的应用系统,无法确定具体的性能指标怎么办?
(1)可以通过“基准测试”,获取性能指标数据 (2)从业务,用户体验,竞品的的性能指标信息来定义 性能指标的数据
最终用户的体验:如2-5-10原则。
商业需求:一个基本的商业需求是软件产品的性能比“竞争对的产品性能要好,至少不比它差”。
技术需求:从技术角度看系统的性能,例如CPU的使用率不能超过70%等;
标准要求:行业标准定义了某些软件的性能指标,相关的软件必须遵守这些。
2,关键业务分析
系统如果出现问题,看似整个系统无法正常运行,实际往往是因为系统运行时某一个环节出了问题,系 统的性能问题也是一样,如果在某一些业务功能上不出现性能问题,那么系统就不会出现性能问题,而 这些业务功能就是系统性能测试的关键业务所在。
根据帕雷托法则(pareto Principle),系统中各个功能的使用频率是不相同的,有20%的功能是常用的 功能,用户80%以上的时间都在使用这些功能,这些功能就是性能测试当中我们测试人员需要关注的。
比如淘宝这样的购物平台,首页肯定是用户访问量最多的页面,其次,用户进来之后要搜索自己喜欢的商品, 输入关键字之后,相关的产品就会根据人气,价格等排序并且展示出来。
所以,对于淘宝这样的购物平台,“打开首页”,“搜索”功能等操作就会被选择为性能测试的关键业务功能。
总而言之,在性能测试中,我们测试人员首先要了解哪些业务功能是用户最常使用的,以此来确定性能 测试的关键业务功能。
那么仅仅依靠功能的使用频率来确定性能测试的关键业务吗?答案是否定的。我们还要看这个业务功能 后面的计算量,它是否耗时,对系统资源的消耗。这里同学们可以想想为什么?
例如,淘宝购物当中95%的用户搜索商品,5%的用户才会提交订单,完成支付。 提交订单和支付这两个功能计算更耗时,计算量更大些,它关联着较多相关数据的读写,支付会涉及到外部接 口(支付宝),所以这两个功能就是我们性能测试的关键业务
综上,要确定性能测试的关键业务要从业务功能的使用评率和功能的计算量,资源的消耗程度来决定, 确定好关键业务之后,我们在进行性能测试的时候只要对关键的业务进行测试用例的设计,系统的性能 测试脚本就会基于这些关键的业务进行开发。
常见的性能指标
确定了系统的关键业务之后,我们进行性能测试要关注这些业务功能的哪一些指标呢?
- 系统/事务的平均响应时间
- 事务处理效率TPS(Transaction Per Second)
- 吞吐率
- 每秒点击次数(Hits Per Second)
- 服务器资源占用情况,内存和CPU使用率
- 软、硬件配置是否合适(容量规划/硬件选型)
衡量软件性能的四个维度:
- 软件开发人员<