记录一次性能测试遇到的问题
零、压测指标问题
压测指标,一定要需求方定 啊,谁提压测需求,谁来定压测指标。
如果需求方,对压测指标没有概念,研发和测试,可以把历史压测指标、生产数据导出来给需求方看,引导他们来定指标,千万别自己定啊。不然将来大锅要自己背的。
一、环境问题
1、保证本地环境(jmeter版本、jdk版本)与Linux负载机环境一致,不然可能会报错。
jmeter脚本,要禁用掉多余的插件(查看结果树、曲线图之类的)。
2、jmeter内存设置
要保证jmeter有足够的内存,不然启动或者写日志的时候,会内存不足的错误。
3、确认一下linux负载机,网络与被测系统的ulr是否时通的。可能会遇到ping不通的情况,可能是运维做了某些限制,及时与运维沟通
4、负载机与被测系统,要在同一个局域网内,为了避免网络带宽的限制,以至于负载机给不了足够的压力。
5、提前与开发/运维人员,确认被压测系统有没有过载保护之类的,比如有的有ip限制,同一个ip只能并发3个请求。
二、数据问题
2.1 系统体量
背景:为了测试在一定用户体量下的性能表现,需要提前向数据库中注入100万的用户数据。
1、向数据库注入数据之前,要确保造数据的脚本是正确的。需要先在其他备份数据库里尝试一下,不要造成脏数据
2、向数据库注入数据之前,要提前将现有数据备份一下,避免造数据,将现有数据弄乱。
2.2 压测使用的数据问题
1、要压测登录功能,需要提前准备十万条登录数据。将数据从数据库导出来后,要提前校验一下这十万条数据是否都可以用。
三、脚本问题
1、有的脚本,在低并发的时候不会报错,但是在高并发的时候会报错。
比如登录问题,当高并发的时候,会出现几个线程使用同一个账号进行登录,导致登录失败。
解决办法:
a、增大登录用户的数据量
b、使用循环控制器,依次读取数据
2、 缓存因素影响
查询类接口,是否有缓存,我们压测的策略也是不一样的。
在写压测脚本时,及时与开发沟通,哪些接口是否涉及到缓存影响。
或者我们直接使用参数化,这样即使有缓存,也会避免缓存的影响。(当然最好提前与开发确认一下哪些是否有缓存)
3、加密、验签等需要脚本处理
在压测接口的时候,有时候需要提前处理数据,加密啊、验签等。一定要使用java来处理这些,不要用js等这些歪门邪道的语言。
同样一个验签处理,用js处理,2分钟,打出了8000个样本请求。
用java处理,2分钟打出了300000个请求。 js脚本严重制约了性能。
四、流程问题
1、提前与运维、业务方、开发测试等项目相关人员确定是否对他们有影响
2、第三方依赖。有的系统需要依赖第三方,需要做挡板处理。
五、压测数据收集
记录压测开始与结束的时间很重要,方便开发查询定位问题。
使用命令:
jmeter -n -t /home/test.jmx -l /home/xx.jtl -e -o /home/xx_report/
生成的report index.html 会记录压测开始与结束时间。手动记录一下也可以。
相关文章:
记录一次性能测试遇到的问题
零、压测指标问题 压测指标,一定要需求方定 啊,谁提压测需求,谁来定压测指标。 如果需求方,对压测指标没有概念,研发和测试,可以把历史压测指标、生产数据导出来给需求方看,引导他们来定指标&…...
C++运算符重载基础教程
所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同…...
Git命令总结
全局配置 git config --global user.name ‘你的名字’ git config --global user.email ‘你的邮箱’ 当前仓库配置 git config --local user.name ‘你的名字’ git config --local user.email ‘你的邮箱’ 查看 global 配置 git config --global --list 查看当前仓库…...
【车载以太网】BCM89572A0BCFBG、BCM89559GB0BCFBG、BCM89559GA0BCFBG具有安全启动和安全通信功能
BCM89572A0BCFBG 设备是Broadcom第六代完全集成的L2多层开关解决方案,支持车载网络应用的汽车认证(AEC-Q100)和温度等级。BCM8956X系列产品为汽车行业提高了具有多种一流功能的交换机的标准,例如802.1AE MACsec等集成安全功能,增加了主机连接…...
Lighttpd入门教程
Lighttpd入门教程概述入门教程安装配置静态文件服务动态文件服务虚拟主机SSL启动服务器日志模块总结lighthttpd使用场景和原理使用场景原理概述 Lighttpd(也称为轻量级HTTP服务器)是一款快速、灵活、轻量级的Web服务器,旨在提供高性能和低资…...
Springboot 多线程分批切割处理 大数据量List集合 ,实用示例
前言 哲学提问镇贴: 不了解异步怎么使用的看官, 可阅: SpringBoot 最简单的使用异步线程案例 Async_小目标青年的博客-CSDN博客 Springboot Async异步扩展使用 结合 CompletableFuture_小目标青年的博客-CSDN博客 想了解更多关于批量list处…...
SQLMAP工具基础使用
本文用的是kali自带的sqlmap工具 我们通过常用命令来理解sqlmap的基本使用 目录 检测注入 获取敏感信息 获取表 获取表的字段 获取数据 --technique 使用指定的注入方式 使用基于时间的延时注入 支持多种注入检测 默认是全部 注入时使用随机的 HTTP User-Agent 设置超时时间 读…...
初学多线程爬虫
多线程在爬虫中应用非常广泛,对于中大型项目来说很有必要,今天我将以初学者的姿态来完成一个简单的多线程爬虫程序。 1、如何认识多线程 计算机完成一项或多项任务,往往可以存在很高的并行度:若是多核处理器则天然的可以同时处理…...
python-实验报告-3
1、编写程序,用户输入一个五位整数,输出其千位和十位数字之和。 num int(input()) # 12345 s1 (num//1000)%10 s2 (num//10)%10sum s1 s2 print(sum)心得: 首先,程序通过 input() 函数获取用户输入的整数,保存在…...
00_托管网站在Tor网络上_Ubuntu主机
title: 托管网站在Tor网络上 urlname: 00_托管网站在Tor网络上_Ubuntu主机 date: 2017-04-24 03:03:03 tags: 小技巧 categories: [小技巧] 托管网站在Tor网络上(Ubuntu主机)https://www.t00ls.net/thread-44040-1-1.html 大部分人接触Tor网络是由Tor …...
个人练习-Leetcode-659. Split Array into Consecutive Subsequences
题目链接:https://leetcode.cn/problems/split-array-into-consecutive-subsequences/ 题目大意:给出一个非递减数列nums[],判断其是否能被分割成若干个满足以下条件的子列: 长度大于等于3元素严格递增且只相差1 子列的含义是&…...
OTA升级差分包签名
制作差分包时添加-k <key_path>参数 ./build/tools/releasetools/ota_from_target_files -k <key_path> -i old.zip new.zip update.zip<key_path>如何取值?查看ProjectConfig.mk 如果MTK_SIGNATURE_CUSTOMIZATIONyes并且MTK_INTERNALno…...
使用Buildroot制作根文件系统
寒暄几句 学习了uboot、内核、busybox根文件系统,想着做一个音频播放器。最后发现好像busybox好像没有带aplay架构,这就很麻烦需要自己移植。为了简便我就找大佬沟通了一下,大佬推荐了Buildroot工具来制作根文件系统。 平台 开发板&#x…...
Java_Spring:5. 基于注解的 IOC 配置
目录 1 环境搭建 1.1 第一步:拷贝必备 jar 包到工程的 lib 目录。 1.2 第二步:使用Component 注解配置管理的资源 1.3 第三步:创建 spring 的 xml 配置文件并开启对注解的支持 2 常用注解 2.1 用于创建对象的注解 2.1.1 Component 2.1…...
Git下的.gitignore文件
.gitignore .gitignore是一个文件,这个文件用来指定哪些文件提交到 git 管理,也就是 git commit 不会提交这些文件 .gitignore文件的语法 注释 "#" 表示注释 # 注释 忽略指定文件/文件夹 直接写入文件或文件夹名即可,指定文…...
Unity集成GPT
GPT想必是最近互联网最火的话题了,作为一个Unity开发者,今天来介绍一下如何在Unity中使用GPT。 一、API 密钥 使用GPT的API首先要获得密钥,如下进入OpenAI官网(https://platform.openai.com/account/api-keys)–>选择自己的账号–>查…...
Xilinx FPGA Multiboot设计与实现(Spartan-6和Kintex-7为例)
文章目录 1. FPGA固件升级方案2. Golden镜像和Multiboot镜像简介3. ISE环境下实现(XC6SLX9)4. Vivado环境下实现(XC7K325T)5. Golden镜像Header分析6. 参考资料7. 示例工程ISE、Vivado、MicroBlaze系列教程 1. FPGA固件升级方案 FPGA的硬件可编程性给设计带来了很高的灵活…...
14、SpringMVC执行流程
文章目录14、SpringMVC执行流程14.1、SpringMVC常用组件1 DispatcherServlet(前端控制器)2 HandlerMapping(处理器映射器)3 Handler(处理器)4 HandlerAdapter(处理器适配器)5 ViewRe…...
2步搞定拼版!AD通用拼版技巧分享!
你是不是也看过很多拼版教程,一整篇文章全部都是文字说明和各种图示,照着一步步去做,都需要一些时间才能勉强搞定。 之前我用过AD20的自带拼版工具,功能上比较简单,而且菜单没有全部汉化,对于新手来说&…...
再学C语言47:字符串输出
C中有3个用于输出字符串的标准库函数:puts(),fputs(),printf() 一、puts()函数 示例代码: /* test of puts() function */ #include <stdio.h>#define ARR_T "I am an array."int main(void) {char str1[100] …...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
