性能测试要学习哪些知识?全在这里了

news2024/11/17 21:45:03

基础:
  完整的性能测试流程
    需求-计划-方案-环境搭建-用例设计-数据准备-场景设计-脚本开发-脚本执行-结果分析-问题反馈-性能调优-结果报告
  性能指标
    TPS,QPS,RPS,HPS,RT,VU,ERROR
  测试类型
    压力测试,负载测试,并发测试,spike测试,稳定性测试,破坏性测试,验收测试
工具:

  jmeter工作原理
  常用的元件,插件
  jmeter如何设计脚本(线程组,各种请求,定时器,参数化,关联,断言)
  jmeter测试报告
  jmete设计典型性能测试场景

其它工具
  wrk,ab,httpload,webbench,siege
服务器/中间件
  JVM原理和配置、堆栈原理、GC原理、FullGc,OOM
  Tomcat配置、使用方法、启动参数配置
  Nginx配置、使用方法
    Dubbo服务注册、消息队列
服务器硬件资源
  cpu,磁盘,网络,内存,load和利用率,IO读写,发包率丢包率
linux性能监听命令
  lscpu,uptime,free,vmstat,mpstat,sysstat,netstat,iostat,pidstat,jstack,jmap
数据库
  锁,索引,读写分离,分库分表,Nosql
线程状态
  就绪(Runnable),运行(Running),阻塞(Blocked)
可能的瓶颈点
  硬件,中间件,程序,操作系统,网络设备
  cpu,内存,磁盘,网络,jvm,线程池,jdbc连接池
OOM异常信息
  OutOfMemoryError: Java heap space (堆内存不够)
  OutOfMemoryError: GC overhead limit exceeded (代码内存过大或死循环)
  OutOfMemoryError: PermGen space (perm内存不够)
  OutOfMemoryError: Direct buffer memory (线程栈太小)

性能测试分析
  错误提示分析
    OutOfMemoryError: Java heap space (堆内存不够)
    OutOfMemoryError: GC overhead limit exceeded (代码内存过大或死循环)
    OutOfMemoryError: PermGen space (perm内存不够)
    OutOfMemoryError: Direct buffer memory (线程栈太小)
指标监控分析
  cpu瓶颈
    响应时间慢
    空闲时间高(idle)
    系统占用高(sys)
    用户占用高(usr)
    运行队列长(r)
    load长期大于cpu个数
  内存瓶颈
    交换率过高(swap)
    系统cpu利用率很高
    内存溢出(OOM)
  磁盘瓶颈
    磁盘利用率高
    等待队列过长(avgqu-sz)
    等待IO的百分比过高(await))
    用于IO的时间比例过高(util)
    缓存命中率过低(buffer cache)
  JVM瓶颈
    fullgc频繁,考虑老年代内存是否太小
    YoungGc频繁,考虑年轻代内存是否太小
    YoungGc时间过长,程序中出现了大对象, 增加 -XX:PretenureSizeThreshold
    GC监控
     jstat -class 类加载统计
     jstat -compiler 编译统计
     jstat -GC 垃圾回收统计
     jstat -gccapacity 堆内存统计
     jstat -gccnew 年轻代垃圾回收统计
     jstat -gccold 老年代垃圾回收统计
     jstat -gcnewcapacity 年轻代内存统计
     jstat -gcoldcapacity 老年代内存统计
     jstat -gcmetacapacity 元空间内存统计
     jstat -gcutil gc整体统计
分段排查定位分析
  服务器硬件瓶颈->网络瓶颈->应用瓶颈->服务器操作系统瓶颈(参数配置)->中间件瓶颈(参数配置,数据库,web服务器等)
优化方法
  使用对象池减少对象创建
  增加本地缓存
  Nosql进行存储
  合并请求
  串行改并行
  同步改异步

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。需要可以点击下方名片加入群聊大家一起学习交流。群里有大佬可以帮忙解答问题。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/111462.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Pandas入门教程】在Pandas中如何创建plots

在Pandas中如何创建plots 来源:Pandas官网:https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html 文章目录在Pandas中如何创建plots导包数据集准备【小结】导包 import pandas as pd import matplotlib.pyplot as plt数据集准备…

力扣(LeetCode)200. 岛屿数量(C++)

深度优先遍历 求连通块数量。可以遍历所有格子,当格子是岛屿,对岛屿深度优先遍历,找到整个岛,并且将遍历的岛屿标记,以免重复遍历,或递归死循环。标记可以使用状态数组,也可以修改格子的值。本…

SQL注入渗透与攻防(十)之加解密注入和堆叠注入

目录 SQL注入之加解密注入 案列演示 SQL注入之堆叠注入 案列演示 SQL注入之加解密注入 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。 案列演示 这里我们拿sql-libs的第二十一关来进行演…

学习TrustZone可以参考的资料

最近看到了一篇学习资料分享的,感觉可以转过来做个记录,除去前辈分享的资料以外,我还觉得ATF的源码里面的DOC目录下的资料也是很不错的,起码可以让你对BL31有个比较不错的认识。当然那个有点太细节了。 最近看PSA安全技术交流微信…

30多岁想转行,零基础学编程,来得及吗?

