【接口测试】神器JMeter

news2024/11/16 15:41:45

‍1 JMeter是什么

Apache JMeter是Apache组织开发的一款开源软件,是一款非常好用的接口测试工具。它的特点是开源免费,简单好用。

我们在测试过程需要做接口测试的话就可以使用它,也可以用来批量造数据,接下来我们就来看看JMeter是如何使用的吧。

2 JMeter的工作原理

首先我们先了解一下JMeter的工作原理,JMeter向服务器提交请求,从服务器取回请求返回的结果,简单来说就是调接口拿数据。

3 JMeter安装

JMeter官网下载:https://jmeter.apache.org/download_jmeter.cgi

启动JMeter:将zip包解压之后,进入./apache-jmeter-x.x.x/bin目录下的jmeter.bat即可启动JMeter,cmd窗口输出JMeter启日,注意:cmd窗口不能关闭。

启动JMeter成功后可看到如下页面:

4 JMeter进行接口测试

4.1、HTTP请求

1、添加线程组:在测试计划点击右键 > 添加 > 线程组(用户)> 线程组

2、添加HTTP请求:在线程组点击右键 > 添加 > 取样器 > HTTP请求

3、配置HTTP请求:可以在路径里面填写完整的请求地址,也可以分别填写协议,服务器名称或IP,端口号,路径。

4、添加察看结果树:在线程组右键 > 添加 > 监听器 > 察看结果树

通过察看结果树我们可以看到请求头,请求体和响应头,响应体等信息,我们可以查看请求和响应,方便定位问题。

5、运行并察看结果树:点击上方绿色箭头按钮运行,然后点击察看结果树,再点击响应数据,即可查看该请求的响应数据啦。

如果出现中文乱码,在./bin/jmeter.properties进行修改,将#sampleresult.default.encoding=ISO-8859-1改为sampleresult.default.encoding=utf-8就正常了。

至此,一个完整的HTTP请求已经完成。

4.2、Dubbo请求

1、下载dubbo插件:https://codechina.csdn.net/mirrors/dubbo/jmeter-plugins-dubbo/-/releases/2.7.8?spm=1033.2243.3001.5876

2、将插件放到./lib/ext目录下,重启JMeter

3、添加Dubbo请求:在线程组右键 > 添加 > 取样器 > Dubbo Sample

4、配置Dubbo请求

5、Dubbo请求demo

6、Dubbo Sample参数详解

Protocol:注册协议,包括zookeeper、multicast、Redis、simple;

Address:注册地址,dubbo服务的IP+Port:

①、当使用zk,address填入zk地址,集群地址使用","分隔;

②、使用dubbo直连,address填写直连地址和服务端口;

Protocol:使用的dubbo协议,包括dubbo、rmi、hessian、webservice、memcached、redis,根据自己的协议类型选择对应的选项即可;

Timeout:请求超时时间,单位ms,根据dubbo具体配置填写;

Version:版本,dubbo不同版本之间差异较大,不同版本之间不能互相调用,这里指定dubbo版本,是为了方便识别和说明;

Retries:异常重试次数(类似这种分布式服务通信框架,大多都有重试机制,是为了保证事务成功率);

Cluster:集群类型,包括failover、failfast、failsafe、failback、failking;

Group:组类型,如果有的话,根据配置填写即可;

Connections:连接数,同上,根据配置填写;

Async:服务处理类型,包括sync(同步)、async(异步),根据配置填写;

Loadbalance:负载均衡策略,包括random(随机)、roundrobin(轮询)、leastactive(最少活跃数)、consistenthash(一致性哈希);

Interface:接口名(因为dubbo服务大多是开发根据规范自行命名的,因此这里需要填写完整的接口名+包名);

Method:当前接口下的方法名,按照开发提供的API文档填写即可;

Args:接口报文,根据API文档填写,如上图所示,添加输入行,输入对应的参数类型和值即可(参数类型和值如何定义填写,请参考上面的链接);

①、paramType:参数支持任何类型,包装类直接使用java.lang下的包装类,小类型使用:int、float、shot、double、long、byte、boolean、char,自定义类使用类完全名称;

②、paramValue:基础包装类和基础小类型直接使用值,例如:int为1,boolean为true等,自定义类与List或者Map等使用json格式数据;

