jemter基本使用(一)

转自:http://www.cnblogs.com/fnng/archive/2012/12/22/2829479.html

 

 

创建一个简单的测试计划来使用这些元件。该计划对应的测试需求。

1)测试目标网站是fnng.cnblogs.com  和 tt-topia.rhcloud.com

2)测试目的是该网站在负载达到20 QPS 时的响应时间。

 

QPS 解释

  QPS : Query Per Second 每秒查询率。是一台查询服务器每秒能够处理的查询次数。在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。

 

  为了达成预期的测目的,需要需要在jmeter中建立一个测试计划。因为本次测试仅要求完成对fnng.cnblogs.com  和 tt-topia.rhcloud.com 两个博客首页请求,因此只需要使用HTTP Request Sampler 即可。

 

建立测试计划

   启动jmeter后,jmeter会自动生成一个空的测试计划,用户可以基于该测试计划建立自己的测试计划。

 

添加线程组

一个性能测试请求负载是基于一个线程组完成的。一个测试计划必须有一个线程组。测试计划添加线程组非常简单。在测试计划右键弹出下拉菜单(添加-->Threads(Users)--->线程组)中选择线程组即可。

   jmeter中 每个测试计划至少需要包含一个线程组,当然也可以在一个计划中创建多个线程组,那么多个线程组之间又会怎样的顺序执行(串行还是并行)?在测试计划下面多个线程是并行执行的,也就是说这些线程组是同时被初始化并同时执行线程组下的Sampler的。

 



 
 线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。

线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。

准备时长: 设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。

循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。

  设置合理的线程数对于能否达到测试目标有决定性的影响。在本例中,要求得到网站首页在20 QPS 负载情况下的响应时间,如果如果线程数量设置的过小,则很可能无法达到设定的QPS要求。另外,设置合理的循环次数也很重要,除了上面介绍的固定循环次数与永远外;也可以灵活的选择设定测试运行时间。勾选“调度器”,进行调度器配置。

添加HTTP请求

添加完成线程组后,在线程组上右键菜单(添加--->Sampler--->HTTP请求)选择HTTP请求。对于jmeter来说,取样器(Sampler)是与服务器进行交互的单元。一个取样器通常进行三部分的工作:

向服务器发送请求

记录服务器的响应数据

记录相应时间信息



 

 
一个HTTP请求有着许多的配置参数,下面将详细介绍:

名称:本属性用于标识一个取样器,建议使用一个有意义的名称。

注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。

服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。

端口号:目标服务器的端口号,默认值为80 。

协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https ,默认值为http 。

方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。

Content encoding :内容的编码方式,默认值为iso8859

路径:目标URL路径(不包括服务器地址和端口)

自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。

Use keep Alive : 当该选项被选中时,jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信,默认选中。

Use multipart/from-data for HTTP POST :当发送HTTP POST 请求时,使用Use multipart/from-data方法发送,默认不选中。

同请求一起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。

同请求一起发送文件:在请求中发送文件,通常,HTTP文件上传行为可以通过这种方式模拟。

从HTML文件获取所有有内含的资源:当该选项被选中时,jmeter在发出HTTP请求并获得响应的HTML文件内容后,还对该HTML进行Parse 并获取HTML中包含的所有资源(图片、flash等),默认不选中,如果用户只希望获取页面中的特定资源,可以在下方的Embedded URLs must match 文本框中填入需要下载的特定资源表达式,这样,只有能匹配指定正则表达式的URL指向资源会被下载。

用作监视器:此取样器被当成监视器,在Monitor Results Listener 中可以直接看到基于该取样器的图形化统计信息。默认为不选中。

Save response as MD5 hash? :选中该项,在执行时仅记录服务端响应数据的MD5值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销。

 

在这里我们添加两个HTTP请求,分别用于对fnng.cnblogs.com  和 tt-topia.rhcloud.com发送请求。

 

