性能测试的整体认知

性能测试的整体认知

性能测试分类(测试分类)

负载测试:通过逐步加压的方法,达到既定的性能阈值。阈值的设定应小于等于某个值,如CPU使用率小于等于80%。

压力测试:通过逐步加压的方法,使得系统的某些资源达到饱和,甚至失效的状态。简单粗暴的解释就是什么条件能把系统压崩溃。

并发测试:同一时间内,多个虚拟用户同时访问同一模块、同一功能。通常的测试方法是设置集合点。

容量测试:通常是指数据库层面的,目标是获取数据库的最佳容量能力,又称之为容量预估。具体的测试方法为在一定的并发用户,不通的基础数据量下,观察数据库的处理能力,即获取数据库的各项性能指标。

可靠性测试:又称之为稳定性测试或疲劳测试。是指系统在高压情况下,长时间地运行系统是否达到稳定。如cpu使用率在80%以上,7*24小时运行,系统是否稳定。(最容易发现内存泄露)

异常测试:又称之为失败测试。是指系统架构方面的测试。如在负载均衡架构中,要测试宕机,节点挂掉等情况系统的反应。

性能测试的工作流程

  1. 需求分析:熟悉项目主要是做什么的,用户如何操作,哪些是主要流程。

  2. 性能指标制定:什么样的性能指标满足现阶段用户需求。

  3. 脚本开发:写代码或者用工具。

  4. 场景设置:调试脚本,根据(需求分析)用户使用主要流程设置场景。

  5. 监控部署:去部署监控工具,能看到整个服务器、数据库的性能状态。

  6. 测试执行:先进行基准测试(能发现多并发下多用户系统的逻辑处理问题),然后正式执行测试

  7. 性能分析:针对监控结果进行性能分析。

  8. 性能调优:发现性能问题,进行调优。

  9. 测试报告。

常见系统应用分层架构

显示层:web、android、iOS、H5…

逻辑控制层:API…

数据存储层:mysql、mongodb、redis…

性能测试要有分层思想,可以一块一块测,比如说如果我们单独测数据存储层,把开发的代码拿过来,剥离出sql语句开发成搅拌,对数据库进行监控,如果出现问题,也就是数据库本身的问题。

性能测试指标定义

事务:从客户端发起的一个或多个请求(这些请求组成一个完整操作),到客户端接收到从服务器返回的响应。

例子:银行转账

中国银行转账给农业银行,中国银行收到扣款请求进行扣款,农业银行收到收款请求,返回给中国银行说钱收到了,中国银行更新状态。

这个例子中包含了多个请求,共同组成了一个转账事务,如果中间断了,就不是一个完整事务。

TPS:每秒钟系统能处理的事务数。

请求响应时间:从客户端发起一个请求开始,到客户端接收到服务端响应的整个过程耗费的时间(一个请求)

事务响应时间:事务可能是由一个或多个请求组成的,事务响应时间主要针对于用户角度来讲,如转账。

并发没有严格意义上的并发。并发总有先后,无论差距是1毫秒或者是1微秒,总有一个时间差。所以并发讲的是一个时间范围内,比如1s内。

并发主要分成以下两种场景(举例):

  • 场景一:多用户在系统上进行同一操作。比如双十一大家对同一商品进行秒杀。
  • 场景二:多用户在系统上进行不同操作。比如双十一大家对不同商品进行秒杀,或者进行其他不同操作,比如商品浏览。

并发用户数:**同一单位时间内(默认1s)**对系统发起请求的用户数量。

吞吐量:一次性能测试过程中网络上传输的数据量总和。可以通过手动计算出来,比如说一个http请求,知道请求头请求体,能对请求报文大小进行一个粗略的估算,比如说1M,而网络带宽10M,不考虑其他因素影响,可以计算出最大并发10个请求,并发量再大就会排队。

吞吐率:单位时间内,网络上传输的数据量。

吞吐率=吞吐量/传输时间,比如压10分钟,总的吞吐量10M,吞吐率=10x1024/(10x60)=10kb/s

点击率:每秒钟用户向服务器提交的请求数。这个是web应用程序特有的一个指标,可以想象为每秒钟用户总共在页面上进行多少次点击动作。但是需要注意的是,一次鼠标单击的操作后,客户端可能向服务端发起了多次请求。

资源使用率:对不同的系统资源的使用情况,如cpu,内存,io。

性能测试的需求分析

分析的目的

  1. 明确测试指标:这次测试需要重点关注哪些指标
  2. 明确测试场景:这次测试需要测哪些场景(用户重点使用的场景和主流程)

新系统如何做需求分析?

  • 同行业比较(比如:同行竞品相同类型的系统达到了哪些性能指标)
  • 业务预期(比如:近几个月或第一阶段的目标是要达到怎样一个业务量)

老系统如何做需求分析?

  • 对比以往的用户使用行为以及用户量

性能测试工具比对

常用工具对比

  • Loadrunner
  • Jmeter
对比维度 Loadrunner Jmeter
量级
易用性
是否开源
语言支持 C/java 1.5 java
是否收费

猜你喜欢

转载自blog.csdn.net/u011090984/article/details/123204026
今日推荐