1.性能测试的基础
- WHY:为什么要进行性能测试
- WHAT:关注的性能测试内容
- WHO:哪些人员关注性能
- WHERE:性能测试的关注领域
- WHEN:何时进行性能测试
1 .1 why(为什么要做性能测试)
- 看应用程序是否能够很快的响应用户的要求?
- 看应用程序是否能处理预期的访问量并有盈余能力?
- 看应用程序是否能处理业务所需要的事务数量?
- 在预期和非预期的用户负载下,看应用程序是否稳定?
- 看是否能确保用户在真正使用软件时获得良好的体验?
产生以上问题的根源是什么
- 在多种平台上的数百个服务器
- 异构系统、多种应用
- 数千个工作站
- 局域网、广域网和其他分类型的分布式网络体系结构
- 交错的故障点
1 .2 WHAT(关注的性能测试内容)
- 并发用户数/吞吐量
- 平均响应时间
- 服务器资源占用情况 (任务管理器)
- 可靠性、可扩展性
- 发现引起系统问题的原因,关注采用何种技术提高系统性能
- 软、硬件配置是否合适(容量规划/硬件选型)
1 .3 WHO:哪些人员关注性能
-
开发人员 -
系统管理人员 -
用户 响应时间则:3/5/8(2/5/10) -
性能测试人员:
1 .4 WHEN:何时进行性能测试
功能测试中后期
2.概念和术语
2.1 1.并发数
- 系统用户数:该系统的注册的用户数。
- 在线用户数:某一时刻登录系统的用户数
- 并发用户数:**是对服务器产生压力的用户。**例如,可能在线的4000个用户中,只有20%的用户对服务器产生了压力,这20%的用户数就是并发用户数;
广义的并发用户数:某一时刻向系统发送请求的用户数量,这些请求可以是不同操作引起的 狭义的并发用户数:某一时刻向系统发送请求的用户数量,这些请求是同一操作引起的(后面都是狭义) 例子:
####2.1 2.响应时间 又叫请求响应时间:TTLB(time to last byte):对请求作出响应所需要的时间,包括:用户反应时间+网络传输(请求)时间+服务器处理(一层或多层)时间【后台服务器+数据库服务器】+网络传输(响应)时间。 系统服务和数据库部署在不同的电脑上。 3. 事务的响应时间(系统平均响应时间) 完成一个事务所需要的时间. 事务 事务是指一组密切相关的操作组合 4.TPS(Transaction Pre Second)(平均,每秒事务通过数)
TPS 是指服务器每秒能够处理的事务数量【一定的】。它是衡量系统处理能力的重要指标。基于事务统计。
当压力加大时**,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变。 5.点击率(平均) 每秒点击数代表用户每秒向Web 服务器提交的HTTP请求数**。。点击率越大,服务器压力越大。 这里的点击并不是鼠标的一次点击,一次点击可能有多次HTTP请求。 6.吞吐量(吞吐率) 服务器单位时间处理的信息量 ,不严格讲,就是tps。 bytes/s tps http/s 一般来说用请求数/秒或是页面数/秒来衡量,从业务的角度,也可以用访问人数/天或是处理的业务数/小时来衡量,从网络的角度来说,也可以用字节数/天来衡量。 7.思考时间 思考时间就是用户进行操作时,每个请求或者操作之间的间隔时间,是为了更加真实地模拟用户的操作场景. 8.资源利用率 不同系统资源的使用情况。CPU,Memory,磁盘,网络。
2.性能测试的分类
2.1基准测试
获取性能的各项指标,作为一个基准。
主要应用于以下场景: (1)通过基准测试建立一个性能基准,当系统的环境、参数发生变化后,在进行一次相同标准下的测试,即可看出变化对性能的影响;
(2)系统进行基准测试可以在较早的阶段发现性能问题;
(3)某系统从来没有进行过任何性能测试,需要对该系统做一次性能评估作为后续开发调优的参考;
2.2狭义性能测试
是通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能能否满足生产系统要求。Performance Testing是一种常见的测试方法,就是在特定的运行条件下验证系统的能力情况。该测试是一种正常的测试,主要 是测试系统正常使用时是否满足要求。
2.3负载测试(Load Testing)
负载测试是在被测系统上不断增加压力,直到各项指标【上面都是指标】达到饱和,例如**“响应时间”超过预定指标或者某种资源使用已经达到饱和状态**。这种测试方法可以找到系统的处理极限,为系统调优提供数据。
并发测试
不断给系统增加用户,查看系统在不同用户数量级别下系统性能指标,寻找系统的拐点
容量测试
2.3压力测试
高于系统的最高负载情况下,运行一段时间,查看系统的各项指标的表现,看系统是否因为高负载出现资源分配不均匀,系统崩溃
2.4配置测试
在不同的软硬件配置下,查看系统各项指标的表现,查看系统性能表现最佳时系统的软硬件配置。
2.5 可靠性测试(Reliability Testing)
可靠性测试是通过给系统加载一定的业务压力(例如资源在70%-90%的使用率)的情况下,让应用系统长时间运行一段时间{一周},测试系统在这种条件下是否能够稳定运行。
2.6失效恢复测试(Failover Testing)
|