设置QPS限制

 

  本次性能测试的需求中提到测试的目的是“了解博客的首页在负载达到20 QPS时的响应时间”,因此需要控制向博客首页发送请求的负载为20QPS。

  一种可行的方法是逐步调整测试计划中的线程计算的数量以及为取样器(Sampler)添加定时器(Timer),以使HTTP取样器发出的请求的QPS保持在20个左右。但这种方法耗时耗力,需要经过多次尝试才能达到;另一方法,完全通过设置定时器来控制QPS,一旦取样器的响应时间发生改变(网络环境发生改变),就需要重新调整定时器的等待时间。

  Jmeter提供了一个非常有用的定时器,称为Constant Throughput Timer (常数吞吐量定时器),该定时器可以方便地控制给定的取样器发送请求的吞吐量。

  右键点击fnng.cnblogs.com ,弹出菜单(添加--->定时器--->Constant Throughput Timer)选择Constant Throughput Timer



 

 
Constant Throughput Timer 的主要属性介绍:

名称 :定时器的名称

Target throughput(in samples per minute):目标吞吐量。注意这里是每分钟发送的请求数,因此,对应测试需求中所要求的20 QPS ,这里的值应该是1200 。

Calculate Throughput based on :有5个选项,分别是:

  This thread only :控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的 target Throughput 乘以矣线程的数量。

  All active threads : 设置的target Throughput 将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程。

  All active threads in current thread group :设置的target Throughput将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和All active threads选项的效果完全相同。

  All active threads (shared ):与All active threads 的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。

  All cative threads in current thread group (shared ):与All active threads in current thread group 基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。

 

  如上图,该元件仅作用于fnng.cnblogs.com ,设置定时器的Target throughput为1200/分钟(20 QPS),设置Calculate Throughput based on 的值为All active threads 。

  当然,Constant Throughput Timer只有在线程组中的线程产生足够多的request 的情况下才有意义,因此,即使设置了Constant Throughput Timer的值,也可能由于线程组中的线程数量不够,或是定时器设置不合理等原因导致总体的QPS不能达到预期目标。

 

 

添加监听器(Listener)

脚本的主要部分设置完成后,需要通过某种方式获得性能测试中的测试结果,在本例中,我们关心的是请求的响应时间。

  Jmeter 中使用监听器元件收集取样器记录的数据并以可视化的方式来呈现。Jmeter有各种不同的监听器类型,因为上HTTP请求,我们可在添加聚合报告,更为直观的查看测试结果。

  添加聚合报告,右键点击线程组,在弹的菜单(添加--->监听器--->聚合报告)中选择聚合报告。



 
添加结果树

图形结果树:以结果树的形式显示测试结果。

Thread Name: 线程组名称

Sample Start: 启动开始时间

Load time: 加载时长

Latency:  等待时长

Size in bytes: 发送的数据总大小

Headers size in bytes: 发送头大小

Body size in bytes: 发送数据的其余部分大小

Sample Count: 发送统计

Error Count: 交互错误统计

Response code: 返回码

Response message: 返回信息

Response headers: 返回的头部信息



 运行脚本

添加完成聚合报告后,我们来运行脚本,稍后介绍聚合报告的参数。

  在运脚本之前,我们来查看一下,各个元件的参数设置:

--------------------------------------------------------------- 

线程组:

线程数:20

准备时长: 10

循环次数:10

---------------------------------------------------------------  

HTTP请求:

名称:fnng.cnblogs.com。

服务器名称或IP :fnng.cnblogs.com

端口号:80 

Implementation : java 

协议: http

方法: GET

路径:/

---------------------------------------------------------------  

常数吞吐量定时器:

Target throughput(in samples per minute):1200.0

Calculate Throughput based on :All active threads

---------------------------------------------------------------  

点击工具栏上的运行按钮,或者点击菜单栏“ 运行--->启动 ” 或者使用快捷键ctrl+r 来运行程序。

 

 

 

 

聚合报告分析

查看聚合报告的运行结果:

 
查看结果树结果:



 

Term

Definition

Label

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

#Samples

表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average

平均响应时间——默认情况下是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间

Median

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

90%line

90%用户的响应时间

