目录
一.什么是性能测试
1.生活中软件存在的性能问题
2.性能测试的概念
3.功能测试和性能测试的区别
4.什么样的软件表现是性能好的表现,什么样的软件是性能不好的表现
二.一个项目为什么要进行性能测试
三.性能测试常见术语以及衡量指标
1.专业术语:并发
2.并发用户数
3.并发请求数
4.用户数
5.响应时间
6.事务
7.事务响应时间
8.每秒通过的事务数(TPS)
9.点击率(Hit Per Second)
10.吞吐量(Throughput)
11.吞吐率
12.思考时间(Think Time)
13.资源利用率
四.性能测试分类
1.基准性能测试
1》概念
2》为什么对一个系统进行基准性能测试
2.负载性能测试
3.压力测试
4.可靠性测试
五.性能测试实施流程
一.什么是性能测试
测试:测试人员向被测系统发起一系列测试数据,校验开发人员实现的软件是不是符合预期这个过程就叫做测试。
1.生活中软件存在的性能问题
2.性能测试的概念
测试人员借助性能测试工具,模拟系统在不同情况(系统正常运行,用户达到巅峰)下各种性能指标表现。
3.功能测试和性能测试的区别
功能测试:重点关注的是软件基本的功能有没有实现。
性能测试:软件在极端的情况下,是否可以正常运行。
4.什么样的软件表现是性能好的表现,什么样的软件是性能不好的表现
影响一个软件性能的因素有哪些?
硬件设备:服务内核,内存,操作系统
软件:编程语言,算法
用户:用户量,用户请求
......
二.一个项目为什么要进行性能测试
★ 获取系统性能的指标,作为性能指标的基准
★ 验证系统的性能指标是否达到要求(性能需求)
~应用程序是否能够满足系统要求的各中性能指标
~应用程序是否能处理预期的用户负载并有盈余能力
~应用程序是否能处理业务所需要的事务数量
~在预期和非预期的用户负载下,应用程序是否稳定
~是否能确保用户在真正使用软件时获得舒服的体验
★ 发现系统的性能瓶颈,内存泄漏等问题。
★ 系统正常工作的情况下的最大容量。
★ 帮助系统运维部门能更好的规划硬件配置。
三.性能测试常见术语以及衡量指标
1.专业术语:并发
并发:软件在一些情况下,同时有大量用户请求系统,这个就叫做并发。
1》大量的用户
2》同时发起请求(同样的请求同时发起,不同的请求同时发起)
2.并发用户数
当大量用户对系统同时发起请求的时候,此时大量的用户(用户数量)就叫做并发用户数。
3.并发请求数
100万人请求百度搜索这个业务对应的服务器,此时请求数是多少?
请求数:用户向服务器发起的http请求的数量。
并发请求数:大量用户同时访问系统的时候,此时同时发起的http请求数量,就叫做并发请求数。
***并发请求数和并发用户数不一定相等***
用户数:1个(假设只有你自己一个用户)
请求数:4个
请求数和用户数不一样。
4.用户数
系统用户数:从狭义上可以理解为系统用户对应的数据库中存放的用户数量(注册了系统的用户);从广义来说,访问当前系统的用户数。
在线用户数:成功登录这个系统对应的用户。
并发用户数:同时访问这个系统对应的用户数量。
5.响应时间
从用户视角来考虑,响应时间反映了完成某个操作所需要的时间,标准定义是,应用系统从发出请求开 始,到客户端接收完所有的字节数据所消耗的时间。
所以,响应时间分为前端展示时间和系统响应时间两部分。
1》用户响应时间:N1 + A1 + N2 + A2 + N3 + A3 + N4
定义:用户发起请求开始,到用户收到响应,最终在前端将数据渲染出来展示给用户这段时间就叫做用户响应时间。
2》请求响应时间:A1 + N2 + A2 + N3 + A3
定义:服务器收到请求到服务器将请求处理完,发出响应对应的时间就叫做请求响应时间。
小结:影响响应时间的因素有:
硬件:用户设备、服务器设备(内核、CPU、内存、磁盘)、网络环境
软件:编写软件对应的编程语言,算法实现
用户:用户数量、请求量
6.事务
这里的一个事务是一个业务度量单位,是指一组密切相关的子操作的组合。比如,一笔电子支付操作, 后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这就是是一个关于支付事 务里面包含的操作。而对于用户,往往也只关注整个支付花费了多长时间。
7.事务响应时间
每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标。
事务响应时间:服务器处理一个事务花费的时间。
事务响应时间短说明软件性能好。
8.每秒通过的事务数(TPS)
TPS 是指每秒系统能够处理的事务数。它是衡量系统处理能力的重要指标。
每秒通过的事务数:通过的事务数 / 事务处理时间
9.点击率(Hit Per Second)
每秒钟向系统发起的http请求数量。点击率越大,服务器压力越大。
点击率越高,服务器压力就越大,在这种高压力情况下,没有出现异常,此时说明系统性能较好。
10.吞吐量(Throughput)
一次请求,用户和服务器之间的数据传输数量。
eg:
传输10M数据,A服务器用了1S时间
传输1000M数据,A服务器用了100S时间
跑车:10Km,1h 家用轿车:1000Km,10h
因此:吞吐量通常情况下不能反馈一个系统性能好还是不好,需要和时间结合到一起去反馈出系统性能还还是不好。
11.吞吐率
吞吐率 = 吞吐量 / 时间
12.思考时间(Think Time)
指模拟正式用户在实际操作时的停顿间隔时间,从业务的角度来讲,思考时间指的是用户在进行操作 时,每个请求之间的间隔时间。
13.资源利用率
不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。
四.性能测试分类
1.基准性能测试
1》概念
让系统在正常情况下运行,观察性能指标。
2》为什么对一个系统进行基准性能测试
系统的第一个版本,研发团队团队也不清楚系统的性能能达到怎样的水平,这时进行的性能测试,其目 标是获得系统标准配置下,有关的性能指标数据,作为将来性能改善的基准,这种测试称之为“性能基准测试。
2.负载性能测试
验证系统在一定压力情况下运行,观察性能是否会出现拐点
3.压力测试
让系统在超付情况下或者某项性能指标已经达到饱和的状态下运行,观察性能指标。
会导致系统崩溃。
4.可靠性测试
让系统连续运行一段时间,查看系统性能指标是否异常。
24小时持续运行 ---》7 * 24 h运行 ---》一个季度持续运行....
五.性能测试实施流程
功能测试流程:需求分析 -> 测试计划 -> 测试设计 -> 测试实施 -> 上线
性能测试流程:需求分析 -> 测试计划 -> 选择一款性能测试工具 -> 设计性能测试脚本 -> 执行脚本-> 产出性能测试报告
性能测试中发现的性能问题,不叫bug,叫系统性能瓶颈。
性能测试中发现的性能问题,开发修复的时候,此时不叫修复BUG,叫优化性能瓶颈。