性能测试之指标定义、需求分析、工具比对

一、性能测试指标定义
1.事务
  • 从客户端发起的一个或多个请求(这些请求组成一个完成的操作),到客户端接收到从服务器返回的响应。
事务就是从客户端发起的一个或多个请求,这些请求组成一个完整的操作,这一个或多个请求呢,是到客户端接收啊,其实什么客户端发起,然后又从服务端返回,这样的一个闭环的一个请求,首先我客户端发起一个请求,就是你们可以想象在前面我们讲解的那个软件应分层的那个层面,是吧,首先我们的web端点击一个登录按钮,然后Api接到请求,去验证我这个数据是否合法,然后再到数据存储层面去验证我的数据库当中,是否有登录的用户名,然后再验证密码是否正确。再返回给Api,再返回给前端,再提示用户已登录成功或者是失败,这样的一个请求呢,叫做一个完整的事务。那在这里呢,重要的说明一点什么呢?这些请求组成一个完整的操作,这个东西必须是完整的操作才叫一个事务,那什么情况下它是不完整的?
再举个例子 就比如说啊,这也是大家都举了例子,很常见很常见,你每个月都会做转账这个动作,就是银行转账,银行转账分几步呢?第一步,首先我发起转账请求,假如说我中国银行的帐户转到我农业银行账户,第一步从中国银行发起请求,是吧,中国银行扣款,然后到农业银行,农业银行把这个钱给加上是吧,然后返回给中国银行,说我钱收到了,中国银行再更新数据库状态,那在这个中间如果出了问题,哪一步出了问题呢?比如说我第一步请求发到中国银行,说我要转账,然后呢,随着中国银行就给农业银行发了一个请求,说我有500块钱要转到你们银行了,然后我们农业银行说好,我收到把钱加上了,那这个时候 ,第一是我北京银行的账户里有500块钱还没有剪掉,然后呢,第二步,农业银行的账号里的钱已经加上了,然后没网了,这个请求就断了,是吧,那这个世界上就凭空多出500块钱呢,其实这个过程当中是有好几个请求来完成,那这个就不叫一个事务,因为什么呢?这并不是一个完整的操作,操作一半就断了。所以说这个大家理解了什么是事务吧,一个事务并不一定是一个请求,有可能是多个请求,比如说转账,有可能是多个请求,虽然我们只是发起了一个请求的按钮,点击转账,那实际上它背后发生的是多个请求,多个交互,所以对事务的理解应该是呢,不要给他完全定义为一个请求,那你这个时候啊,在定义事务,在你自己脚本儿里边儿进行操作的时候,哪里是事务,请求哪里是事务结束,一个事务的时间是多少,就是需要你对业务进行了解。
2.TPS (Transaction Per Second)
  • 每秒种系统能够处理的事务数
3.请求响应时间
  • 从客户端发起的一个请求开始,到客户端接收到从服务器返回的响应。整个过程所耗费的时间。
4.事务响应时间
  • 事务可能是由 一个或多个 请求组成的,事务响应时间主要是针对用户的角度而言,如转账。
5.并发定义
  • 没有严格意义上的并发 。并发总有先后,无论差距是1毫秒或者是1微秒,总有一个时间差。所以并发讲的是一个时间范围内,比如1秒内( 1秒内发起多少个请求用户或者是多少个并发)
并发举例:
        1)多用户在系统上进行同一操作,比如双十一时,大家针对同一种商品进行秒杀
        2)多用户在系统上进行不同操作,比如双十一时,大家针对不同商品进行秒杀,或者是大家有进行其他不同的操作,比如商品浏览。同一系统同一操作,但不是对同一功能进行同一操作。
6.并发用户数
  • 同一单位时间 对系统发起请求的用户数量
比如现在的服务器,出了多核CPU, 多核CPU的目的就是提高我们多线程的处理能力,同时处理用户的能力
7.吞吐量
  • 一次性能测试过程中网络上传输的数据量的总和