Min

最小响应时间

Max

最大响应时间

Error%

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

Throughput

吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了Transaction Controller时,也可以表示类似LoadRunner的Transaction per Second数

KB/sec

每秒从服务端接收到的数据量,相当于LoadRunner中的Throughput/sec

高通camera open代码流程(hal到kernel) 内容:简单介绍Camera open代码调用流程,从HAl到kernel。(api1+hal1) 前言 Android camera api和hal对应关系。安卓在版本更新过程中,camera相关代码也经历了几个版本的更新,表现为camera HAL版本更新(HAL1->HAL2->HAL3),camera API版本更新(camera API1->camera API2),接下... 阅读详情

相关推荐

ArcGIS中地理坐标系与投影坐标系以及投影转换

简单介绍arcgis软件中坐标系定义、设置和常见问题。

weixin_41399650的博客 8万+

能涨薪3k的jmeter接口测试 接口自动化测试全套教程

作用描述:HTTP Cookie管理器可以像浏览器一样存储和发送cookie,如果你要发送一个带cookie的http请求,cookie manager会自动存储该请求的cookies,并且后面如果发送同源站点的http请求时,都可以用这个cookies。2.CSV——选择测试计划,右键-->添加-->元件-->CSV data Sat config。2.选择测试计划:右键-->添加-->配置元件-->HTTP cookie管理器。选择测试计划:右键-->添加-->配置元件-->HTTP请求默认值。

分享测试知识 2431

LLM - windows下的Dify离线部署:从镜像打包到无网环境部署(亲测,包含插件部署)

LLM - windows下的Dify离线部署:从镜像打包到无网环境部署(亲测,包含插件部署)

ocean00008899的博客 1285

jmeter使用总结

1.1 什么是 JMeter Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,...

weixin_30617797的博客 2506

Dr_can Kalman Filter学习笔记(一)

本文是在b站Dr_can的卡尔曼滤波课程学习过程中的学习笔记

苏大侠的博客 1051

多模态目标检测综述介绍及框架提供

多模态目标检测是计算机视觉领域的前沿方向,旨在通过融合不同传感器或数据源的信息(如可见光、红外、深度等),提升复杂场景下目标检测的准确性和鲁棒性。

Limiiiing的博客 4587

Jmeter教程(图文版)

看了包会

liu_sgxggs的博客 8120

【STK】手把手教你利用STK进行进行光电红外仿真02-STK/EOIR模块属性之一 传感器选项设置

EOIR传感器可以从空间几何属性、光谱属性、光学属性、辐射属性四个方面进行设置,并且可以设置信号传播路径中的大气特性,包括大气模型、气溶胶模型、气象学可见性和大气湿度。在定义EOIR传感器时,需要Sensor——Definition属性页中,将Sensor Type设置为EOIR。单击下面的按钮打开传感器的EOIR配置页,可以对传感器的属性进行配置,此外,还可以在场景中视情况添加相关的中心体。路径辐射损耗影响上述特性的计算,计算的结果考虑了传感器、目标位置的影响,但是还没考虑地球临边背景的影响。

weixin_44184852的博客 3199

jmeter基本教程

目录 1、简述 2、下载安装 3、基础设置 Jmeter的语言切换 修改Jmeter默认编码为utf-8解决控制台乱码 4、编写项目测试脚本 4.1、添加线程组 4.2、添加测试接口 4.3、添加察看结果树 4.4、添加用户自定义变量 4.5、json断言(因为我这里返回是json,其他需求更据实际情况选择) 4.6、添加聚合报告 5、性能测试 后记 1、简述 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计

AVATAR 1万+

cherry使用MCP协议Streamable HTTP实践

摘要:Streamable HTTP协议是针对传统HTTP+SSE传输方式的改进方案,解决了连接恢复、服务器资源占用和单向通信等问题。该协议基于普通HTTP实现,支持无状态服务器、纯HTTP服务和多轮对话,同时兼容现有基础设施。通过演示展示了服务端和客户端的配置方法,体现了其灵活性和实用性。MCP(多轮对话协议)作为扩展LLM能力的关键技术,代表着未来交互式AI的发展趋势。

