1.性能测试介绍
- 定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。
由定义可知性能关注的是软件的非功能特性,所以一般来说性能测试介入的时机是在功能测试完成之后。另外,由定义中的及时性可知性能也是一种指标,可以用时间或其它指标来衡量,通常我们会使用某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试。
- 性能测试定义:指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
2.性能测试目的
- (1)评估系统的能力:测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策;
- (2)寻找系统瓶颈,进行系统调优;
- (4)检测软件中的问题;
- (5)验证稳定性、可靠性;
3.性能测试分类
1.负载测试
通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统性能指标的前提下,系统所能承受的最大负载量的测试。如cpu使用率≤80%。
2.压力测试
通过逐步 压力测试是逐步增加负载,使系统某些资源达到饱和甚至失效。什么条件能把系统压崩溃。
3.异常测试
失败测试,是指系统架构方面的测试。如在负载均衡架构中,要测试宕机、节点挂掉等情况系统的反映。
4.并发测试
测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,所以几乎所有的性能测试都会涉及一些并发测试。因为并发测试对时间的要求比较苛刻,通常并发用户的模拟都是借助工具,采用多线程或多进程方式来模拟多个虚拟用户的并发操作。通常测试方法设置集合点。
5.容量测试
在一定的软、硬件条件下,在数据库中构造不同数量级的记录数量,通过运行一种或多种业务场景,在一定虚拟用户数量的情况下,获取不同数量级别的性能指标,从而得到数据库能够处理的最大会话能力、最大容量等。系统可处理同时在线的最大用户数,通常和数据库有关。预估未来。
6.可靠性测试
通过给系统加载一定的业务压力的情况下,运行一段时间,检查系统是否稳定。因为运行时间较长,所以通常可以测试出系统是否有内存泄漏的问题。如cpu使用率在80%以上7*24小时运行,系统是否稳定。
7.递增测试
指每隔一定时间段加载不同数目的虚拟用户执行测试点操作,对测试点进行递增用户压力加载测试。如果所有的虚拟用户同时加载,有可能造成AUT的资源突然增大,进而影响后续测试中关心的测试点的数据,所以前面可以稍稍放缓,递增加载虚拟用户。
4.性能测试工作流程
- 需求分析
- 性能指标指定
- 脚本开发
- 场景设置
- 监控部署
- 测试执行
- 性能分析
- 性能调优
- 测试报告
5.系统应用分层架构
-
显示层 view
- web
- android
- ios
- H5
-
逻辑控制层 controller
- api
-
数据存储层 model
- mysql
- mongodb
- redis
- ....
6.性能测试指标定义(掌握)
-
事务
事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。 事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。
-
TPS (TransactionPerSecond)
每秒钟系统能够处理的事务
-
请求响应时间
从客户端发起的一个请求开始,到客户端接收到从服务器返回的响应。整个过程所耗费的时间。
-
事务响应时间
事务可能由一个或多个请求组成的,事务响应时间主要是针对于用户的角度而言,如转账。
-
并发定义
没有严格意义上的并发。并发总有先后,无论差距是1毫秒或者是1微秒,总有一个时间差。所以并发将的是一个时间范围内,比如1秒内。
比如:
(一)多用户在系统上进行同一操作,比如双十一,大家都针对同一种商品进行秒杀
(二)多用户在系统上进行不同操作,比如双十一时,大家针对不同商品进行秒杀,或者是大家有其他不同的操作,比如商品浏览。
-
并发用户数
同一单位时间内对系统发起请求的用户数量
-
吞吐量
一次性能测试过程中网络上传输的数据量的总和
-
吞吐率
单位时间内网络上传输的数据量
吞吐率=吞吐量/传输时间
-
点击率
每秒钟用户向服务器提交的请求数。这个指标是Web应用程序 特有的一个指标,可以想象为每秒钟用户总共在页面上进行多 少次点击动作,但是需要注意的是一次鼠标单击的操作后,客 户端有可能向服务器发送了多次请求。
-
资源使用率
对不同系统资源的使用情况,如CPU、内存、io
7.性能测试需求分析
-
分析目的
1.明确测试指标
2.明确测试场景
-
新系统(新业务)
1.同行业比较
2.业务预期 (日活、用户增长...)
-
老系统
1.对比以往的用户使用行为以及用户数
8.性能测试工具
-
常用工具
LoadRunner
JMeter
-
对比
对比纬度 | LoadRunner | JMeter |
---|---|---|
量级 | 重 | 轻 |
易用性 | 易 | 易 |
是否开源 | 否 | 是 |
语言支持 | C/java1.5 | java |
是否收费 | 是 | 否 |
END绵薄之力
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础
获取方式 :