【一篇让你学会】Web接口测试工具--Jmeter

news2025/1/25 1:43:23

  关于Jmeter性能测试工具不再过多介绍。如果你要学习软件性能测试,那么多少应该会对它有所耳闻。

  强烈建议阅读官方文档学习:http://jmeter.apache.org/index.html

     还有比这个更权威更全面的介绍Jmeter工具使用的么?

     不过,此处要介绍是用它来做接口测试。

 

一、安装Jmeter                                                         

  Jmeter官方首页:http://jmeter.apache.org/

  关于Jmeter可以做什么,官方上也有非常详细的介绍。另外它的文档也写很详细。如果想学习Jmeter,那么它的文档将会是最好的教材。

  我相信你可以在官网上找到下载地址并把它下载下来。

  Jmeter由Java语言开发,最新的Jmeter3.0版本的运行需要有Java 7 或之后版本的环境。我同样相信你能搞定Java环境。

  接下来,将下载的apache-jmeter-3.0.zip解压,进入解压目录.../apache-jmeter-3.0/bin 。双击ApacheJMeter.jar启动:

二、添加HTTP接口测试               

  我们的所以工具都会在Jmeter工具中完成,接来就按照一般步骤来创建一个HTTP接口测试。

  如上图,右键点击“测试计划”-->“添加”-->“Threads(Users)”-->“线程组”。

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

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

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

  循环次数:每个线程发送请求的个数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到手动点击工具栏上的停止按钮,或者设置的线程时间结束。

  因为这里要做接口测试,所以各个参数为均1。 

  

  如上图,右键点击“线程组”-->“添加”-->“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)。

  如上图,右键点击“线程组”-->“添加”-->“监听器”-->“察看结果树”。

 

三、添加新的POST请求               

  POST请求的添加方式与前面GET请求一样。不过POST请求需要设置参数。

  服务器名称或IP: 127.0.0.1

  端口号:8000

  方法:POST

  路径:/polls/question_vote/

  同请求一起发送参数:

  点击“添加”按钮,添加POST请求的参数。

名称:

qid

1

cid

1

  执行测试:

  选择菜单栏“运行”-->“清除”,或者点击工具栏清除按钮。然后重新执行启动测试。并查看结果树。

四、添加断言                                      

  对于自动化测试来说,断言必须要有的,如果没有断言我们只能人眼对比对接口返回的数据,有了断言功能,就会简化这个过程。Jmeter提供了丰富的断言方法来帮助我们完成这个工作。

  如上图,右键点击HTTP请求“添加”-->“断言”-->“响应断言”。

  要测试的响应字段:响应文本、Document(text)、URL样本、响应信息、Response Headers、Lgnore Staus等选项。虽然接口返回的是Json格式的数据,但对于Jmeter来说返回数据为文本,所以,这里可以勾选“响应文本”

  模式匹配规则:包括、匹配、Equals、Substring。这里只需要验证返回数据中是否包含主要的关键字,所以,这里勾选“包括”。

  要测试的模式:其实就是断言的数据。点击“添加”按钮,输入要断言的数据。

  运行测试:

  再次清除测试数据,点击启动测试,查看结果树,如下图。

 =====================

    接口测试就是这么简单!

最后,绵薄之力

感谢每一个认真阅读我文章的人,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

资料获取方式:

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

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

相关文章

Win7批量执行Python文件

问题背景 平时都是用Pycharm跑代码,但是每次都需要在Configuration里修改Parameters,跑完一个才能重新修改跑下一个,很不方便,于是决定借助.bat文件实现批量执行。 困难一 电脑存在cmd闪退问题,之前一直逃避懒得解决…

ExtractOfficeContent: 提取Office文件中文本、表格和图像

引言 最近有空写了一下这个库,用来提取Office文件中的文本和图像内容,用作后续整理训练语料使用。最新更新请移步:Github Extract Office Content Use Installextract_office_content$ pip install extract_office_contentRun by CLI. Ext…

STM32——04-初识STM32单片机

什么是单片机? 单片机( Single-Chip Microcomputer )是一种集成电路芯片,把具有数据处理能力的中央处 理器 CPU 、随机存储器 RAM 、只读存储器 ROM 、多种 I/O 口和中断系统、定时器 / 计数器等功 能(可能还包括显示驱…

day49_mybatis

今日内容 1 引言 2 MyBatis介绍 3 环境搭建 4 入门演示(MyBatis开发步骤) 5 CRUD 6 配置细节 一、引言 1.1 复习 第一阶段(JavaSE) java基本语法流程控制面向对象常用类集合异常IO多线程JDK新特性 第二阶段(JavaWeb) 前端 htmlcssjs --> JQueryboostraplayui 页面元素内置模…

攻防世界—file_include

打开之后发现是一段php代码 可以看出这是段代码有文件包含漏洞 下面是学习部分。。。着急看题解继续往下滑。。。谢谢。。。 文件包含漏洞(File Inclusion Vulnerability)是一种Web应用程序常见的安全漏洞,也是攻击者常用的攻击手段之一。这种…

一文讲完Java常用设计模式(全23种)

文章目录 介绍设计模式的六大原则一、创建型模式1、单例模式(Singleton Pattern)1)饿汉式2)懒汉式,双检锁3)静态内部类4)枚举 2、原型模式(Prototype Pattern)3、工厂模式…

