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

一文2000字使用JMeter进行接口测试教程!(建议收藏)

安装

  1. 使用JMeter的前提需要安装JDK,需要JDK1.7以上版本
  2. 目前在用的是JMeter5.2版本,大家可自行下载解压使用

运行

  1. 进入解压路径如E: \apache-jmeter-5.2\bin,双击jmeter.bat启动运行

  1. 启动后默认为英文版本,可通过Options – Choose Language – Chinese(Simplified) 设置为中文版

JMeter进行接口测试流程

1.测试计划,可以理解为被测项目,下面可以添加一系列待测接口。

可自定义名称,便于自己理解。

2.线程组,在测试计划上鼠标右击 – 添加 – 线程(用户)- 线程组。

一个线程组可以当做一个虚拟用户组,线程组中每个线程都可以裂解为一个虚拟用户。这个在性能测试中会用到,接口测试暂时不用关注,默认值为1即可。

 3.HTTP请求默认值,线程组上鼠标右击 – 添加 – 配置元件 – HTTP请求默认值

进行接口测试时需要填写协议,IP地址及端口号,为了避免重复操作,可在线程组下添加HTTP请求默认值,填入协议、IP地址和端口号,这样后续的HTTP请求中就不用每次都填写了。

4.HTTP信息头管理,线程组上鼠标右击 – 添加 – 配置元件 – HTTP信息头管理

如果请求参数非json格式,可以不用添加此元件。

该元件是针对传入参数为json格式,需添加名称为Content-Type,值为application/json

5.HTTP请求,线程组上鼠标右击 – 添加 – 取样器 – HTTP请求

HTTP请求主要包括请求方法、请求路径和请求参数。

由于协议、IP地址、端口号已经在HTTP请求默认值进行了设置,所以此处可以为空。

(1)传入非json格式的参数,可以直接在HTTP请求面板中【参数】下进行添加:填写参数名称与对应的值

(2)传入json格式参数,如果参数值存在中文的情况,内容编码需为utf-8格式,避免乱码情况的发生

 

6.断言,主要目的是检查接口是否访问成功。断言的方式比较多,包含响应断言、JSON断言,大小断言,JSR223断言等等,一共提供15种断言方式,一般常用的主要是响应断言,也可以用JSON断言。对于复杂的接口,可借助BeanShell断言。

这里主要介绍响应断言的用法。

HTTP请求上鼠标右击 – 添加 – 断言 – 响应断言

详情如图:

 

Apply to 指断言的作用范围,一般情况下发出一个请求只触发一个请求,所以默认勾选Main sample only即可。下面针对四种选项做个说明:

(1) Main sample and sub-samples:作用于主请求和子请求

(2) Main sample only:仅仅作用于主请求

(3) Sub-sample only:仅仅作用于子请求

(4) J Meter Variable:作用于j meter变量(输入框填写变量名称)

响应字段 主要包含响应文本、响应代码、响应信息、响应头、请求头、URL样本、文档(文本)、忽略状态、请求状态,下面针对每种方式做个说明:

(1) 响应文本,一般匹配返回的json数据,需要结合模式匹配规则进行校验

 根据响应文本的测试模式”records”(*?)匹配到内容,只要包括这些内容,则判断接口执行通过。

(2) 响应代码,匹配返回码,如200,404,500等

(3) 响应信息,匹配响应信息,如OK, Sucess字样

(4) 响应头,匹配响应头

(5) 请求头,匹配请求头

(6) URL样本,匹配请求的url链接,如果有重定向则包含请求url和重定向url

(7) 文档(文本),匹配响应数据的文本格式

(8) 忽略状态,一个请求有多个响应断言,第一个响应断言选中此项时,如果第一个响应断言失败时可以忽略此响应结果,继续进行下一个断言。如果下一个断言成功则还是判定事务是成功的

(9) 请求数据,匹配请求数据

实际比较常用的是响应文本、响应代码、响应信息,这三种还是无法满足的则继续补充其他字段。

