使用Jmeter做性能测试的注意点

一、性能测试注意点
1. 用jmeter测试时使用BeanShell脚本获取随机参数值,会导致请求时间过长,TPS过低。应改为使用csv读取参数值,记录的TPS会更加准确。

  注:进行性能测试时,应注意会影响请求时间的操作,尽量避免因为测试方法不当影响测试结果。

2. 进行稳定性测试前,尽量对Jmeter进行减负,避免运行时间过长,导致Jmeter卡死。

减负方式:

(1)参数写死或者直接读取csv的数值,减少程序负荷

(2)并发线程不要设置太高,设置200以下

(3)“察看结果树”勾选“仅日志错误”,尽可能减少jvm内存使用

(4)可添加“Simple Data Writer”且保存为csv格式数据

(5)其他监听组件可以都禁掉,通过保存的数据线下生成图标报告

 3. 注意如果服务重启后,PID会发生变化,通过命令行方式收集CPU、内存使用数据时,要使用最新的PID进行采集:

ps -ef | grep test  查询进程号,test为服务名关键字

top -b -d 1 -p 34012 > 1117_log  其中34012为PID,1117_log为需要记录的日志名(不存在会自动新建文档)

4. 如果勾选了CPU等监听组件,需要先启动代理服务:

cd ../tmp/ServerAgent-2.2.3

执行./startAgent.sh

5.使用jp@gc - PerfMon Metrics Collector性能测试工具时,要在运行压力测试前开启性能监控,否则可能会造成压力测试期间的性能测试数据缺失而造成性能分析不准确。

6. 进行压力测试时,逐步增加并发量,直至能够明显看出性能瓶颈为止

二、性能指标分析

聚合报告各项性能指标

聚合报告常用指标

Label

每个JMeter的element(例如 HTTP Request)都有一个Name属性,这里显示的就是Name属性的值

Samples

请求次数(=线程数*循环次数)

Average

平均响应时间

Median

中位数,也就是50%用户的响应时间

90% Line

90%用户的响应时间

95% Line

95%用户的响应时间

Min

最小响应时间

Max

最大响应时间

Error%

本次测试中出现错误的请求的数量/请求的总数

Throughput

吞吐量——默认情况下表示每秒完成的请求数(Request per Second)

KB/Sec

每秒从服务器端接收到的数据量

接口性能测试指标一般通过标准:

性能测试指标通过标准

需满足的并发数
(举例:每天8W用户访问,平均在线时长10分钟,1天用户24小时内使用系统)
C = 80000 * 0.166/24=553
注:0.166为10/60得出

C = nL/T
C^= C + 3*根号C 
其中C为平均并发用户数,n为login session的数量,L是login session的平均长度,T是值考察的时间长度
C^为并发用户数峰值

需要满足的TPS
TPS = (80000*80%)/(20%*8*60*60)=11/sec

根据二八原则:
20%常用时间,满足80%业务量
TPS = n*80%/(20%*活跃时间*60*60)
注:活跃时间一般为8小时

响应时间

根据在并发情况下的响应时间2/5/10原则,最长不能超过10s

错误率

具体系统具体要求,一般小于万分之一

缓存命中率

具体系统具体要求,一般大于85%通过

CPU占用率

70% 好,85% 坏,90%+ 很差

内存使用率

一般小于80%通过
 

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

 我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

 文档获取方式:点击右边链接领取:软件测试全套资料分享      

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

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

相关文章

[JVM 基础 - Java 类加载机制]

这篇文章将带你深入理解Java 类加载机制。 JVM 基础 - Java 类加载机制 类的生命周期 类的加载: 查找并加载类的二进制数据连接 验证: 确保被加载的类的正确性准备: 为类的静态变量分配内存,并将其初始化为默认值解析: 把类中的符号引用转换为直接引用初始化使用卸…

1-4、JDK目录结构

语雀原文链接 文章目录 1、目录结构2、JDK中rt.jar、tools.jar和dt.jar作用3、bin目录部分说明(基本工具) 1、目录结构 bin目录:包含一些用于开发Java程序的工具,例如:编译工具(javac.exe)、运行工具 (java.exe) 、打…

菜鸟学习日记(python)——循环语句

python中的循环语句包括for循环语句和while循环语句,但是python中是没有do...while循环语句的。 while循环语句 while循环语句的一般格式为; while condition:loop body condition是循环判断条件,loop body是循环体。 当循环条件成立时,…

基于ssm的彩妆小样售卖商城的设计与实现论文

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于彩妆小样售卖商城当然也不能排除在外,随着网络技术的不断成熟,带动了彩妆小样售卖商城,它彻底改变了过…

RUST博客帖子编辑示例

状态模式(state pattern)是一种面向对象的设计,它的关键点在于:一个值拥有的内部状态由数个状态对象(state object)表的而成,而值的行为则随着内部状态的改变而改变。 下面的示例用来实现发布博…

Leetcode—231.2的幂【简单】