基于Java+SpringBoot+Vue前后端分离教学资源共享平台系统

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

10:00面试,10:08就出来了 ,问的实在是太...

从外包出来,没想到算法死在另一家厂子 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到8月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内…

如何利用google的protobuf设计、实现自己的RPC框架

一、前言 这篇文章我们就来聊一聊 RPC 的相关内容,来看一下如何利用 Google 的开源序列化工具 protobuf,来实现一个我们自己的 RPC 框架,内容有点长,请耐心看完。 序列化[1]:将结构数据或对象转换成能够被存储和传输&…

有趣的机器人工具坐标系

当机器人旋转轴上的夹爪中心不在旋转轴中心时,如何让旋转轴围绕夹爪中心旋转,这就是工具坐标系,怎末实现呢?机器人都是建立工具坐标系实现,这是什么原理?我们来探索一下: 世界上的有些特例让人…

【AIOT】手势捕捉调研

title: Data Glove Record date: 2020-06-06 20:40:13 author: liudongdong1 img: https://gitee.com/github-25970295/blogImage/raw/master/img/gloves-1268930__340.webp reprintPolicy: cc_by cover: false categories: AIOT tags: Sense 动作捕捉(Motion capture)&#x…

程序员凡尔赛,工作三年晒出5月工资条,直言加班太累了

最近有工作3年的程序员晒出自己9月份的工资条,并直言加班太累了。 从工资条上可以看到,这个收入确实不算低,才3年时间,月工资就已经到了二万五了,这个工资已经可以击败绝大多数行业了。 不过二万五只是税前工资&…

【Python opencv 】零基础也能轻松掌握的学习路线与参考资料

Python opencv 是一种强大的计算机视觉库,它为计算机视觉和图像处理任务提供了必要的工具和技术实现。接下来,将介绍Python opencv的学习路线、重点和优秀实践。 一、学习路线 Python基础 在学习Python opencv之前,需要掌握Python的基础知…

STM32F105RBT6 使用定时器TIM3输出PWM波

1. TIM3的GPIO口,查阅STM32F105RBT6 数据手册,TIM3的4通道用的是PB1 2. 初始化GPIO口和定时器TIM3 2.1 相关函数 RCC_APB1PeriphClockCmd、GPIO_Init、TIM_TimeBaseInit、TIM_OC4Init、TIM_OC4PreloadConfig、NVIC_Init、TIM_ITConfig、TIM_Cmd、 voi…

中国范围逐月夜间灯光数据(2012-2021年)

人类以其文明和智慧创造了城市,城市最美的一面就是夜晚的灯光。对于经济学家来说,城市灯光的背后隐藏着巨大的社会经济秘密。一个城市夜晚的灯光不仅可以反映这个城市人口的数量、预测房价的趋势还能反映这个城市的经济发达程度。 根据灯光的亮度我们还可…

(七)CSharp-CSharp图解教程版-事件

一、发布者和订阅者 发布者/订阅者模式(publish/subscriber pattern): 很多程序都有一个共同的需求,即当一个特定的程序事件发生时,程序的其他部分可以得到该事件已经发生的通知。 发布者: 发布者类定义…

SpringSecurity 总结

SpringSecurity 总结 第一章 权限管理 权限管理SpringSecurity 简介整体架构 权限管理: 实现: "对用户访问系统的控制"(身份认证) , 按照 "安全规则"或者 "安全策略" (对已经认证的用户进行授权) 控制,用…

C++教程(05)——数据类型

C 数据类型 使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。 您可能需要存储各种数据类型(比如字符型、宽字符型、整型…

2.DIY可视化-拖拽设计1天搞定主流小程序-PHP安装

DIY可视化-拖拽设计1天搞定主流小程序-PHP安装 前言 话不多说,直接实操。一、拉取代码并导入 https://gitee.com/diygw/diygw-ui-php 找到本机一个文件夹: git clone 导入vscode 二、打开小皮,新建网站 启动web服务: 创建网站&#xff…

视觉SLAM十四讲——ch5实践(相机与图像)

视觉SLAM十四讲----ch3的实践操作及避坑 一、实践操作前的准备工作二、各个实践操作1.计算机中的图像2.3D视觉 三、遇到的问题 一、实践操作前的准备工作 安装OpenCV Ubuntu18参考:Ubuntu 18.04下opencv4安装及C配置 Ubuntu20参考:Ubuntu 20.04搭建OpenC…