邯郸学校网站建设费用,民法典建设工程合同篇,wordpress修改侧边栏,建一个企业网站要花多少钱前言#xff1a;最近公司接了个项目#xff0c;领导开会突然来了句#xff0c;让我出一份性能测试方案#xff0c;后面性能测试工作交给我#xff01;我心里想之前面试没要求会这个啊#xff08;最少得加钱才能做吧~#xff0c;没办法既然下达了指令#xff0c;那就只能…前言最近公司接了个项目领导开会突然来了句让我出一份性能测试方案后面性能测试工作交给我我心里想之前面试没要求会这个啊最少得加钱才能做吧~没办法既然下达了指令那就只能照做了
硬着头皮开搞了小菜鸡性能测试之路慢慢进行中
在做性能方案之前先捋一下流程出方案给老板看要显得自己专业哈哈哈~
性能流程 制定性能指标 -- 编写测试方案--方案评审-- 搭建测试环境-- 脚本编写准备测试数据-- 准备测试机器-- 执行测试-- 分析调优
终于费劲九牛二虎之力出了分方案给领导结果他来了句没有性能指标让我看着测(~~没指标玩个毛) 在我一顿输出下领导妥协了拉着产品架构师开个会讨论了下。结果让我先测给出性能的最大并发和最优性能 估计大多数小公司都是这样吧不给性能指标就是走个过程那好吧给他出份报告先吧
在做性能测试之前我们先了解下性能基础
1.1、性能概述
性能决定了一个系统支撑其业务的能力。可以描述为系统稳定运行高并发访问服务
不会出现宕机用户访问页面需要的时间系统能够支撑多少用户并发访问。也可以
描述为对资源的消耗。报告cpu磁盘内存IO网络等。
普通用户关心的是响应时间和稳定性
⚫ 页面还要多久才能加载出来?
⚫ 页面怎么又报502 了?
开发关心的是架构和代码的性能
⚫ 应用架构是否合理
⚫ 技术架构是否合理
⚫ 数据架构是否合理
⚫ 部署架构是否合理
⚫ 代码是否存在性能问题
⚫ Jvm 内存分配是否合理
运维关心的是系统资源的稳定性
⚫ 资源使用率在正常范围吗
⚫ 数据库连接数正常吗
⚫ 系统有内存泄露吗
⚫ 一个节点宕机了剩下的还能用吗
1.2 、测试目标
通过压测来观察系统能承载的并发量响应时间与最大TPS 了解系统各项性能指
标以此来评估系统的各项能力
发现系统存在的性能问题包括
连接池问题。包括Tomcat 连接池Jdbc 连接池Nginx 连接池Tcp 连接队列
内存泄露问题。内存泄露指的是系统在长时间运行过程中内存空间得不到释
放最终导致可用内存空间耗尽出现内存溢出
线程死锁问题。线程死锁指的是某些线程因为资源问题长期占用线程锁导致其 它的线程因为无法拿到锁而出现大面积阻塞
负载均衡问题。流量过高的情况下因为负载均衡策略设置不当导致每台服务器 接受的流量不均匀部分机器压力过大而性能急剧下降部分机器流量过小而资
源浪费
硬件参数配置问题。例如网卡中断不均swapiness 比例设置不当进程优先级 设置不当导致的一系列硬件资源性能问题
1.3 、性能测试方法
1.3.1、并发测试
广义并发多个用户同时触发某个功能或者在单位时间内同时向服务器发起多 个请求。此时设置的线程数可以表示为并发的用户数
狭义并发单位时间内多个业务并行处理(这里强调的是业务流程比如A-B-C D)。此时设置的线程数可以表示为并行的业务数。
1.3.2、负载测试
持续稳定地增加系统的负载测试系统性能的变化
找出指标阈值下的系统瓶颈和性能拐点
测试系统所能承受的最大负载量****
找到处理极限为调优提供数据
找出系统在稳定情况下的最大压力值
1.3.3、压力测试
对系统持续保持高压运行时间可以是几小时甚至几天。观察系统在资源饱和状态下
的处理能力。目的是发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患。同
时观察系统在长时间运行下可能出现的故障例如反应变慢、内存泄漏系统崩溃
2 .1 、需求分析
2.1 .1 、测试目的
为什么测目的在于测试系统相关性能能否满足业务需求。通常分以下两种情况
新项目上线
老项目优化
2.2 、测试对象
测什么测试对象可以归结为“业务功能”。测试前需要了解待测试的业务功能不深入
细节有哪些比如“购买商品”、“下单支付”。
有没有必要测需求来源哪里有没有数据支撑需求的必要性
可以从以下几个方面考虑
是否核心功能是否要求严格的质量
是否常用、高频使用的功能
可能占用系统较多资源的功能
使用人数多还是少
在线人数多还是少
2.3 、拆分对象
业务上拆分业务包含哪些流程、环节
登录-搜索商品-提交订单-支付订单-退出
需要从功能实现上来看是怎么实现的。通常这些业务功能操作都对应着一个或多个可
能是不同类型的请求。我们要做的是找出这些操作对应的请求与请求之间的关联性。
2.4 、指标分析
分析性能需求指标如“支持300 人并发登录”是否合理有没有必要测试这个需
求考虑需求指标是否合理有没有数据支撑支撑数据可以从以下方面考虑
采样时间段内系统使用人数
采样时间段内系统在线人数
采样时间段内系统(页面)访问量
采样时间段内请求数
2/8 法则
80%的业务量在20%的时间里完成。这里业务量泛指访问量请求数数据量等
2-5-8 原则
当响应时间在2 秒以内用户会感觉系统速度很快
当响应时间在2-5 秒用户会感觉系统的响应速度还可以
当响应时间在5-8 秒以内用户会感觉系统的速度很慢
当响应时间超过8 秒后用户会认为系统已经无法响应直接离开
3.1 、用例设计 4.1、性能监控关键指标
4.1.1 、系统指标系统指标则与用户场景及需求直接相关 4.1、性能监控关键指标
4.1.1 、系统指标系统指标则与用户场景及需求直接相关 并发用户数 平均响应时间 吞吐量 4.2 、服务器资源指标 CPU使用率 一般可接受上限85% 内存使用率一般可接受上限85% 磁盘I/O 网络带宽 4.3 、 JVM 应用 Java运行内存划分机制
堆区内存没有被及时释放则存在内存泄漏
在性能测试过程中关注JVM堆区的内存如持续在上升没有下降则可能存在内存泄漏
内存泄漏原理 FULL GC 机制
垃圾回收将内存中已申请并使用完成的那部分内存空间回收供新申请使用
垃圾回收机制针对堆区的内存进行的
JVM(JAVA虚拟机)垃圾回收机制原理 系统在做垃圾回收时不能处理任何用户业务如果垃圾回收太频繁导致系统处理业务能力下降
FULL GC内存比较大垃圾回收一次时间较长这段时间不能处理业务对系统影响比较大因此在性能测试过程中需要关注FULL GC的频率
4.4 、数据库指标 慢查询 缓存命中率 数据链接池 Mysql锁 Mysql锁概念 对比
l 页面锁处理效率低但不会出现死锁
l 处理效率高但是可能出现死锁
监控点
需要监控在性能测试过程中是否死锁出现如果出现需要对代码优化 4.5 、压测机资源 CPU ---不超过80% 内存---不超过80% 网络 磁盘 好了以上便是性能的一些基础知识和性能的一些指标
在了解这些性能基础及指标知识后再进行性能测试便可以更加轻松了不然照着网上按葫芦画瓢也只是了解皮毛反而得不出结果完成不了上级交代的工作
通常在做性能测试的时候编写脚本和执行只是一部分在性能测试过程中脚本编写和执行只是占比30%例如功能测试需求分析和用例编写一样做性能测试也是一样要先分析这部分也占比30%最后再是分析调优了--占比40%
结尾
学会了这些便可以理直气壮的拍老板桌子提出升值加薪啦
先了解基础知识和指标等下个月项目做完再出一份性能执行和分析调优的分享
感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取