【Jmeter】使用Jmeter进行接口测试、跨线程组获取参数

news2025/1/14 1:15:56

Jmeter接口测试

  • Jmeter设置成中文
  • 实操练习-跨线程组提取参数,使用值
  • HTTP请求默认值&HTTP信息头管理器

相信打算从事测试工程师的同学们,肯定对Jmeter是耳熟能详的。使用Jmeter可以进行接口测试、性能测试、压力测试等等;这个章节介绍如何使用Jmeter针对【登录查询图纸组】的相关接口测试。

Jmeter设置成中文

Jmeter语言设置如下,可设置为中文简体

在这里插入图片描述

Jmeter首页:打开Jmeter首页默认为下方所示,左侧默认一个“测试计划”,点击测试计划,右侧显示如下,一定要勾选上“独立运行每个线程组(例如在一个组运行结束后启动下一个)”,不然,比如在登录场景,后面的接口需要获取到登录的令牌token进行验证,点击执行可能会出现一些难以发现的错误,而这些错误其实就是因为执行的顺序出现了错误,导致有些参数获取不到。

在这里插入图片描述

实操练习-跨线程组提取参数,使用值

1. 创建一个线程组: 鼠标右击测试计划,选择添加,选择线程,选择线程组

在这里插入图片描述
在这里插入图片描述

HTTP请求默认值&HTTP信息头管理器

当我们在jmeter上创建多个http的请求时,每个请求都需要重新的在请求里添加协议,端口号和路径等,会重复操作很多次,因此使用jmeter上的http请求默认值可以解决这个麻烦。所有在该请求默认值层级下的HTTP请求都会默认带上这个请求值,于是我们只需要选择每个HTTP的请求方法和路径即可。

2. 创建一个HTTP请求默认值: 表示当前层级下所有HTTP请求都会默认带上这个请求默认值;
操作步骤: 右击测试计划、选择添加、选择配置元件、选择HTTP请求默认值。
Jmeter的作用域: 在测试计划层级下创建一个HTTP请求默认值,表示测试计划层级下的所有HTTP请求都会带上这个默认值,如果该层级下某个HTTP请求填写了协议、域名,那么不会去拿请求默认值里的协议、域名,以自己填写的值为准。类似于全局变量和局部变量的作用域。

  • 字段解释:以这类接口为例https://www.ceshi.com:8080/auth/password

    1. 协议:即当前接口遵守的是HTTP协议 还是 HTPPS协议,此处填写https
    2. 服务器名称或IP:填写当前接口的前缀域名,那么此处就填写www.ceshi.com
    3. 端口号:没有就不填写,此处可填写8080
    4. 路径:可不填写
    5. 内容编码:可填写utf8

请添加图片描述

创建一个HTTP信息头管理器: 如果不创建信息头管理器,那么后续的HTTP请求可能就会报错,原因就是HTTP请求里的请求头错误。此操作也是有作用域,Jmeter的每个操作都存在作用域。笔者是在测试计划下创建的信息头管理器,那么意味着所有的HTTP请求都会带上这个请求头内容。

在这里插入图片描述
在这里插入图片描述

3. 添加一个HTTP请求: 鼠标右击线程组、选择取样器、选择HTTP请求

请添加图片描述

4. 添加接口路径 :由于在HTTP请求默认值里填写了协议类型和IP,所有后面的HTTP请求我们只能填写请求方法类型和路径;这里的参数是JSON格式的,于是可以选择 “消息体数据”。
$ {username}、$ {password}:是Jmeter的固定语法,用于获取自定义参数、获取从其他接口里提取到的参数;不会Jmeter语法的同学可以搜索自学一下哦~

在这里插入图片描述

5. 创建一个自定义参数: 右击HTTP请求,选择添加,选择配置元件,选择用户定义的变量。
名称(变量):即上一步操作写的$ {username} 里的username
值(变量取值):就是username里存放的值。

请添加图片描述

6. 添加一个查看结果树:可以查看每个HTTP请求的返回内容,根据返回的内容,在下一步里的JSON提取器里填写JSON Path expressions,前提是返回的内容必须是JSON格式的。当然如果不是JSON格式,那么需要使用其他的提取器。

  • 右击测试计划,创建一个“查看结果树”,那么所有线程组里的HTTP请求返回的响应都可以在这个结果树里查看。
    在这里插入图片描述
  • 点击运行,查看结果树内容

在这里插入图片描述

  • 测试是否可以提取到值:JsonPath解析器可以参考下这个网站

在这里插入图片描述

6.1 添加一个JSON提取器: 方便后面的查询操作,有权限访问查询接口。右击HTTP请求,选择添加,选择后置处理器吗,选择JSON提取器。

在这里插入图片描述

  • 填写提取器里的内容:Names of created variables=token,JSON Path expressions=$.data,Match No. (0 for Random)=1,Defaylt Values=null;关于不会这个Json语法表达式的同学,可以去度娘搜索一下,学习一下~