“30多岁想转行,零基础学编程,来得及吗?能找到好工作吗?”这类问题,总是反复出现。尤其是最近我受《自学是门手艺》鼓舞,也借着参与 xue.cn 的契机想要把 python 学的全面而完整,也总有朋友找我…

从工地打工,到狂揽10个大厂offer、副业赚100万:培训班出来的程序员是怎么做到的?

七年前我 985 毕业却沦落到工地打工,七年后我已经收到了 10 个大厂 offer 。 你好,我是吴师兄,一位曾经的学霸毕业只能去工地,而如今大厂 offer 拿到手软,Github 全球 TOP100 算法仓库创作者,公众号五分钟…

eclipse和sts安装lombok

eclipse和sts安装lombok 说明 sts 是 eclipse集成springboot的开发环境 所以 sts 和 eclipse 安装 lombok 步骤基本一样 参考网址: https://blog.csdn.net/qq_39826207/article/details/119007580?ops_request_misc%257B%2522request%255Fid%2522%253A%252216708973141680…

算法day57|647,516

目录 647. 回文子串 516.最长回文子序列 动态规划总结篇 647. 回文子串 dp数组的定义 dp[i][j]代表的是区间[i,j]的字串是否为回文字符,如果dp[i][j]为true,否则为false 递推公式 如果s[i]和s[j]相等的话 1.ij 为同一个字符,dp[i][j] True 2 i与j相差1…

Kafka大厂高频面试题:在保证高性能、高吞吐的同时保证高可用性

Kafka的消息传输保障机制非常直观。当producer向broker发送消息时,一旦这条消息被commit,由于副本机制(replication)的存在,它就不会丢失。但是如果producer发送数据给broker后,遇到的网络问题而造成通信中…

火山引擎 DataTester 上线“流程画布”功能,支持组合型 A/B 实验分析

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 在精细化运营的时代,运营活动同样需要有精细化的策略,例如在年末大促活动中,设计 APP 弹窗提醒、满减、会员领券时,我…

C#语言实例源码系列-实现批量更改文件名称大小写或扩展名

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中…

DeepLearning_Note

这里写目录标题深度学习框架深度学习开发万能公式模型的网络设计和开发:激活函数:几个数据参数:神经网络的输出零碎知识点:深度学习框架 深度学习开发万能公式 ① 问题定义 ② Paddle.vision.datasets(内置数据集&am…

【ROS参数服务器】

参数服务器是以共享方式实现不同节点间数据交互的通信方式。主要用于存储多节点共享的数据,类似于全局变量。ROS中的参数服务器主要包含三个角色,分别是ROS Master(节点管理者)、Talker(参数设置者)、Listener(参数使用者),其中Talker和Liste…

创新京东T7开创“新算法宝典”,图文并茂,全新演绎,太酷了

导言 算法是一门学问,但却总遭到一些程序员的冷落。现在的开发人员,更热衷于编程语言的修炼,以应付面试需求时的需要,所以对算法的学习,稍许忽略了些。实际上,近些年来,各互联网公司对于算法的…

【知识梳理】前端路由的两种模式

一、概述 这是几年前写的的一篇文章,发在了简书上面,现在看来仍然有一些不足,所以再次整理一下发在掘金。 二、什么是单页面应用(SPA)? 首先我们需要了解一下前置的基础知识————SPA(单页面…

S3 #DooTrader 经典组冠军以良好盘感,创下近 900% 收益率摘得桂冠

本届 S3 #DooTrader 慈善杯全球交易大赛现已经进入白热化阶段,第二轮赛事冲刺在即,各位选手摩拳擦掌争取赢得最终的丰厚奖金。目前,领先的选手调整策略和仓位,以保持排位优势。我们看到现阶段经典组 TOP 1 选手已经创造了 1,300% …

WMS类图分析-android12

为什么要分析类图? WMS是一个复杂的模块,就像一个很大的家族,里面有各种角色,认识类图就像是认识WMS模块中的各个角色,不先把人认清楚了,怎么更好的理解他们之间的交互? 我觉得,这…

vue+antd搭建后台管理界面模版(PC端),适配中文、英文、日文 mock数据,开箱即用

vueantd搭建后台管理界面模版(PC端) 完整代码下载地址:vueantd搭建后台管理界面模版(PC端) 技术栈 vue2 vuex vue-router webpack ES6/7 axios antd 阿里图标iconfont 项目预览 http://nmgwap.gitee.io/vue…

【软件工程】实验4:校园二手物品交易过程的UI设计

文章目录校园二手物品交易过程的UI设计通过“用户画像”对用户群体进行分析校园二手物品交易过程UI设计(Figma)校园二手物品交易过程的UI设计 通过“用户画像”对用户群体进行分析 大学校园交易市场特点: 容量大。随着我国高等教育近年来的连…

Kubernetes部署_使用kubernetes部署Mysql主从结构(Kubernetes工作实践类)

文章目录一、前言二、实际操作步骤1:编写namespace脚本步骤2:编写configmap脚本步骤3:编写secret脚本(用来存放mysql密码)步骤4:编写initContainer脚本步骤5:编写StorageClass相关脚本1)权限设置&#xff1…