JMeter实操入门之登录

news2024/9/23 7:22:27

JMeter实操入门之登录

  • 前言
  • 初级-无变量的登录
    • 线程组
    • 取样器-HTTP请求
  • 进阶-定义变量的登录
    • 用户定义的变量
    • 获取JSON返回的数据-token
    • token设置全局变量

前言

安装及环境配置教程可移步:JMeter安装与配置环境

本篇文章针对小白进一步的认识及运用JMeter,围绕知识点会有:线程组、用户定义变量、全局变量、HTTP信息头管理器等

初级-无变量的登录

  1. 测试计划下,右击添加线程组
    在这里插入图片描述

线程组

一个线程组能够看作一个虚拟用户组,线程组中的每一个线程均可以理解为一个虚拟用户。多个用户同时去执行相同的一批次任务。每一个线程之间都是隔离的,互不影响的。一个线程的执行过程当中,操作的变量,不会影响其余线程的变量值。
如下图:1s 内启动并运行 1个线程,一共启动 10个线程,总共发送 1 个请求(一个用户只请求一次)
在这里插入图片描述

  1. 线程组下,右击选择取样器,添加HTTP请求
    在这里插入图片描述

取样器-HTTP请求

Parameters参数
Body Data主体数据
具体看登录的接口是怎么请求的如下图,是通过Body Data传参的
在这里插入图片描述
F12查看接口请求的数据:接口https://smarthotel.laiyijian.cn/smarthotel-authentication/open/admin-auth/createToken
拆解填入JMeter-HTTP请求中
① 协议为:https
②服务器IP(HOST): smarthotel.laiyijian.cn
③请求方式:POST
④接口路径:/smarthotel-authentication/open/admin-auth/createToken
⑤请求的BODY参数为:

{
	"username": "myy@mall", 
	"password": "admin123456", 
	"loginChannel": 1
	}

在这里插入图片描述
3. 线程组下,选择配置元件,添加HTTP信息头管理器

  • 注意Content-Type: application/json
    • jmeter中如果不指定content-type,默认使用此格式(参数格式:key1=value1&key2=value2)
    • application/json不是默认的文件类型,所以需要告诉服务器我们发送的请求信息是哪种格式的。申明方法为添加信息头管理,在里面申明类型,消息头管理器添加方法:http请求上点击右键-添加-配置元件-HTTP信息头管理器
      在这里插入图片描述
content-type
application/json

在这里插入图片描述

  1. 线程组下,右击选择监听器,添加结果树
    在这里插入图片描述

  2. 运行,查看结果
    在这里插入图片描述
    默认txt,改成JSON。(用于查看响应数据)
    在这里插入图片描述

  • 如果返回的数据有乱码
    • 方法一:可在消息请求头中设置为Content-Type:application/json;charset=UTF-8
    • 方法二:检查jmeter.properties修改sampleresult.default.encoding=UTF-8
    • 在这里插入图片描述

进阶-定义变量的登录

本篇登录可定义的变量有:服务器IP、接口Body Data的用户名、密码

用户定义的变量

  1. 测试计划下,选择配置元件,添加用户定义的变量
    在这里插入图片描述
  2. 添加服务器IP、接口Body Data的用户名、密码。设置的名称到时候需要去引用的
    在这里插入图片描述
    3.在登录HTTP请求中,引用变量

在这里插入图片描述
4. 运行查看请求是否正常
在这里插入图片描述

获取JSON返回的数据-token

添加多个线程组同时运行其他接口的情况下,可以从登录返回的JSON中获取token

  1. HTTP信息头管理器下,选择后置处理器,添加JSON Extractor
    在这里插入图片描述
  2. 变量名:token
    JSON参数路径:$.data.token
    在这里插入图片描述
    JSON参数返回如下可以看出是data下的token
    在这里插入图片描述
  3. 线程组下,选择取样器,添加Debug取样器查看是否获取了token变量

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

token设置全局变量