在这里插入图片描述

  • Names of created variables: 自定义一个变量名,把提取到的值存放在这个变量里。可以多个,用分号;进行分隔。
  • JSON Path expressions: 使用JSON语法的表达式,提取值。可以填写多个,要求与变量名数量一致,用分号;进行分隔。
  • Match No. (0 for Random): 表示提取几个值。
    • 此处取值有:0代表随机、-1代表所有,1则代表取值第1个,2则代表取值第2个,以此类推。
  • Compute conxatenation var (suffix_ALL): 该选项如果勾选,则将所有的值用逗号拼接,并保存到一个变量中。注意只有Match NO为-1时该功能打钩才有效果。
  • Defaylt Values: 当提取不到值时,返回一个默认值,用户自定义,可以多个,注意当变量名为多个时,默认值也要求多个。

Apply to:作用范围(返回内容的取值范围)

  • Main sample and sub-samples:作用于父节点的取样器及对应子节点的取样器。

  • Main sample only:仅作用于父节点的取样器。(选默认的 main sample only 就行了)

  • Sub-samples only:仅作用于子节点的取样器。

  • JMeter Variable Name to use:作用于JMeter变量(输入框内可输入JMeter的变量名称),从指定变量中提取需要的值。

  • 和JSON提取器配套使用的操作有:调试取样器。右击当前的线程组,选择添加,选择取样器,选择Debug Sampler,可以在结果树里查看这个调试取样器的结果,方便查看JSON提取器提取到的值是否正确
    在这里插入图片描述

  1. 添加一个BeanShell 后置处理程序,用于跨线程组获取参数值

在这里插入图片描述
在这里插入图片描述

  • 生成一个函数
    在这里插入图片描述
  • 把函数字符串复制到BeanShell 后置处理程序里

在这里插入图片描述

  1. 设置一个断言:在对应的HTTP请求下,右击,选择添加, 选择断言,选择响应断言,添加测试模式(可以填写这个HTTP请求响应里的内容,一般填写code:200和msg:成功)

请添加图片描述

  1. 重复前面的创建线程组的步骤,在该线程组下创建一个HTTP请求用来操作查询图纸

在这里插入图片描述

10.在HTTP请求下,创建一个HTTP信息头管理器:右击HTTP请求,选择添加,选择配置元件,选择HTTP信息头管理器

在这里插入图片描述

  • 点击函数助手,选择property,此处的Name of Property填写BeanShell 后置处理程序的Name of Property,点击生成,最后把函数字符串复制下来。
    在这里插入图片描述
  • 在刚才第10步创建的HTTP信息头管理器里新增一条信息:
    在这里插入图片描述
  1. 最后点击运行,查看结果树,发现可以提取参数值,跨线程组使用这个值

在这里插入图片描述

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

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

相关文章

在使用LabVIEW控制多个串口设备进行数据读取时,读取时间过长

在使用LabVIEW控制多个串口设备进行数据读取时,如果发现数据更新时间超过5秒,可以从以下几个方面进行分析和解决: 1. 串口配置与通信参数 确保每个串口的通信参数(波特率、数据位、停止位、校验位等)配置正确&#x…

百度软件测试面试经历,期望薪资27K

一面 1、 请为百度搜索框设计测试用例? 2、百度设计框上线前需要进行那些测试? 界面测试,功能测试,性能测试,安全性测试,易用性测试,兼容性测试,UI测试。 3、如何查看http状态码…

23. 【Java教程】接口

本小节我们将学习 Java 接口(interface),通过本小节的学习,你将了解到什么是接口、为什么需要接口、如何定义和实现接口,以及接口的特点等内容。最后我们也将对比抽象类和接口的区别。 1. 概念 Java 接口是一系列方法的…

感恩父母的短视频:成都科成博通文化传媒公司

感恩父母的短视频:情深意重,温馨传递 在这个快节奏、信息化的时代,短视频以其独特的方式,迅速成为了人们表达情感、分享生活的重要工具。成都科成博通文化传媒公司而当我们把镜头对准父母,用短视频的形式记录下对他们…

【面试干货】矩阵对角线元素之和

【面试干货】矩阵对角线元素之和 1、实现思想2、代码实现 💖The Begin💖点点关注,收藏不迷路💖 1、实现思想 创建一个3x3的二维数组来表示输入的矩阵。通过嵌套循环读取输入的矩阵元素,并将其保存到数组中。再次嵌套循…

云端升级,智能适配——LDR6282,USB-C接口显示器的最佳选择

华为MateView USB-C接口显示器技术深度解析与科普 随着科技的飞速发展,终端显示产品也迎来了全新的变革。在众多更新迭代中,华为MateView显示器凭借其独特的USB-C接口设计,为用户带来了前所未有的便捷体验。本文将带您深入探索这款显示器的技…