4.3、线程组参数详解

1、线程数:虚拟用户数。可以理解1次请求。

2、Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。

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

4、Delay Thread creation until needed:直到需要时延迟线程的创建。

5、调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)。

持续时间(秒):测试持续时间,会覆盖结束时间

启动延迟(秒):测试延迟启动时间,会覆盖启动时间

启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它

结束时间:测试结束时间,持续时间会覆盖它

5 JMeter使用小技巧

5.1、 JMeter设置中文

方式一:在./bin/jmeter.properties进行修改,将#language=en改为language=zh_CN,长期有效。

方式二:在选项 > 选择语言 > 中文(简体),本次打开有效,重启后失效,故推荐修改jmeter.properties的方式。

5.2、设置编码

在./bin/jmeter.properties进行修改,将#sampleresult.default.encoding=ISO-8859-1改为sampleresult.default.encoding=utf-8,否则可能会出现响应中文乱码;

5.3、备份文件

在JMeter的backups路径会存储历史版本jmx文件,只要你在页面上点击保存,这里就会存新的一份jmx,所以在这里可以找到历史文件,非常友好。

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

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

相关文章

Django框架之验证码简单实现

是一种方式防止csrf的策略。在用户注册、登录页面的时候使用;为了防止暴力请求,减轻服务器压力。 目录 安装pillow库 验证码显示 引入类库 视图方法 创建路由 创建表单 模板内容 模板路由 模板视图 视图验证 路由 引入 验证视图 效果 成功…

从7K到20K,在测试行业摸爬滚打的这5年,想个2023年还没找到工作的提个醒~

我是一名转IT测试人,我的专业是化学,去化工厂实习才发现这专业的坑人之处,化学试剂害人不浅,有毒,易燃易爆,实验室经常用丙酮,甲醇,四氯化碳,接触多了,吃个饭…

JMeter 接口测试教程,详解 HTTP Request 取样器和 fiddler 调试技巧!

目录 前言: 一、HTTP Request取样器介绍 二、使用HTTP Request取样器进行接口调试 1. 创建测试计划(Test Plan)和线程组(Thread Group) 2. 配置HTTP Request取样器参数 3. 添加断言 4. 运行接口测试 三、结合f…

Linux 企业级安全原理和防范技巧

Linux 企业级安全原理和防范技巧 1. 企业级Linux系统防护概述1.1 企业级Linux系统安全威胁1.2 企业级Linux系统安全立体式防范体系1.2.1 Linux文件系统访问安全1.2.2 Linux进程安全1. 进程的种类2. 进程管理方法 1.2.3 Linux用户管理安全1. 管理用户及组文件安全2. 用户密码管理…

【云计算】云存储是什么意思?与本地存储有什么区别?

云计算环境下,衍生了云存储、云安全、云资源、云管理、云支出等等概念。今天我们就来了解下什么是云存储?云存储与本地存储有什么区别? 云存储是什么意思? 云存储是一种新型的数据管理方式,它通过网络将大量不同类型、…

UGUI进阶知识[二十九]循环GridView

节省内存的常用滑动列表还有一种形式,上下滑动的GridView。这种格式的滑动列表可用于移动设备的背包,仓库,商店UI等数据可能海量从而导致产生特别多但又看不见的UI的情况。 于是基于 UGUI进阶知识[八]循环利用滑动列表的循环ListView工程做了…

普源1G带宽4通道10G采样率数字示波器MSO8104

超高性价比七合一 集成示波器在如今的集成设计领域,一款集成度较高的综合示波器已经成为设计工程师必不可少的得力工具。 MSO8000 系列数字示波器,它集 7 种独立仪器于一体,包括一台示波器、一台 16 通道逻辑分析仪、一台频谱分析仪、一台任…

煤矿电子封条建设实施方案算法 yolov7

煤矿电子封条建设实施方案算法通过yolov7网络模型深度学习技术,煤矿电子封条建设实施方案算法作为一种智能化安全新模式被广泛应用于各类场景中。YOLOv7 的发展方向与当前主流的实时目标检测器不同,研究团队希望它能够同时支持移动 GPU 和从边缘到云端的…

高完整性系统:Separation Logic for Automated Verification

