当前位置: 首页 > news >正文

记录一次性能测试遇到的问题

零、压测指标问题

压测指标,一定要需求方定 啊,谁提压测需求,谁来定压测指标。

如果需求方,对压测指标没有概念,研发和测试,可以把历史压测指标、生产数据导出来给需求方看,引导他们来定指标,千万别自己定啊。不然将来大锅要自己背的。

一、环境问题

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>如何取值&#xff1f;查看ProjectConfig.mk 如果MTK_SIGNATURE_CUSTOMIZATIONyes并且MTK_INTERNALno&#xf…...

使用Buildroot制作根文件系统

寒暄几句 学习了uboot、内核、busybox根文件系统&#xff0c;想着做一个音频播放器。最后发现好像busybox好像没有带aplay架构&#xff0c;这就很麻烦需要自己移植。为了简便我就找大佬沟通了一下&#xff0c;大佬推荐了Buildroot工具来制作根文件系统。 平台 开发板&#x…...

Java_Spring:5. 基于注解的 IOC 配置

目录 1 环境搭建 1.1 第一步&#xff1a;拷贝必备 jar 包到工程的 lib 目录。 1.2 第二步&#xff1a;使用Component 注解配置管理的资源 1.3 第三步&#xff1a;创建 spring 的 xml 配置文件并开启对注解的支持 2 常用注解 2.1 用于创建对象的注解 2.1.1 Component 2.1…...

Git下的.gitignore文件

.gitignore .gitignore是一个文件&#xff0c;这个文件用来指定哪些文件提交到 git 管理&#xff0c;也就是 git commit 不会提交这些文件 .gitignore文件的语法 注释 "#" 表示注释 # 注释 忽略指定文件/文件夹 直接写入文件或文件夹名即可&#xff0c;指定文…...

Unity集成GPT

GPT想必是最近互联网最火的话题了&#xff0c;作为一个Unity开发者&#xff0c;今天来介绍一下如何在Unity中使用GPT。 一、API 密钥 使用GPT的API首先要获得密钥&#xff0c;如下进入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&#xff08;前端控制器&#xff09;2 HandlerMapping&#xff08;处理器映射器&#xff09;3 Handler&#xff08;处理器&#xff09;4 HandlerAdapter&#xff08;处理器适配器&#xff09;5 ViewRe…...

2步搞定拼版!AD通用拼版技巧分享!

你是不是也看过很多拼版教程&#xff0c;一整篇文章全部都是文字说明和各种图示&#xff0c;照着一步步去做&#xff0c;都需要一些时间才能勉强搞定。 之前我用过AD20的自带拼版工具&#xff0c;功能上比较简单&#xff0c;而且菜单没有全部汉化&#xff0c;对于新手来说&…...

再学C语言47:字符串输出

C中有3个用于输出字符串的标准库函数&#xff1a;puts()&#xff0c;fputs()&#xff0c;printf() 一、puts()函数 示例代码&#xff1a; /* test of puts() function */ #include <stdio.h>#define ARR_T "I am an array."int main(void) {char str1[100] …...

手把手教你逆向分析PerimeterX px3:从混淆还原到参数解密全流程

逆向工程实战&#xff1a;PerimeterX px3防护体系深度解析与突破 在当今数字化时代&#xff0c;网站安全防护与数据采集之间的博弈从未停止。作为前端安全领域的标杆解决方案&#xff0c;PerimeterX的px3防护机制以其复杂的混淆技术和动态行为分析著称&#xff0c;成为众多安全…...

从开源模型到API服务:OpenClaw部署实战与Docker+FastAPI方案解析

1. 项目概述&#xff1a;从开源模型到可部署服务的跨越最近在折腾大语言模型本地部署的朋友&#xff0c;可能都绕不开一个名字&#xff1a;OpenClaw。这个由智源研究院开源的模型&#xff0c;以其在代码生成和数学推理上的出色表现&#xff0c;吸引了不少开发者和研究者的目光。…...

开源AI智能体技能库:模块化设计赋能AI应用开发

1. 项目概述&#xff1a;一个开源的AI智能体技能库最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫free-ai-agent-skills。光看名字&#xff0c;你可能会觉得这又是一个堆砌各种AI工具调用的代码仓库。但点进去仔细研究后&#xff0c;我发现它的定位和设…...

在多轮对话任务中实测 Taotoken 路由策略对响应成功率的影响

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在多轮对话任务中实测 Taotoken 路由策略对响应成功率的影响 1. 测试背景与场景设定 在开发需要长时间连续交互的对话型应用时&am…...

c++ 动态链接器audit c++如何使用ld_audit监控so加载过程

Oracle监听端口被占用导致TNS-12541错误&#xff0c;需检查并更换端口&#xff08;如1522&#xff09;&#xff0c;同步更新listener.ora、tnsnames.ora及JDBC连接串&#xff0c;重启监听&#xff1b;EM Express需单独配置HTTP端口&#xff1b;Windows下还需手动开放防火墙新端…...

基于MCP协议构建阿里云SLS日志AI查询助手:原理、部署与实战

1. 项目概述&#xff1a;当阿里云SLS遇上MCP如果你正在用阿里云日志服务&#xff08;SLS&#xff09;做日志分析&#xff0c;同时又想用上像Claude、Cursor这类AI编程助手来帮你写查询、分析数据&#xff0c;那你可能已经感受到了一个痛点&#xff1a;如何在AI助手和你的日志数…...

自建轻量级Web监控信标:前端性能与错误数据采集实践

1. 项目概述&#xff1a;一个轻量级、可扩展的Web应用监控信标最近在梳理个人项目和团队内部工具链时&#xff0c;我重新审视了一个名为“beacon”的小工具。这个项目源自一个非常具体的痛点&#xff1a;在开发和运维Web应用时&#xff0c;我们常常需要一种简单、无侵入的方式来…...

PHPExcel样式继承机制:减少代码冗余的终极指南

PHPExcel样式继承机制&#xff1a;减少代码冗余的终极指南 【免费下载链接】PHPExcel ARCHIVED 项目地址: https://gitcode.com/gh_mirrors/ph/PHPExcel 在处理Excel文件时&#xff0c;重复设置单元格样式不仅耗时还会导致代码臃肿。PHPExcel作为一款强大的PHP电子表格处…...

从控制台账单看使用 Taotoken token plan 带来的实际节省

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 从控制台账单看使用 Taotoken token plan 带来的实际节省 在管理大模型 API 调用成本时&#xff0c;除了关注模型单价&#xff0c;…...

魔百盒M301H-ZN代工_HI3798MV300H芯片_8822CS无线模块-深度定制与刷机实战指南

1. 魔百盒M301H-ZN硬件拆解与芯片解析 第一次拿到魔百盒M301H-ZN时&#xff0c;我差点被它朴实无华的外表骗了。拆开底部四颗螺丝后&#xff0c;内部布局清晰地展现在眼前&#xff1a;HI3798MV300H主控芯片位于主板中央&#xff0c;右上角是8822CS无线模块&#xff0c;存储芯片…...