通过后置定义token变量后,如需要在别的线程组使用,需要定义全局变量

  1. 线程组下,选择取样器,添加Bean Shell Sampler
    在这里插入图片描述
    表达式: ${__setProperty(全局变量名,${局部变量名},)};
    在这里插入图片描述

  2. 在别的线程组下HTTP信息头中引用
    表达式:${__property(全局变量名)}
    在这里插入图片描述
    因为Authorization需要获得Bearer加token值。具体看自己需要用到的
    在这里插入图片描述

  3. 最后运行结果如下:每个线程组中都可以加个结果树,便于单个查看请求的数据是否正确。
    在这里插入图片描述

  4. 完成后,需要保存测试计划。
    测试计划下,选择监听器,添加Simple Data Writer
    在这里插入图片描述
    保存文件路径,后缀可以.jmx
    在这里插入图片描述
    下次打开Jmeter可以直接打开该测试计划
    在这里插入图片描述

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

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

相关文章

从数据角度分析年龄与NBA球员赛场表现的关系【数据分析项目分享】

好久不见朋友们,今天给大家分享一个我自己很感兴趣的话题分析——NBA球员表现跟年龄关系到底大不大?数据来源于Kaggle,感兴趣的朋友可以点赞评论留言,我会将数据同代码一起发送给你。 目录 NBA球员表现的探索性数据分析导入Python…

ChatGPT与文心一言:AI助手之巅的对决

随着科技的飞速发展,人工智能助手已经渗透到我们的日常生活和工作中。 而在这个充满竞争的领域里,ChatGPT和文心一言无疑是最引人注目的两款产品。它们各自拥有独特的优势,但在智能回复、语言准确性、知识库丰富度等方面却存在差异。那么&am…

【设计模式】责任连模式怎么用?

我将通过一个贴近现实的故事——请假审批流程,带你了解和掌握责任链模式。 什么是责任链模式? 责任链模式是一种行为设计模式,它让你可以避免将请求的发送者与接收者耦合在一起,让多个对象都有处理请求的机会将这个对象连成一条…

RabbitMQ入门篇【图文并茂,超级详细】

🥳🥳Welcome 的Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Docker的相关操作吧 目录 🥳🥳Welcome 的Huihuis Code World ! !🥳🥳 前言 1.什么是MQ 2.理解MQ 3.生活…

探秘网络爬虫的基本原理与实例应用

1. 基本原理 网络爬虫是一种用于自动化获取互联网信息的程序,其基本原理包括URL获取、HTTP请求、HTML解析、数据提取和数据存储等步骤。 URL获取: 确定需要访问的目标网页,通过人工指定、站点地图或之前的抓取结果获取URL。 HTTP请求&#…

MySQL中SELECT字句的顺序以及具体使用

目录 1.SELECT字句及其顺序 2.使用方法举例 3.HAVING和WHERE 1.SELECT字句及其顺序 *下表来自于图灵程序设计丛书,数据库系列——《SQL必知必会》 2.使用方法举例 *题目来源于牛客网 题目描述 现在运营想要查看不同大学的用户平均发帖情况,并期望结…

【JavaScript】面向后端快速学习 笔记

文章目录 JS是什么?一、JS导入二、数据类型 变量 运算符三、流程控制四、函数五、对象 与 JSON5.1 对象5.2 JSON5.3 常见对象1. 数组2. Boolean对象3. Date对象4. Math5. Number6. String 六、事件6.1 常用方法1. 鼠标事件2. 键盘事件3. 表单事件 6.2 事件的绑定**1…

深入Docker5:安装nginx部署完整项目

目录 准备 为什么要使用nginx mysql容器构建 1.删除容器 2.创建文件夹 3.上传配置文件 4.命令构建mysql容器 5.进入mysql容器,授予root所有权限 6.在mysql中用命令运行sql文件 7.创建指定数据库shop 8.执行指定的sql文件 nginx安装与部署 1.拉取镜像 2…

/var/run/yum.pid 已被锁定,PID 为 2762 的另一个程序正在运行解决方法

一、问题 /var/run/yum.pid 已被锁定,PID 为 2762 的另一个程序正在运行 二、原因 这个提示意味着在你的Linux系统中,有一个yum(或者dnf,在较新版本的Fedora和RHEL/CentOS 8中)进程正在运行,并且它已经创建…

