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

性能测试—Jmeter工具

文章目录

    • 性能测试
      • 1. 术语介绍
      • 2. 方法
      • 3. 应用场景
      • 4. 工具(Jmeter)
        • 4.1 介绍
        • 4.2 元件和组件
          • 4.2.2 元件
          • 4.2.1 组件
        • 4.3 作用域
        • 4.4 参数化
        • 4.5 执行脚本


性能测试

1. 术语介绍

  • 响应时间(Response time):对请求作出响应所需要的时间。

    在互联网上对于用户响应时间,有一个普遍的标准。2/5/10秒原则。

  • 并发用户数(concurrent users):在同一时间段内访问系统的用户数量。

  • 吞吐量(Throughput):单位时间内系统处理的客户请求的数量。

    对web系统, 吞吐量主要以请求数/秒页面数/秒或是字节数/秒来体现。

  • 性能计数器(Counter):描述服务器或操作系统性能的指标

    如: windws系统的使用内存数(Memory In Usage)、**进程时间(Total Process Time)**等。

  • 思考时间(Think time):也称”休眠时间” 或”等待时间”。

    从业务角度讲, 是指用户进行操作时,每个请求之间的间隔时间。

2. 方法

  • 负载测试(Loading Testing): 通过不断在被测系统上增加压力,直到性能指标超过预定指标或者系统资源使用已达到饱和状态

    这种测试方法的主要目的是找到系统处理能力的极限, 使用这种测试方法的时候应该考虑到业务的应用场景是否符合业务的实际特点,这样才能使得测试结果具有实际意义。

  • 压力测试(Stress Testing): 是测试系统在一定饱和状态下,(例如: CPU、内存)等在饱和使用情况下,能够处理的会话能力以及系统是否会出现错误

    这种测试方法主要检查系统处于压力情况下的应用表现, 一般通过模拟负载等方法使系统资源使用达到较高的水平(如:CPU使用率达到75%以上,内存使用率达到70%以上的情况下, 测试系统的响应时间,系统有没有出现错误, 使用这种方法一般用于测试系统的稳定性)

3. 应用场景

  • 能力验证:

    指验证系统在某种条件下是否达到了某种性能,如验收测试。

  • 能力规划:

    指验证系统是否满足在未来一段时间的用户增长需求。

  • 性能调优:

    指发现系统性能瓶颈后,需要对针对系统某些方面作出调整以解决瓶颈问题。

  • 缺陷发现:

    指以发现缺陷为主要目的,而将性能测试作为一种手段。

4. 工具(Jmeter)

4.1 介绍

Apache JMeterApache组织开发的基于Java的性能测试工具。用于对软件做性能测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。JMeter可以用于测试FTP、HTTP、RPC、JUNIT、JMS、LDAP、WebService(Soap) Request以及Mail和JDBC(数据库性能测试)。也会被用来做回归和功能测试

4.2 元件和组件

4.2.2 元件
  • 多个类似功能组件的容器(类似于类)

在这里插入图片描述

4.2.1 组件
  • 实现独立的某个功能(类似方法)

4.3 作用域

  • 作用域原则
    • 取样器:核心,不和其他元件相互作用,没有作用域。
    • 逻辑控制器:只对其子节点中的取样器和逻辑控制器起作用。
    • 其他元件:
      • 如果父节点是取样器,该元件只对父节点起作用。
      • 如果父节点不是取样器,其作用域是父节点下的所有子节点及其后代节点。

4.4 参数化

  1. 用户定义的变量(配置元件的组件)

  2. csv数据文件设置

  3. 用户参数(前置处理器的组件)

  4. 函数

    __counter:计数器函数(True:每个用户独立的计数器;False:全局计数器)

    __Random:随机数函数(参数一:范围最小值;参数二:范围最大值)

    __time:获取当前时间函数(无参:获取时间戳;参数一:格式化时间 yyyy-MM-dd hh:mm:ss)

4.5 执行脚本

jmeter –n –t zentao.jmx –l result.txt -e -o ./report –JthreadCount=3600 –Jtime=120# -n 无图形化运行
# -t 运行脚本文件
# -l 将运行信息写入日志文件
# -e 生成测试报告
# -o 指定报告输出路径

未完待续···············

相关文章:

性能测试—Jmeter工具

文章目录 性能测试1. 术语介绍2. 方法3. 应用场景4. 工具(Jmeter)4.1 介绍4.2 元件和组件4.2.2 元件4.2.1 组件 4.3 作用域4.4 参数化4.5 执行脚本 性能测试 1. 术语介绍 响应时间(Response time):对请求作出响应所需要的时间。 在互联网上对…...

【分布式系统】聊聊高性能设计

每个程序员都应该知道的数字 高性能 对于以上的数字,其实每个程序员都应该了解,因为只有了解这些基本的数字,才能知道对于CPU、内存、磁盘、网络之间数据读写的时间。1000ms 1S。毫秒->微秒->纳秒-秒->分钟 为什么高性能如此重要的…...

自动驾驶数据集汇总

1.Nuscenes 数据集链接:nuScenes nuscenes数据集下有多个任务,涉及Detection(2D/3D)、Tracking、prediction、激光雷达分割、全景任务、规划控制等多个任务; nuScenes数据集是一个具有三维目标注释的大型自动驾驶数…...

面向对象的基本原则

