性能测试

一:性能测试

1.概念

  性能:事务,物品的某些特性的评价值

  软件性能测试:通过工具,找出或获得系统在不同工况下的性能指标值

  负载测试(逐步加压):逐步增加系统负载,测试系统性能变化,并最终确定系统所能承受的最大负载量

  压力测试(较大压力+较长时间*24):在较大的性能压力下,持续运行一个比较长的时间,看系统服务及各资源利用情况

  稳定性测试:中度压力下的稳定性测试

  可靠性测试(是否稳定,一定业务压力):在给定的一定的业务压力下,持续运行一段时间,查看系统是否稳定

  容量测试(不同数据量级):在一定的软,硬件条件下,在数据库不同数量级数据量的情况时,对系统中读/写比较多的业务进行测试,从而获得不同数据,量级下的性能指标值

2.目的:寻找或证明系统的某些关键性性能指标

  1.全新系统,从未做性能测试,寻找关键性的性能指标值

  2.基于已有的性能测试基础上,再次做性能测试,验证预定的性能指标值

3.性能测试的必要性研究--关键项评估

  主管部门,监管部门审查;涉及生命财产安全;大型新系统;核心系统;

  架构调整;业务剧增;重大缺陷修复;

4.可测性--可量化为性能指标值

5.软件应该关注哪些性能?

  1.企业关注哪些性能?

  服务器利用情况,资源利用率

  能支持的最大用户,系统容量

  能支持的最大并发用户,并发用户数

  是不是可以更换硬件提供性能,可扩展

  能不能持续运行长时间不宕机,稳定性

  2.开发人员关注哪些性能?

  架构设计是否合理,系统架构

  数据库设计,数据库

  代码逻辑,代码

  线程,异步,同步,队列,实现技术

  资源配置,稳定性

6.性能测试主要指标

  1.并发,指同一个时间点执行相同的操作(秒杀)

  设置集合点,配置策略,让满足策略的人同时做某件事情,给服务器造成更大的压力

  2.并发用户数(重要指标)
  同一时间点,执行相同请求的用户数

  系统用户数,在线用户数,线程数

  3.事务,指一个客户机向服务器发送请求然后服务器作出反应的过程,jmeter默认一个接口请求就是一个事务,jmeter也可以设置一个事务下面多个接口请求

  4.响应时间(RT)(重要指标)

  从发起请求到收到请求响应的时间

  发送请求网络传输时间+服务器处理时间+返回响应网络传输时间

  5.TPS/QPS(最主要指标)

  TPS:服务器每秒处理事务数,衡量服务器处理能力的最主要指标

  QPS:每秒查询率

  差异:一个Transactions可能有多个Queries,如访问网页
  6.吞吐量(衡量网络):单位时间内处理的请求数量(事务/s) 如:港口吞吐量,1年5千万标准集装箱

  7.吞吐率:单位时间通过的数据的平均速率(kB/s)如:港口日吞吐率,年吞吐量/365天

  8.点击率:每秒点击数

  9.资源利用率:指服务器资源的使用程度,比如服务器(应用及数据库)的CPU利用率,内存利用率,磁盘利用率,网络带宽利用率等

7.性能测试步骤

  1.性能测试准备

    需求分析-熟悉业务,明确性能测试目标(指标值),了解软件功能.架构,指定测试计划做好工作量评估,制定.测试模型(编辑测试用例)

  2.搭建性能测试环境

    工具选型与准备,被测系统环境搭建(服务器,服务器版本更新,数据库数据准备),网络配置

  3.性能测试脚本开发

    选取协议,制作脚本,调试脚本,验证脚本

  4.性能测试执行

    试运行,场景执行

  5.性能测试结果分析与调优

    分析依据:结果图表

    分析思路:服务器硬件瓶颈(参数配置,数据库,web服务器)>应用瓶颈(sql语句,数据库设计,业务逻辑,算法)

    调优:

    修改脚本或场景

  6.性能测试报告与结果跟踪

    性能测试报告:

    性能测试问题跟踪:

8.开展性能测试必备条件:1.网络要求,内网,外网,独立分开,千万不要用跨内网外网;2独立环境,功能测试不能和性能测试公用环境

(端口的连接数,netstat -anp | grep port  | grep ESTAB | wc -l)

9.cpu:中央处理器,影响cpu性能主要因素:主频,架构

  cpu的结构主要组成:运算器(执行运算操作),控制器(控制指挥中心),寄存器(cpu片内缓存+寄存器组)

10.内存:memory,是cpu与其他设备沟通的桥梁,主要用来临时存放数据,配合cpu工作,协调cpu的处理速度

11.jvm:Java虚拟机,虚拟出来的能够运行Java字节码的虚拟计算机。

  本质上就是一个程序启动后就执行它包含的字节码

  java运行是涉及的存储区域主要包括:程序计算器,Java 虚拟机(调用栈),本地方法栈,java堆

  程序计数器,主要取下一条指令:java虚拟机栈,利用栈的先进先出特性存储变量表和动态连接;本地方法栈,与java虚拟机栈基本相同;java堆,最大的内存管理,同时也是垃圾收集器

posted @ 2020-10-31 17:32  Lucky-qq  阅读(47)  评论(0编辑  收藏  举报