Vue基知识五

一 vue配置代理 1.1 跨域 JQuery大多数封装的是对DOM的操作,而VUE是要减少对DOM的操作,所以VUE里很少用JQuery,而是用axios发送请求;JQuery与axios都是对xhr进行的封装; 下载并引入axios npm i axios点击按钮请求后…

tx2开发板升级JetPack至最新

最近一个项目用到了tx2, 上面的jetpack太老了需要更新,很久没和开发板打交道了,记录一下。中间没怎么截图,所以可能文字居多。 准备工作 Ubuntu 18.04的机器,避免有坑,不要使用虚拟机,一定要是物理机&…

学习笔记应用——创建用户账户并且拥有自己的信息

一、创建用户账户 将建立一个用户注册和身份验证系统,让用户能够注册账户,进而登录和注销。我们将创建一个新的应用程序,其中包含与处理用户账户相关的所有功能。 创建user 我们首先使用命令 startapp 来创建一个名为 users 的应用程序&…

【无标题】Spring Boot整合MyBatis-Plus,并通过AutoGenerator生成编程喵项目骨架代码**

​ 作为一名 Java 后端开发,日常工作中免不了要生成数据库表对应的持久化对象 PO,操作数据库的接口 DAO,以及 CRUD 的 XML,也就是 mapper。 Mybatis Generator 是 MyBatis 官方提供的一个代码生成工具,完全可以胜任这…

AI学习(2): PyTorch2.x环境安装

1.介绍 注:下面是对PyTorch进行了简单的介绍,不喜欢可直接跳过。 1.1 什么是PyTorch PyTorch是一个由Facebook人工智能研究团队开发的开源机器学习库,用于开发人工智能和深度学习的应用程序。PyTorch支持广泛的机器学习和深度学习算法,并基于…

鸿蒙开发系列教程(五)--ArkTS语言:组件开发

1、基础组件 组件API文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/84_u58f0_u660e_u5f0f_u5f00_u53d1_u8303_u5f0f_uff09-0000001427744776-V2 查看组件API 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 容…

gdip-yolo项目解读:gdip模块 |mdgip模块 |GDIP regularizer模块的使用分析

gdip-yolo是2022年提出了一个端到端的图像自适应目标检测框架,其论文中的效果展示了良好的图像增强效果。其提出了gdip模块 |mdgip模块 |GDIP regularizer模块等模块,并表明这是效果提升的关键。为此对gdip-yolo的项目进行深入分析。 gdip-yolo的论文可以…

Linux网络命令

一、网络配置命令 查看linux基础的网络设置: 网关:route -nIP地址:ifconfig ip aDNS服务器:cat /etc/resolv.conf主机名:hostname路由:route -n网络连接状态:ss 或 netstat域名解析nslookup ho…

【ARMv8M Cortex-M33 系列 7.2 -- HardFault 问题定位 1】

请阅读【嵌入式开发学习必备专栏 之 ARM Cortex-Mx专栏】 文章目录 问题背景堆栈对齐要求Cortex-M33 的 FPU 功能 问题背景 rt-thread 在PendSV_Handler退出的时候发生了HardFault_Handler是什么原因?且 LR 的值为0xfffffffd 堆栈对齐要求 在 ARM Cortex-M 架构中…

【已解决】Qt Creator设计模式被禁用不能点的原因及解决方案

Qt Creator 下载地址(含历史版本):https://download.qt.io/official_releases/qtcreator/ 症状 Qt Creator 目前最新版为12.0.1,安装后打开.qml文件发现设计工具图标为禁用状态。 原因及解决方案 根据官网材料(Qt C…

air001研究笔记.基于arduino快速开发简单项目

一、air001芯片简介 air001是厂商合宙推出的一款tssop封装的mcu芯片。支持swd与串口烧录,多面向简单的功能简单类别的电子产品,因为官方文档齐全上手简易,所以也特别适合非专业爱好者乃至于幼儿编程。芯片内置资源:AIR001芯片数据…