模式匹配规则,有包括、匹配、相等、字符串、否、或者。

(1) 包括,响应内容包括需要匹配的内容就表示响应成功,可结合正则表达式进行

(2) 匹配,响应内容要完全匹配需要匹配的内容就表示响应成功,可结合正则表达式进行

(3) 相等,响应内容要完全等于需要匹配的内容才代表响应成功,不支持正则表达式

(4) 字符串,响应内容包含需要匹配的内容才代表成功,不支持正则表达式

(5) 否,相当于取反,如果结果是True,勾选上“否”那结果就是False

(6) 或者,可以用于将多个断言模式进行连接,只要一个模式匹配,断言就代表成功

测试模式,其实就是填写自己的预期值。

7.监听器-察看结果树,主要用于查看接口执行情况,以树形结构显示接口访问结果,包含取样器结果、请求与相应数据。

线程组上鼠标右击 – 添加 – 监听器 – 察看结果树

监听器还包含其他形式如汇总报告、聚合报告、后端监听器等,接口测试主要用到的就是察看结果树。

通过察看结果树可以了解接口执行情况,如果执行失败需要看下错误信息。

 至此,使用J Meter进行常用的接口测试就结束了,实际使用过程遇到的特殊情况可以及时反馈(其实和Postman测试接口大同小异~)

总结:

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

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

  视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。  

相关文章:

一文2000字使用JMeter进行接口测试教程!(建议收藏)

安装 使用JMeter的前提需要安装JDK,需要JDK1.7以上版本目前在用的是JMeter5.2版本,大家可自行下载解压使用 运行 进入解压路径如E: \apache-jmeter-5.2\bin,双击jmeter.bat启动运行 启动后默认为英文版本,可通过Options – Cho…...

Spark---介绍及安装

一、Spark介绍 1、什么是Spark Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行计算框架,Spark拥有Hadoop MapReduce所具有的优点;但…...

uni-app:实现request请求的递归(设置request请求的访问次数),并且调用自定义方法给出返回值