深度学习500问——Chapter09:图像分割(5)

文章目录 9.12 DenseNet 9.13 图像分割的数据集 9.13.1 PASCAL VOC 9.13.2 MS COCO 9.13.3 Cityscapes 9.14 全景分割 9.12 DenseNet 这篇论文是CVPR2017年的最佳论文。 卷积神经网络结构的设计主要朝着两个方向发展,一个是更宽的网络(代表&#xff1a…

vue3之使用图片实现类似于 el-radio 的单选框功能,并且可实现选中和取消选中

背景 我们在工作中常用的一般都是使用类似于 element-plus 中的 el-radio 或者是 el-checkbox 来实现单选或者多选 若有一天我们遇到了一个新的业务需求,需要使用 图片 来实现类似于 el-radio 的功能,并且要求实现第一次点击时处于选中状态,当我们再次点击时处于非选中状态…

vue3的节点靶向更新知识分享

靶向更新的流程 先来看看我画的整个靶向更新的流程,如下图: 整个流程主要分为两个大阶段:编译时和运行时。 编译时阶段找出动态节点,使用patchFlag属性将其标记为动态节点。 运行时阶段分为两块:执行render函数阶段…

vue3 路由跳转 携带参数

实现功能:页面A 跳转到 页面B,携带参数 路由router.ts import { createRouter, createWebHistory } from "vue-router";const routes: RouteRecordRaw[] [{path: "/demo/a",name: "aa",component: () > import(&quo…

RabbitMQ(二)七种工作模式

文章目录 概述:工作模式(七种)1. "Hello World!"2. Work Queues(工作队列模式)3. Publish/Subscribe(发布订阅模式)4. Routing5. Topics6. RPC7. Publisher Confirms 详细1. "Hello World!&…

探秘死锁:原理、发生条件及解决方案

探秘死锁:原理、发生条件及解决方案 死锁是多线程编程中常见的一个问题,它会导致程序停止响应,进而影响系统的稳定性和性能。理解死锁的原理、发生条件以及如何预防和解决死锁是编写健壮并发程序的关键。 1. 死锁的定义 死锁是指两个或多个…

前端 CSS 经典:SVG 描边动画

1. 原理 使用 css 中的 stroke 属性,用来描述描边的样式,其中重要的属性 stroke-dasharray、stroke-dashoffset。理解了这两个属性的原理,才能理解描边动画实现的原理。 stroke-dasharray:将描边线变成虚线、其中实线和虚线部分…

NDIS小端口驱动开发(一)

在四种NDIS相关的驱动中,微型端口驱动(也经常翻译为为小端口驱动)位于驱动栈的底部,一般将它理解为NIC设备的驱动程序: 有几种类型的微型端口驱动程序类型: 无连接微型端口驱动程序用于控制无连接网络媒体 ,如以太网的…

代码随想录算法训练营第十四天(py)| 二叉树 | 递归遍历、迭代遍历、统一迭代

1 理论基础 1.1 二叉树的种类 满二叉树 只有度为0和2的节点,且度为0的节点在同一层。 深度为k,有2^k-1个节点 完全二叉树 除了最底层可能没填满,其余每层节点数都达到最大。并且最底层节点全部集中在左边。 二叉搜索树 是一个有数值…

【class14】人工智能初步之语音识别

【class14】 从本节课开始,我们将一起踏入语音识别的世界,学习这些知识点,为自己的视频匹配上字幕:1. 语音识别2. 采样率3. 创建语音识别应用4. 创建语音识别SDK客户端 人类的自然语言可分为两种形态:1.语音&#xff…

Python使用pymysql操作数据库

大家好,当涉及到与数据库进行交互和操作时,Python的pymysql库是一个常用且功能强大的选择。pymysql提供了与MySQL数据库的连接、查询、插入、更新和删除等操作的方法,使得在Python中进行数据库操作变得简单而高效。 1、安装 pymysql 库 在开…

python判断字符串是否为回文串的详细解析与实现

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:回文串的定义与背景 二、判断回文串的基本思路 示例解析 三、代码实…

LabVIEW和ZigBee无线温湿度监测

LabVIEW和ZigBee无线温湿度监测 随着物联网技术的迅速发展,温湿度数据的远程无线监测在农业大棚、仓库和其他需环境控制的场所变得日益重要。开发了一种基于LabVIEW和ZigBee技术的多区域无线温湿度监测系统。系统通过DHT11传感器收集温湿度数据,利用Zig…

【ARK Survival Evolved】方舟:生存进化一键使用服务器开服联机教程

1、进入控制面板 2、第一次购买服务器会安装游戏端,大约5分钟左右,如果长时间处于安装状态请联系客服 3、设置游戏端口 方舟生存进化的设置需要三个端口,它们用于游戏端口(必须为首选端口),查询端口&#…