·性能
性能:性能是指事物的性质和能效。
在软件系统中,性能相关的描述和指标很多,但是从本质上来说,对于一个软件系统,性能最终都体现在两点:
·How Fast:是用来反应一个系统的处理效率的。
·How Much:是用来反应一个系统的处理能力的。
PS:·在评价一个系统的性能的好坏时,一定要同时从这两个角度去进行考虑。
·一般来说,系统的性能的好坏不存在绝对值,符合客户需求就是最好的。
性能测试:
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
性能测试的目的:
1)评估系统的能力
2)识别体系中的弱点
3)系统调优
4)验证稳定性和可靠性
性能测试常用的术语:
1. 并发:
狭义(绝对):所有的用户在统一时间做同一件事情
广义(相对):多个用户在一段时间内做不同的事情或者请求
并发数反应可软件系统的并发处理能力,两种错误理解:1.使用系统的全部用户数,2.用户在线数量
例如:秒杀,双十一同时提交订单
2. 在线
多用户在一段时间内对系统执行操作
3. 响应时间
从客户端发出请求到得到响应的整个事件(客户端响应时间+网络+服务器响应时间)
4. 事务响应时间
完成相应事务所用的时间
5. 每秒点击率
指客户端每秒向服务器提交的请求数量,如果客户端发出的请求数量越多,与之对应的平均吞吐量也就越大
6. 吞吐量
指在单位时间内客户端和服务器成功传输数据的数量
例如下载文件(吞吐量越大,下载速度越快反之越小)
7. TPS
每秒钟处理的事务数
8. 资源利用率
对不同系统资源的使用程度,(cpu、内存、硬盘、网络)
例如:几个人访问一个服务器,他的CPU和内存等使用情况,一万个人访问这个网站,他的各方面资源使用情况
性能测试分类
1)负载测试:通过在被测软件系统上不断实施加压,测试系统的表现,从而获取系统的最大处理能力、最佳性能点和最大有效负载用户
PS:总的来说负载测试是对一个系统持续不断的加压,观察软件在什么时候已经超出“预期要求”或系统崩溃
2)压力测试:
定义:
性能压力测试是测试软件系统在一定饱和状态下,例如CPU、内存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误现象。
压力测试的特点:
A:压力测试方法的主要目的是检查系统处于压力性能下时,软件应用的具体表现。
B:压力测试方法一般通过模拟负载测试等方法,使得系统的资源使用达到较高的水平
C:压力测试方法一般用于测试系统的稳定性
PS:压力测试是让系统处在很大强度的压力之下,看系统是否稳定,注意观察哪个地方会出现问题
3)并发测试:
性能并发测试通过模拟用户并发访问,测试多用户并发访问同一个软件、同一个模块或者数据记录时是否存在死锁或其者性它的性能问题
是为了测试系统在不同容量(指定)级别下的性能表现,或者是为了评估系统在指定容量级别下的性能表现
4)配置测试:是为了获取系统的最低配置和推荐配置
性能测试流程(以Loadrunner为例)
1)分析性能需求
2)规划测试(计划、用例) 确定测试要求,如并发用户数量、典型业务场景流程;测试计划;设计用例(场景设计) 3)创建VU脚本 使用Virtual User Generator录制、编辑和完善测试脚本 4)定义场景 使用LoadRunner Controller 设置测试场景。 5)运行场景 使用LoadRunner Controller 驱动、管理并监控场景的运行 6)分析结果 使用LoadRunner Analysis 生成报告和图表并评估性能