其他分享
首页 > 其他分享> > 性能测试2

性能测试2

作者:互联网

性能测试理论2

性能测试你测什么?关注的点是什么? 程序的响应时间 ,系统的吞吐量,以及并发用户数,和tps,qps,以及DB的IOPS,和服务器的系统资源(CPU和内存) 通过一定的工具或者代码的方式,来验证被测试的程序是否满足性能测试的目标,以及验证程序是否会出现OOM,系统崩溃,系统无响应等情况

性能测试过程中,开发说需要添加服务器性能测试才能继续,此时您会?

 

Kafka:linkedin公司打造的,它主要应用于大数据领域,在数据的实时流要求是非常高的,而且它的性能也是非常好的,但是在数据一致性方面表现很差劲。 RabbitMQ:对数据的一致性要求很高,对性能反而要求没那么高

性能测试步骤

性能测试模型也可以理解为性能测试步骤,具体汇总为如下: 性能测试的过程中,测试环境的资源配置与生产环境的资源必须是一致的。

• 测试前期准备

  1. 梳理清楚性能测试的目标(参考之前的历史数据,性能的目标由测试主导梳理出来,但是和大家一起沟通下来)

  2. 在目标清楚的基础上,梳理出测试场景和准备测试数据

  3. 准备测试的资源(人力和机器资源)

• 测试工具技术引入

  1. LoadRunner

  2. JMeter Apache基金协会的顶级项目,是Java语言100%开发的,开源的

  3. Locust是Python代码级别的性能测试工具,它是基于协程(微小的线程)

• 性能测试计划

  1. 具体测试场景执行的负责人,和执行的开始结束时间

  2. 前置工作内容

  3. 具体使用的测试技术

• 测试设计与开发

编写测试脚本来执行具体测试场景

• 测试执行与管理,数据收集

  1. 在脚本编写的基础上执行以及验证测试场景

  2. 我们在测试的过程中需要收集数据(性能计数器)

    • 服务器系统资源:CPU和Memory

    • DB的资源:IOPS,连接数

    • 服务资源:响应时间(最大、最小、平均、中位数、90%、95%、99%),吞吐量,并发数

    • 数据收集的思路:把这些数据写到InfluxDB(时序数据库),最后展示在Grafana的平台上

• 测试分析

  1. 结合收集到的数据分析是否和最初制定的性能测试目标吻合,如果达到了目标,输出性能测试的报告

  2. 如果没有达到目标,那么开发继续调整,优化,测试继续测试

JVM( Javisafm)监控工具

 

性能测试的方法

环境: 1、测试环境(QA) 2、预发布环境:用来规避测试环境发布没问题,但生产环境有问题 3、生产环境(线上)

验收负载测试

在QA的环境模拟生产运行的业务压力和使用场景组合,测试系统的性能是否满足生产环境的性能诉求。

负载测试

在被测系统上持续不断的增加压力,直到性能指标(响应时间等)超过预定指标或者某种资源(CPU&内存)使用已达到饱和状态。核心是找到系统的处理极限,为系统调优提供数据,从而达到了解系统性能的容量。

压力测试

该方法是指系统在一定饱和状态下,具体如CPU,内存等饱和使用的情况下,系统能够处理的会话能力,以及系统是否会出现错误,比如TimeOut,OOM,OverStackExpection(堆栈异常)。

TimeOut:超时 OOM(Java.lang.Out Of Memory):内存泄露 OverStackExpection:堆栈溢出

压力测试的特点: • 检查系统在处于压力情况下时应用的性能表现 • 等价于负载测试,使系统的资源处于一个瓶颈的状态(建议CPU和内存在75%以上) • 这种方式一般用于测试系统的稳定性

系统的稳定性:被测系统在系统资源饱和的状态下,依然能够很好的处理系统的业务逻辑

配置测试

被测环境软硬件环境参数的调整,达到最优的分配原则。

并发测试

模拟用户的并发访问,测试多用户并发访问同一个应用时是否存在死锁或者其他的问题,并发测试的特点是: • 发现系统中可能隐藏的并发访问的问题 • 关注系统可能存在的并发问题,如内存泄露,线程锁,资源争用情况 • 使用的测试工具如profiler等

 

 

可靠性测试

给系统加载一定的业务压力,让应用持续运行一段时间,测试系统在这种条件下是否能稳定运行。

 

被测对象往往是一个服务,服务一般都会提供接口,那么我们直接访问这个接口可以来测试这个服务。

JMeter操作

把JMeter的bin目录添加到PATH环境变量下

 

 

 

 

 

 

作业:

1、怎么区分负载测试与压力测试

答:负载测试是指对被测系统不断的增加压力,测试系统达到极限负荷的情况下,观察系统出现的异常反应,如OOT、超时等

压力测试是指在持续高负荷的情况下,对系统的工作能力及稳定性进行测试。
2、怎么理解系统稳定性测试

答:要确保系统能长时间的稳定工作,而进行的一种测试方法,模拟平时的业务压力,持续一段时间对系统稳定性的测试。
3、如果做性能测试过程中,开发要求增加服务器,此时你会?

答:不同意,测试环境是与生产环境一样的,不能随意改动,否则会影响测试的结果。
4、做性能测试需要准备哪些工作,为什么?

答:1.了解测试目标

2.准备测试的环境与数据

3.准备测试人员及机器
5、性能测试中测试环境和生产环境的配置必须一样嘛?为什么?

答:必须一样,只有在测试环境与生产环境配置一样的情况下,才能真正发现用户在使用过程中出现的问题bug。

 

 

标签:性能,系统,并发,测试,CPU,测试环境
来源: https://www.cnblogs.com/XJY1/p/16289983.html