天天看点

性能测试第一课-性能测试概念

性能测试:通俗讲就是模拟N个人同时使用某个功能

  • 关注点:
    • 响应时间-多长时间能收到结果(结果是否正确不关心)
    • 成功率
    • PS-服务器 在多人同时使用的时候的资源消耗情况(CPU/IO利用率)
  • 测试时间:
    •  接口测试->性能测试
  • 参数:
    •  接口存在排他性,例如一个接口同时有6个参数,不传第三个参数走A逻辑,传了第三个参数走B逻辑,第三四个参数都传走C逻辑。在做接口测试的时候我们一般会做排他性测试。但是在性能测试中,一般我们是默认传全部参数的(非必填参数也是要传的)
性能测试第一课-性能测试概念

思维逻辑的转变:

  • 100次请求中有5次请求失败--功能测试的思维,会认为这个失败的请求,是测试那里出了问题,是特殊参数的问题,还是操作的问题……
  • 性能测试的思维逻辑是,5%的失败率,分析失败率的原因。是发起方的原因?网络原因?服务器原因?而不是单独去追究某个接口的原因
  •  性能测试是多个人同时操作的,每个人的操作场景可能不一样,多维度组合起来的场景会非常复杂,不利于性能分析。所以在实际做性能测试的过程中,测试人员需要从最简单的场景开始,逐步复杂化。(举例:简单参数请求失败,大概率是接口问题。多人同时请求有人成功,有人失败,大概率不是接口的问题,可能是网路波动导致丢包,可能是服务器调度的问题……)
  • 性能测试概念:通过工具找出或获得系统在不同工况下的性能指标
    • 测试方式-通过工具模拟多个人发送接口请求
    • 工具:性能测试工具(jmeter,loadrunner……)、代码(java,Python……)
    • 相同的请求:同一时间发出,到服务器时其实是有时间差异的,也不一定是先发出的请求,服务器就会先收到的(举个例子:起个大早,赶了个晚集)
    • 请求到达服务器后,服务器处理相同的请求,也会出现有的时间长有的时间短,处理时间长短也有差异
    • 输出:性能指标值  ====> 性能测试报告
    • 性能测试,具体应该用多少人来测试,怎么衡量?
  • 负载测试:通过逐步增加并发用户数,测试系统性能变化,并最终确定系统所能承受的最大负载量
    •  通过逐步增加增加并发用户数,找出服务器最大可接受的并发用户数区间,输出最大可接受并发用户数
      • 最大并发用户数---数量再大服务器就会出错
      • 最大  可接受  并发用户数 ---数量再大服务器性能就会下降,但是再加一点用户数服务器也不会报错(是认为定义的一个标准,在标准下我们可以接受的并发用户数)
      • 行业中接口的性能标准线:平均响应时间<=1.5S,Err% <=0.1%
    • 用不同的并发用户数,进行的测试时间,不需要很长,一般几十秒到几分钟就可以了 

执行性能测试的基本思路:

  • 一个性能测试需求,我们要先做负载测试,找到这个需求中每个接口的【最大可接受并发用户数】,然后再用这个最大可接受的并发用户数,去做性能测试,得到性能测试指标。判断这些性能指标值,是否有性能问题。如果没有则可以书写性能测试报告,性能测试就结束了,如果又性能问题,那么就需要定位,分析,性能调优
  •  压力测试(较长时间的稳定性测试):
    • 用较大的并发用户数,持续运行比较长的时间,看系统的服务和资源利用率情况,是否存在稳定性问题
    • 关键词:运行时间较长,稳定性问题
    • 压力测试:实在有不稳定性元素的时候我们才需要去做
      • 现在企业中,压力测试时间标准(较长时间),已经变成了以小时为单位
  • 容量测试
    • 容量测试,与数据库表的数据量级有关系
    • 在一定软硬件条件下,在数据库不同数量级数据量的情况时,对系统中读/写比较多的业务进行测试,从而获得不同数量及下的性能指标值
    • 关键词:数据库表,数据量级不一样
  • 稳定性测试
    • 在一定量的并发用户数下,持续一段时间,看服务器是否存在稳定性的问题
    • 稳定性测试不需要压力测试那么长时间