全网120W+关注AI拉呱,专注人工智能以及科技前沿! 563

【ROS机器人系统】自主导航+YOLO目标检测+语音播报

完成自主导航功能,并在小车移动至指定地点的过程中,通过机器人的摄像头检测导航途中所见物体,识别出物体的种类(框选出不同物体并标注识别结果),结合科大讯飞语音合成模块对识别结果进行语音播报。..............................

南京大学软件工程硕士在读 2万+

最全面的Jemter性能测试教程——Jmeter安装、基本组件使用、Windows和Linux上命令行执行

由于之前用Jmeter做了几次性能测试,所以写了下面这篇博客总结下。但是性能测试的知识点有很多,这个只能算一个初级教程。写的不好的地方,还请见谅。如果写的可以的话,可以关注我的博客,或者查看我的博客目录:YFF 目录一、Jmeter下载、安装、启动、基本配置1.1 Java环境1.2 Jmeter下载1.3 Jmeter安装及环境变量配置1.4 启动Jmeter1.5 Jemter配置中文环境二、Jmeter基本使用2.1.接口信息查看2.2 脚本编写三、Jmeter常用组件3.1 配置原件3.2 前置.

一个Tester的博客 3万+

使用virtuoso gds转lef操作方法

2) 然后,需要创建Pin,这里Pin的概念不同于label/text,是有实际金属的,二者的区别类似于pr中的port和terminal。1) 首先,需要画prBoundary,这个用drawing层的prBoundary画是不行的,不过建议pr阶段就把prBoundary转到gds里,在virtuoso layout中画prBoundary就比较容易。另外,用Create - Create Pin也可以创建pin,更适用于PG pin,操作时先给pg shape打label,最好放正中间。

m0_61544122的博客 1379

jemter接口测试(一)

前言:短时间内完成利用jemter构建“假客户端”进行接口测试,后期可能会优化为压测脚本。问题一:如何使其发送json数据? 参考:http://yangyoupeng-cn-fujitsu-com.iteye.com/blog/2013649 思考: 其实主要原因是没有配置:“发送json格式的http请求的时候,需要添加HTTP信息头管理器设置Content-Type=ap

rwang99的博客 4286

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Jemter(一)——Jemter的安装(汉化)

【准备工具】 需要安装JDK8或者以上版本(JDK安装请看之前的分享) 建议安装JDK环境,虽然JRE也可以,但是压测https需要JDK里面的 keytool工具建议安装JDK环境,虽然JRE也可以,但是压测https需要JDK里面的 keytool工具 快速下载 windows: http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/bin...

weixin_43234451的博客 659

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

JMeter(一):jemter安装

jmeter安装配置,基础使用,关注,后续持续更新

专注实用知识分享的一个务实的技术博客,聚焦 python等领域的干货分享 1206

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jemter的参数化(一)

jemter的参数化有很多方式,这里先写其中一种 操作步骤: 1   .打开jemter.bat,添加线程组,http信息头管理器,http请求,设置服务器ip地址, 2    设置浏览器的局域网设置 3.   添加http局域网管理器,启动,进行脚本录制 4.  脚本录制完成后,将要参数化的数据添加到*.csv文件下,不要有中文路径 添加配置原件----CSV Data Set Co

韩飞翔的博客 856

jemter获取响应数据为json格式中某一数据

【以下文字信息摘抄牛老师的语录】 我们在做http接口测试的时候,返回的数据都是json串,Jmeter中本身是不支持直接处理json串的,如果要获取到返回结果中指定的值,必须要通过正则表达式来获取到,正则表达式比较麻烦,写错了就获取不到值了,大家都知道json是key-value这样来存值的,那jmeter里面能不能直接通过key取值呢,这样的话就不用正则表达式那么麻烦了。如果想要通过key直...

weixin_34096182的博客 413

jemter连接数据库mysql实例(一)