一、效果展示 失败效果 成功效果 二、写入后端请求部分 分析 ①自定义一个模块common.js主要用于封装所有的请求函数 ②核心代码 function requestWithRetry(cmd, username, password, retryCount) {return new Promise((resolve, reject) > {uni.request({url: ip sys…...

数据结构-归并排序+计数排序

1.归并排序 基本思想: 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个…...

Qml使用cpp文件的信号槽

文章目录 一、C文件Demo二、使用步骤1. 初始化C文件和QML文件,并建立信号槽2.在qml中调用 一、C文件Demo Q_INVOKABLE是一个Qt元对象系统中的宏,用于将C函数暴露给QML引擎。具体来说,它使得在QML代码中可以直接调用C类中被标记为Q_INVOKABLE的…...

聚类笔记:HDBSCAN

1 算法介绍 DBSCAN/OPTICS层次聚类主要由以下几步组成 空间变换构建最小生成树构建聚类层次结构(聚类树)压缩聚类树提取簇 2 空间变换 用互达距离来表示两个样本点之间的距离 ——>密集区域的样本距离不受影响——>稀疏区域的样本点与其他样本点的距离被放大——>…...

【Python】批量将PDG合成PDF,以及根据SS号重命名秒传的文件

目录 说明批量zip2pdf批量zip2pdf下载SS号重命名源代码SS号重命名源代码下载附录,水文年鉴 说明 1、zip2pdf是一个开源软件,支持自动化解压压缩包成PDG,PDG合成PDF,笔者在其基础上做了部分修改,支持批量转换。 2、秒…...

2023亚太杯数学建模A题思路 - 采果机器人的图像识别技术

# 1 赛题 问题A 采果机器人的图像识别技术 中国是世界上最大的苹果生产国,年产量约为3500万吨。与此同时,中国也是世 界上最大的苹果出口国,全球每两个苹果中就有一个,全球超过六分之一的苹果出口 自中国。中国提出了一带一路倡议…...

3、LeetCode之无重复字符的最长子串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。转载: C常用语法——unordered_set 题目主要思想&#xff…...

CONDITIONS EVALUATION REPORT-解决方案

在启动SpringBoot项目时,提示一堆的Positive matches、Negative matches(如下代码框),感觉像是报错了样。但用SpringBoot的Test类操作数据库的Insert是成功的。提示这些信息通过网上搜索主要讲配置类被Spring容器加载与被加载的说明。名词解释…...

计算机网络——路由

文章目录 1. 前言:2. 路由基础2.1. 路由的相关概念2.2. 路由的特征2.3. 路由的过程 3 路由协议3.1. 静态路由:3.2. 动态路由:3.2.1. 距离矢量协议3.2.2. OSPF协议:3.2.2.1.OSPF概述OSPF的工作原理路由计算功能特性 3.2.2.2.OSPF报…...

python+requests+pytest+allure自动化框架

1.核心库 requests request请求 openpyxl excel文件操作 loggin 日志 smtplib 发送邮件 configparser unittest.mock mock服务 2.目录结构 base utils testDatas conf testCases testReport logs 其他 2.1base base_path.py 存放绝对路径,dos命令或Jenkins执行…...

css3

基础 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>style</title><!-- link&#xff08;外部样式&#xff09;和style&#xff08;内部样式&#xff09;优先级相同&#xff0c;重复写会覆盖 --><link re…...

超级应用平台(HAP)起航

各位明道云用户和伙伴&#xff0c; 今天&#xff0c;我们正式发布明道云10.0版本。从这个版本开始&#xff0c;我们将产品名称正式命名为超级应用平台&#xff08;Hyper Application Platform, 简称HAP&#xff09;。我们用“超级”二字表达产品在综合能力方面的突破&#xff…...

cocos2dx ​​Animate3D(二)

Twirl 扭曲旋转特效 // 持续时间(时间过后不会回到原来的样子) // 整个屏幕被分成几行几列 // 扭曲中心位置 // 扭曲的数量 // 振幅 static Twirl* create(float duration, const Size& gridSize, const Vec2& position, unsigned int twirls, float amplitude)…...

基于java技术的社区交易二手平台

基于java技术的社区交易二手平台的设计与实现 &#xff08;一&#xff09;开发背景 随着因特网的日益普及与发展&#xff0c;更多的人们开始通过因特网来寻求便利。但是&#xff0c;许多人都觉得网上商店里的东西不贵。所以&#xff0c;有些顾客宁愿去那些用二次定价建立起来的…...

(Matalb回归预测)GA-BP遗传算法优化BP神经网络的多维回归预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分代码&#xff1a; 四、分享本文全部代码数据说明手册&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于M…...

【Docker】从零开始:10.registry搭建私有仓库

【Docker】从零开始&#xff1a;10.registry搭建私有仓库 为什么要使用私有仓库关于Docker Registry基于容器搭建registry私有仓库1.下载镜像2. 启动镜像3.修改系统配置文件4.下载ubuntu镜像&#xff0c;修改名称3.提交镜像4.查看镜像 本地搭建私有仓库(目前编译报错找不到包&a…...

树莓派上使用Nginx通过内网穿透实现无公网IP访问内网本地站点

前言 安装 Nginx&#xff08;发音为“engine-x”&#xff09;可以将您的树莓派变成一个强大的 Web 服务器&#xff0c;可以用于托管网站或 Web 应用程序。相比其他 Web 服务器&#xff0c;Nginx 的内存占用率非常低&#xff0c;可以在树莓派等资源受限的设备上运行。同时结合c…...

长征故事vr互动教育体验系统让师生感同身受

红色文化是贯穿于新民主主义革命、社会主义建设的各个时期&#xff0c;具有深厚的历史价值和文化内涵的先进文化&#xff0c;是高效、优质的教育资源。思政课vr红色数字展馆充分开发和大力弘扬红色文化资源&#xff0c;发挥其独特资源优势和教育功能&#xff0c;应用到教学中&a…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...