目录 1. INTRODUCTION TO SEPARATION LOGIC 分离逻辑 1.1 霍尔推理(Hoare Reasoning) 1.2 堆指针的影响 1.3 全局和局部推理(Global and Local Reasoning) 1.4 组合推理(Compositional Reasoning) 1.…

chatgpt赋能python:Python中怎样输入数据以及数据类型

Python中怎样输入数据以及数据类型 Python是一种高级编程语言,常用于数据处理和分析、机器学习和Web开发等任务。输入数据是Python编程中的重要环节,因此本文将介绍Python中输入数据的方法和数据类型。 什么是数据输入? 数据输入是指将数据…

国内主流AI大模型盘点

今年年初,轰动科技圈的大事就是ChatGPT的面世,它的到来打响了AI智能时代的第一枪,同时展开了一场别开生面的智能科技革命。 随着ChatGPT迅速走红,国内各大企业纷纷发力认知大模型领域。经过一段时间的酝酿,国内的AI领域也开启了“…

StableStudio,比Midjourney还牛逼的绘画平台,免费!

大家好,我是鸟哥。 之前给大家推荐过Midjourney和Bluewillow两个AI绘画平台:简直了!比Midjourney更刺激,还免费!Midjourney功能超级强大,但比较傲娇,很贵,是否让用户免费体验要看心…

数据可视化系列指南之地图类图表大全

导语 随着数据在各行业中的应用越来越广泛,大家也逐渐认识到数据可视化在企业生产经营中的重要作用,在数据可视化过程中,图表是处理数据的重要组成部分,因为它们是一种将大量数据压缩为易于理解的格式的方法。数据可视化可以让受…

jar包和war包的区别;项目打包成jar或者war且运行在Linux上的tomcat

jar包和war包的区别: war包:通常是web应用后,例如网站,打成包部署到容器(可以是tomcat)中。含有包括WEB-INF包。war包通常就是放在tomcat包的/webapps下然后自动编译和运行。 jar包:通常是开发时要引用的类&#xff…

怎样使用Fiddler进行移动端抓包?附视频教程包你学会

目录 前言 抓包 什么是抓包 哪些场景下需要抓包 Fiddler Fiddler抓包原理 安装 Fiddler移动端抓包 第一步:允许远程计算机连接 第二步,设置手机网络代理 第三步,允许捕获HTTPS连接 第四步,手机安装证书 前言 本篇文章…

chatgpt赋能python:Python中如何提取字段中的数字

Python中如何提取字段中的数字 在数据分析和处理中,经常需要提取文本中的数字数据。在Python中,有多种方法可以实现这一操作。本篇文章将介绍Python中提取字段中的数字的方法,并给出示例代码。 使用正则表达式 正则表达式是Python中处理文…

二十、C++11(上)

文章目录 一、前言二、C11诞生简介三、列表初始化(一){}初始化(二)initializer_list容器1. initializer_list 概念2. initializer_list的使用场景3. initializer_list接口函数模拟实现 四、关键字(一)auto&…

duilib中使用mfc控件

我在界面相隔挺远的位置添加2个mfc控件, 需要添加: 1. 添加 CMfcWndUI 类,这是为了调用mfc控件用的 2. 添加 duilib界面 CDuiFrameWnd 3.重写 2中界面的virtual CControlUI* CreateControl(LPCTSTR pstrClassName); 函数 需要注意的地方…

xray工具—代理扫描、爬虫扫描、Burp联动

xray工具—代理扫描、爬虫扫描、Burp联动 1. Xray介绍1.1. 支持漏洞检测类型1.2. 官网地址 2. 常用扫描模式2.1. 生成证书2.1.1. 浏览器安装证书 2.2. Xray基础主动扫描2.2.1. 基础主动扫描命令2.2.2. 基础主动扫描结果 2.3. Xray代理模式扫描2.3.1. 代理模式配置代理2.3.2. 代…

一场变革来到零售业,盖雅「劳动力账户」助力连锁门店全面管理人效

‍ 上半年,逐渐回暖的出游,为文旅和线下零售业的营收创造了希望, 但面对高周转率和低利润率的行业竞争格局,比起令人兴奋的营收,大部分零售企业仍在焦虑营收背后的成本。 或许是过去三年的环境让更多企业学会了「精…