背景 面向对象是抽象技术的一种实现,将对象作为真实世界中实体的抽象,代表了特定的一块密集而内聚的信息。在面向对象设计及实现中,重点考虑的就是如何做到关注点分离。因为对象内的联系通常比对象间的联系更强。关注点分离就是将对象中高频…...

C语言开发基础知识(一)

文章目录 数据类型宏变量函数inline 内联函数static 关键字的作用const 关键字的作用extern 关键字的作用volatile 关键字的作用include 关键字的作用数组、字符串指针堆内存管理结构体文件操作数据类型 C语言中数据类型分有符号和无符号,默认是有符号的。 有符号类型: 数据…...

​API网关类型与区别​

什么是API网关? 在现代软件架构中,API(应用程序编程接口)网关起着重要的作用。它是一个中间层,用于管理和控制应用程序之间的通信。API网关可以提供一些关键功能,如流量控制,安全认证&#xff…...

linux:nginx网站升级至http2

参考: 怎样把网站升级到http/2 - 知乎 HTTP/2 与 HTTP/1.1:它们如何影响 Web 性能? | Cloudflare 总结: nginx.conf修改 http2需要ssl支持 listen 443 ssl http2;...

Flutter:屏幕适配

flutter_screenutil flutter_screenutil是一个用于在Flutter应用程序中进行屏幕适配的工具包。它旨在帮助开发者在不同屏幕尺寸和密度的设备上创建响应式的UI布局。 flutter_screenutil提供了一些用于处理尺寸和间距的方法,使得开发者可以根据设备的屏幕尺寸和密度…...

中科亿海微ROM使用

标题 ROM(Read-Only Memory,只读存储器)是一种在FPGA(Field-Programmable Gate Array,现场可编程门阵列)中常用的存储器类型。与RAM(Random Access Memory,机存取存储器)…...

Python接口自动化测试之UnitTest详解

基本概念 UnitTest单元测试框架是受到JUnit的启发,与其他语言中的主流单元测试框架有着相似的风格。其支持测试自动化,配置共享和关机代码测试。支持将测试样例聚合到测试集中,并将测试与报告框架独立。 它分为四个部分test fixture、TestC…...

python——案例17:判断某年是否是闰年

案例17:判断某年是否是闰年 判断依据:闰年就是能被400整除,或者能被4整除的年份numint(input(输入年份:))if num%1000: if num%4000: #整百年份的判断print("%s年是闰年"%num) #…...

allure测试报告

使用pytest结合Allure进行测试报告生成的简单教程 allure测试报告 Allure基于Java开发,因此我们需要提前安装Java 8或以上版本的环境。 ◆安装allure-pytest插件在DOS窗口输入命令“pip3 install allure-pytest”,然后按“Enter”键。 下载安装Allure…...

Vue 路由懒加载

Vue 路由懒加载 随着 Web 应用的复杂性不断增加,性能优化成为了开发人员必须面对的挑战之一。Vue 路由懒加载是一项关键技术,它可以帮助我们提高 Web 应用的加载速度,从而提升用户体验。 在本篇技术博文中,我们将深入探讨 Vue 路…...

软件设计师(七)面向对象技术

面向对象: Object-Oriented, 是一种以客观世界中的对象为中心的开发方法。 面向对象方法有Booch方法、Coad方法和OMT方法等。推出了同一建模语言UML。 面向对象方法包括面向对象分析、面向对象设计和面向对象实现。 一、面向对象基础 1、面向对象的基本…...

Qt中将信号封装在一个继承类中的方法

QLabel标签类对应的信号如下: Qt中标签是没有双击(double Click)这个信号的; 需求一:若想双击标签使其能够改变标签中文字的内容,那么就需要自定义一个“双击”信号,并将其封装在QLabel类的派生…...

Docker介绍

1. docker是什么 1.1 为什么会有docker出现? 假设你在开发一个项目的时候,你使用的是windows系统而且你的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。你正在开发的应用依赖于你当前的配置而且还要依赖于某些配置文件。此外&#xf…...

C++红黑树

一、红黑树的概念 红黑树是一种二叉搜索树,在其每个节点上增加一个存储位用于表示节点的颜色,可以是Red或Black 通过对任何一条从根到叶子的路径上的各个节点着色方式的限制,红黑树确保没有一条路径比其他路径长两倍 红黑树的性质&#xff…...

LangChain与大模型的学习ing

大模型的菜鸟初学习 一、问题记录1、库的版本问题 二、实例记录1、公司名生成2、提示模板的使用3、LLM Chain4、LLMMemory5、聊天语言API 参考资料 一、问题记录 1、库的版本问题 openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(ho…...

Go把Map转成对象

最近使用了Redis的Hash,把一个对象给存储到了hash里面,具体如下: 现在需要从RedisHash缓存里面把结果给取出来,同时赋值到一个对象上面 result, err : global.GVA_REDIS.HGetAll(context.Background(), key).Result() 问题是resul…...

Java-网络编程

TCP TCP(Transmission Control Protocol)是一种在计算机网络中用于可靠数据传输的协议。它是一种面向连接的协议,确保数据在发送和接收之间的可靠性和有序性。以下是TCP是如何工作的简要概述: 建立连接: 当两台计算机…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能

指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...

Python第七周作业

Python第七周作业 文章目录 Python第七周作业 1.使用open以只读模式打开文件data.txt,并逐行打印内容 2.使用pathlib模块获取当前脚本的绝对路径,并创建logs目录(若不存在) 3.递归遍历目录data,输出所有.csv文件的路径…...