其实这个总和自己通过手算也能算出来的,通过监控软件也是可以的,我们真实在数据交换的过程当中,数据量大小我们是知道的,比如说你进行一个http请求的时候,知道请求方法、参数以及请求头大小大概是多少,所以说能够进行粗略的估算。用监控软件,有的时候一些请求参数是我们不知道的,网络流量在性能测试是一个非常重要的因素,比如说进行一个上传或者是下载这样一个并发用户,假如说宽带是10M,下载的包大小是1M,1M对应10M,那假如说我的并发就是1秒内最快的处理速度是10,把网路流量都占满了,再大就得排队了。网络在很多公司是一笔很大的开销,有时候你自己在做性能测试时,会发现一种现状,所有的东西都监控了,都满足也没有发现什么性能瓶颈,代码也没问题,数据库也没问题,服务器也没问题,那怎么就是并发压不上来呢,一并发就排队等着,这时候很有可能就是网络有问题,这个时候就需要看一下吞吐率了,吞吐率是怎么样的,吞吐量指的是一个总量,就是网络存储了,看下你的网络带宽是多少,每次并发的数据大小和返回的数据大小是多少,是不是占满了。
8.吞吐率
  • 单位时间内网络上传输的数据量
  • 吞吐率=吞吐量/传输时间
比如说1秒内或者10秒内我给服务器发送的和服务器给我返回的这样的一个数据量
假设说压10分钟,吞吐量10M,然后1分钟就是1M,1秒就是1M/60秒=1024
9.点击率
  • 每秒钟 用户向服务器提交的请求数。这个指标是web应用程序特有的一个指标,可以想象为每秒钟用户总共在页面上进行多少次点击动作,但是需要注意的是一次鼠标单击的操作后,客户端有可能向服务器发送了多次请求。
10.资源使用率
  • 对不同的系统资源的使用情况,如cpu、内存、io
二、性能测试需求分析
1.分析的目的
  • 明确测试指标
  • 明确测试场景
明确测试指标:要把测试指标定义好,在需求分析的时候要明确下来,我们要对哪些指标进行比较严格的关注为重点关注指标,那么经常说的重点关注指标是什么?比如说TPS,那我们首先要明确TPS的定义是什么,尽量让参与到性能测试的相关人员知道TPS是什么,以免因为在开发过程中因为我们的定义不清晰而产生分歧,提前定义好明确好各项性能指标。
2.新系统
  • 同行业比较
  • 业务预期
同行业比较:进入新公司,接触新的系统,是颠覆性的,你并没有参照,这个时候怎么办?我们公司以前就没有这个东西:第一就是同行业比较,那我们行业内是否有这样的系统,同类的软件,他们的软件这个日常来说,并发量是什么样的,客户的主要应用场景是什么样的,可以大概的进行同行业资料收集,或者你自己到同行业系统看一看,亲自作为用户去体验一下
业务预期:业务预期就是你跟产品人员或者是运营进行的一个沟通,就是我们这个产品它发布的时候,一定要有一些营销策略去吸引用户,那我们预计会有多少用户,多长时间内会有多少用户到我们这边来,那我们的客户增长是怎样做的,有什么样的一个预期,因为这个是我们性能指标的一个来源。假如说我们公司通过一个什么样的宣传手段,预计公司在一个月内会呈现从0到100万的用户增长,它呈现的是一个阶梯性的增长,这个系统一定要承受住三个月内这些用户的并发。这个时候,需要问产品三个月用户增长预期是什么?在后面定义性能指标时要说明,我们自己定义的性能指标是怎么来的,是否合理。以上两点就是数据来源的方法。
3.老系统
  • 对比以往的用户使用行为以及用户量
老系统就参照,我们公司过去是怎么样,这个参照也需要有个时间长度,比如说过去三个月大概用户呈现一个什么样的增长,是上升期还是平稳期,如果是平稳期就好办了,就照着平稳期的数据量做,如果是上升期,那我们照着之前的用户增长预估一下后面的用户增长,这样就出来了自己总结出的性能指标。
三、性能测试工具比对
1.常用工具
  • loadrunner
  • jmeter

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值