使用JMeter进行接口测试教程

安装

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

运行

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

  2. 启动后默认为英文版本,可通过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测试接口大同小异~)

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【中创】区块链技术登上太空!全球首颗在轨可视化区块链卫星成功发射

作为一项突破性技术,区块链激发了许多技术创新者,区块链具备高安全、不可篡改和去中心化特征,能降低维护成本,提高可用性,可以为航空航天业提供更加灵活、可靠和高效的解决方案。 01航天科技之卫星导航 7月22日&#x…

(Chrome Ext)谷歌扩展程序-谷歌插件渗透测试方法记录

文章目录 前言一、本地获取谷歌插件/扩展程序源码二、工具化信息收集总结 前言 在工作岗位变更之后,越来越多“奇奇怪怪”的东西要去渗透和测试,在我之前干安服的时候,最多的就是测一下web,极少情况下测测app,但是现在…

【node】使用express+gitee搭建图床,并解决防盗链问题

首先创建一个gitee的项目,详细步骤我就不一一说明 注解:大家记得将这个项目开源,还有记得获取自己的私钥,私钥操作如下: node依赖下载: "axios": "cors": "express"…

opencv-16 图像去水印示例

常用的去水印方法: 克隆修复工具:使用图像处理软件(如Photoshop)中的克隆修复工具可以选择一个样本区域,然后将其复制到水印区域,以覆盖水印。这种方法在简单的水印上可能效果不错,但复杂的水印…

深度学习anaconda+pycharm+虚拟环境迁移

一、下载好anaconda和pycharm安装包。 下载anaconda:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror pycharm汉化包 二、安装anaconda 深度学习环境配置-Anaconda以及pytorch1.2.0的环境配置(Bubbliiiing 深度学习 教程&…

Pycharm----导入库文件夹不在py文件的目录下

问题描述: 想在不同目录下导入根目录的包,直接写会报错。如下边object_detect.py在function文件夹下,导入包默认在这个文件下,但我想导入根目录models和utils下的包 解决方法: 将根目录设置为源代码根目录&#xff0…

Android Studio下载

目录 确定版本下载地址 确定版本 如果是入职工作,先和同事确定好版本。因为每个项目使用的gradle插件版本,是在根目录的build.gralde文件中统一定义的,这个文件在添加第三方库(例如GreenDao,Arouter等)或者…

idea社区版(2023.1)设置spring boot项目热启动

热启动 在开发过程中,当写完一个功能我们需要运行应用程序测试时需要重启服务器,一个最简单的项目也要花费10多秒,如果是更大的项目则耗时更多。SpringBoot提供了spring-boot-devtools,使得项目在发生改动时能够自动重启应用 id…

字节抖音小程序,使用 uniapp 调起内置支付

字节抖音小程序,使用 uniapp 调起内置支付 第一步:提交订单 后端通过抖音预下单接口,提交支付订单信息。 预下单接口_小程序_抖音开放平台预下单接口 提交支付订单信息。 ## 使用限制 无 ## 接口说明 预下单接口需要保证同一app_id下每笔订…

C#实现系统进程的调用,查看进程调用的模块

1.需要使用命名空间:System.Diagnostics; 2.Process.GetProcess()可以获取所有进程 3.获取进程调用的模块 ProcessModuleCollection modules currentProcess.Modules; foreach循环一下FileName就可以查看调用了什么dll文件了 4.有关进程的信息(Process…

Linux Day01

目录 一、Linux终端介绍 二、Linux目录介绍 1.目录结构 2.常见目录说明 3.绝对路径与相对路径 4.家目录 一、Linux终端介绍 二、Linux目录介绍 Linux目录:是从根目录"/"开始的 是一棵倒着的树 1.目录结构 2.常见目录说明 目前记住 bin 存放常用命…

子网划分和计网解题方法

子网的基本概念 子网是计算机网络中的一个逻辑单元,是由多个IP地址组成的网络。在计算机网络中,IP地址是一个32位的二进制数,用于标识网络上的设备。子网划分是将一个大型的IP地址网络划分为多个小的IP地址网络,每个小的IP地址网…

虚拟机里install时发生找不到符号的错误

前提:下载dolphinscheduler源码时,一开始下的是dev版本,install没有问题,后来更改为其他版本,这时install就不好用了。在网上搜索一天后全是jdk版本问题,编译顺序问题,或者依赖配置,…

基于SpringBoot+vue技术的快鞋屋系统的设计与实现【纯干货分享,免费领源码06912】

摘 要 如今,人们的消费水平和购物能力都大大提升,加上互联网技术日新月异的发展,电子商务这种新兴的商业模式,在短短几年里已经开始融入中国社会,成为家哈户晓的热门话题,在网上购物已经成为一种潮流&#…

【教程】查看CPU、GPU架构的拓扑结构和系统信息

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 一些概念 Package:处理器封装。在多处理器系统中,每个物理 CPU 芯片通常被封装在一个单独的封装中,这个封装被称为 Package。一个 Package 可以包含一个或多个物理 CPU 核心。…

Nginx系列之 一 负载均衡

目录 一、Nginx概述 1.1 负载均衡概述 1.2 负载均衡的作用 1.3 四/七层负载均衡 1.3.1 网络模型简介 1.3.2 四层和七层负载均衡对比 1.3.3 Nginx七层负载均衡实现 1.4 Nginx负载均衡配置 1.5 Nginx负载均衡状态 1.6 Nginx负载均衡策略 二、负载均衡实战 2.1 测试服…

机器学习深度学习——softmax回归(上)

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——线性回归的简洁实现 📚订阅专栏:机器学习&&深度学习 希望文章对你们有所…

vue项目打包成App

地址一 地址二 一、将项目开发完成后,在vue.config.js 文件中添加路径 publicPath:‘./’ 在router/index.js关闭路由的history模式(默认哈希) 二、npm run build,生成的dist文件目录 三、打开 HBuilder X 开发工具 新建 >…

SAMStable-Diffusion集成进化!分割、生成一切!AI绘画新玩法

自SAM「分割一切」模型推出之后,二创潮就开始了,有想法有行动!飞桨AI Studio开发者会唱歌的炼丹师就创作出SAM进化版,将SAM、Stable Diffusion集成,实现「分割」、「生成」能力二合一,并部署为应用&#xf…

吴恩达ChatGPT《LangChain Chat with Your Data》笔记

文章目录 1. Introduction2. Document Loading2.1 Retrieval Augmented Generation(RAG)2.2 Load PDFs2.3 Load YouTube2.4 Load URLs2.5 Load Notion 3. Document Splitting3.1 Splitter Flow3.2 Character Splitter3.3 Token Splitter3.4 Markdown Spl…