介绍 jemter5.0 mariadb5.5.56 PC:13.10.13.18 MariaDB:13.10.12.32 此篇文档介绍配置好环境,正常连接上数据库并查询出数据,over~ 步骤 1、配置数据库JDBC Connection Configuration,配置好如下两个部分参数 variable Name for created pool:为数据库池的变量名,用于后面JDBC请求的连...

weixin_44097910的博客 331

Jemter+Badboy实战经验一(Badboy录制及基础功能)

1. 使用工具: Apache Jemeter:http://jmeter.apache.org/download_jmeter.cgi (免费官网下载地址) BadBoy: http://www.badboy.com.au/download (免费官网下载地址) 2. 准备工作: 最好先熟悉http请求 了解Jemeter工具的基本使用方法及用途 ...

人人为我,我为人人 3万+

jemter自学一 -------断言

学习来源:https://blog.youkuaiyun.com/Foreverlemon/article/details/72821830?locationNum=9&fps=1 Jmeter断言-所有断言讲解 jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似; 用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中...

weixin_30552811的博客 170

jemter进行mysql数据预置_一、Jmeter进行Mysql数据库的压测

1、首先需要安装配置mysql数据库连接驱动:mysql-connector-java-5.1.28.jar1.1 网上很多资源,可自行下载;1.2 下载完成后,分别将该jra包,存放到:jmeter和jre如下安装目录下:jmeter\lib\jmeter\lib\extJava\jre1.8.0_111\lib\ext\1.3 jmeter 测试计划页面将该jar包存放的3个路径分别加载进去,...

weixin_34874119的博客 216

如何使用jemter和badboy进行压力测试

如何使用jemter和badboy进行压力测试 一、安装必要软件 1.首先下载badboy,进行安装(百度网盘有安装包),安装直接下一步就行 2.下载jemter(百度网盘有安装包),使用的前提是要配JDK,下载后打开bin/jemter.bat,发现出现一个gui图形界面代表可以了,但是默认的全是中文,这里需要改成中文的话只需要在bin/j...

weixin_42564514的博客 1209

jemter安装和使用

jemter 1、jemter的下载安装: 要使用jemter 首先要下载并配置java jdk java官网:https://www.oracle.com/java/technologies/javase-downloads.html 我选择的是版本8的 点击进入,选择适合自己电脑的版本、 解压下载好的压缩包 双击打开, 一直点击下一步即可。 环境配置 1.右键点击我的电脑 选择属性 点击高级系统设置, 找到环境变量。 找到系统变量,点击新建 配置一个名为"JAVA_HOME’的变量,变量值

weixin_52740633的博客 232

【学习】jemter中如何高效使用正则表达式

在Jemter的性能测试过程中,我们常常需要提取响应中的某些数据,以便在后续的请求中使用。正则表达式的优点在于它的灵活性和高效性,只要掌握了正确的语法和技巧,我们就可以轻松地解决各种复杂的文本处理问题。通过正确配置提取器,我们可以轻松地提取所需数据,并将其存储在变量中,以便在后续的请求中使用。虽然正则表达式的语法比较复杂,但只要我们掌握了其中的关键概念,就可以轻松地编写出高效的正则表达式。例如,我们可以使用regex101网站来测试我们的正则表达式,查看它是否能够正确匹配目标数据。

青岛国之信评测中心 663

JEMTER基本操作*

**JEMTER基本操作** 一. 了解基本概念 进程:一个正在执行的程序就对应一个进程 线程:进程中执行的线索(一个进程有多个执行线索 ) 线程组:按照线程性质对线程进行分组 提供数据 http://127.0.0.1:8000/api/departments/?depidlist=T01,T02,T03参数名称:【dep_id_list=T01,T02,T03 参数名称:【depi​dl​ist=T01,T02,T03参数名称:【dep_id_list】 参数值:T01,T...

weixin_47265207的博客 192
上一篇: python网络爬虫(一,抓取网页的含义和URL基本构成)
下一篇: Pycharm快捷键手册
TroKey
博客等级 码龄15年 24粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值