2023每日刷题&#xff08;五十四&#xff09; Leetcode—231.2的幂 实现代码 class Solution { public:bool isPowerOfTwo(int n) {if(n < 0) {return false;}long long ans 1;while(ans < n) {ans * 2;}if(ans n) {return true;}return false;} };运行结果 之后我会…

时间序列预测专栏介绍 — 算法原理、源码解析、项目实战

专栏链接&#xff1a;https://blog.csdn.net/qq_41921826/category_12495091.html 专栏内容 所有文章提供源代码、数据集、效果可视化 文章多次上热搜榜单 时间序列预测存在的问题 现有的大量方法没有真正的预测未来值&#xff0c;只是用历史数据做验证 利用时间序列分解算法存…

【Vue第3章】使用Vue脚手架_Vue2

目录 3.1 初始化脚手架 3.1.1 说明 3.1.2 具体步骤 3.1.3 模板项目的结构 3.1.4 笔记与代码 3.1.4.1 笔记 3.1.4.2 01_src_分析脚手架 3.2 ref与props 3.2.1 ref 3.2.2 props 3.2.3 笔记与代码 3.2.3.1 笔记 3.2.3.2 02_src_ref属性 3.2.3.3 03_src_props配置 3…

根据应聘者的姓名和所学专业判断是否需要这样的程序设计人员

一、程序分析 导入Scanner函数&#xff0c;分别输入应聘者的姓名和应聘者所学的程序设计语言。 二、具体代码 import java.util.Scanner; public class Recruitment {public static void main(String[] args){try (Scanner scan new Scanner(System.in)) {System.out.prin…

Spring Boot 3 整合 Mybatis-Plus 实现动态数据源切换实战

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

1-5、JDK API文档

语雀原文链接 文章目录 jdk1.8中文.CHM JDK8中文在线文档&#xff1a;https://www.matools.com/api/java8Java11中文在线文档&#xff1a;https://www.matools.com/api/java11

CEEMDAN-Transformer时间序列预测实战完整代码数据可直接运行

项目视频讲解: CEEMDAN-Transformer时间序列预测实战完整代码数据_哔哩哔哩_bilibili 完整代码: import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler import torch import to…

ROS-log功能区别

ROS使用rosout包来记录各个节点的log信息&#xff0c;通常这些log信息是一些可以读懂的字符串信息&#xff0c;这些信息一般用来记录节点的运行状态。 ROS有五种不同类型的log信息&#xff0c;分别为&#xff1a;logdebug、loginfo、logwarn、logerr、logfatal。 等级由低到高&…

GO设计模式——6、原型模式(创建型)

目录 原型模式&#xff08;Prototype Pattern&#xff09; 优缺点 使用场景 注意事项 代码实现 原型模式&#xff08;Prototype Pattern&#xff09; 原型模式&#xff08;Prototype Pattern&#xff09;是用于创建重复的对象&#xff0c;同时又能保证性能。这种类型的设计…

m_map导入本地地形数据

m_map绘制地形图时&#xff0c;虽然自带有1的地形图以及从NOAA下载的1分的地形图&#xff08;详见&#xff1a;Matlab下地形图绘图包m_map安装与使用&#xff09;&#xff0c;但有时需要对地形图分辨率的要求更高&#xff0c;便无法满足。 此时&#xff0c;需要导入本地地形数…

算法Day22 星南二楼(最长升序子序列)

星南二楼&#xff08;最长升序子序列&#xff09; Description Input Output Sample 代码 import java.util.*;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int[] grid new int[n];for(int j0;j&l…

selenium火狐避免被检测向ChartGPT的有效提问

问题描述 当我们问 ChartGPT 如果解决 selenium 被屏蔽问题的时候&#xff0c;它总是回答解决问题的方向&#xff0c;没有给出具体怎么用代码实现。 问题原因 1、可能是描述不清晰 没有告诉GPT使用什么编程语言&#xff0c;没有说明使用火狐还是谷歌浏览器&#xff0c;没有…

深入解析NK模型:复杂适应性系统的演化之谜

NK模型是一种用于研究复杂适应性系统的数学模型&#xff0c;最初由生物学家 Stuart Kauffman 于1993年提出。这模型的目的是模拟生物进化过程中的复杂性&#xff0c;并通过网络结构和相互作用来研究解空间的性质。 目录 一、NK模型介绍1. 模型基础2. 模型参数3. 适应性函数4..…

ubuntu里安装docker

1、更新软件包 在终端中执行以下命令来更新Ubuntu软件包列表和已安装软件的版本: sudo apt update sudo apt upgrade 2、安装docker依赖 Docker在Ubuntu上依赖一些软件包。执行以下命令来安装这些依赖: apt-get install ca-certificates curl gnupg lsb-release 3、添加Do…

postman接口自动化测试

Postman除了前面介绍的一些功能&#xff0c;还有其他一些小功能在日常接口测试或许用得上。今天&#xff0c;我们就来盘点一下&#xff0c;如下所示&#xff1a; 1.数据驱动     想要批量执行接口用例&#xff0c;我们一般会将对应的接口用例放在同一个Collection中&#xf…