JMeter实操入门之登录

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.hqwc.cn/news/416711.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux编写简易shell

思路:​ ​ ​ 所以要写一个shell,需要循环以下过程:​ 获取命令行解析命令行建立一个子进程(fork)替换子进程(execvp)父进程等待子进程退出(wait) 实现代码:​ #inc…

力扣hot100 最长有效括号 动态规划

Problem: 32. 最长有效括号 文章目录 思路Code 思路 👨‍🏫 参考题解 Code ⏰ 时间复杂度: O ( n ) O(n) O(n) 🌎 空间复杂度: O ( n ) O(n) O(n) class Solution {public int longestValidParentheses(String s){int n s.length();…

顺序表(C/C++)

本篇将讲解一些关于顺序表的内容,顺序表分为静态顺序表和动态顺序表,其中经常用到的为动态顺序表,所以本篇将以动态顺序表为重点给出一些关于动态顺序表的操作。 因为顺序表的实现逻辑较为简单,对于代码的讲解大多以注释给出。 1…

IaC基础设施即代码:Terraform 使用 provider 自定义提供者

目录 一、实验 1.环境 2.Terraform 使用 provider 自定义提供者 (Resource) 3.Terraform 使用 provider 自定义提供者 (Module) 一、实验 1.环境 (1)主机 表1-1 主机 主机系统软件工具备注jia Windo…

深入数仓离线数据同步:问题分析与优化措施

一、前言 在数据仓库领域,离线数仓和实时数仓是常见的两种架构类型。离线数仓一般通过定时任务在特定时间点(通常是凌晨)将业务数据同步到数据仓库中。这种方式适用于对数据实时性要求不高,更侧重于历史数据分析和报告生成的场景…

2024.1.20每日一题

LeetCode 2788.按分隔符拆分字符串 2788. 按分隔符拆分字符串 - 力扣(LeetCode) 题目描述 给你一个字符串数组 words 和一个字符 separator ,请你按 separator 拆分 words 中的每个字符串。 返回一个由拆分后的新字符串组成的字符串数组…

【Python】人工智能-机器学习——不调库手撕演化算法解决函数最小值问题

1 作业内容描述 1.1 背景 现在有一个函数 3 − s i n 2 ( j x 1 ) − s i n 2 ( j x 2 ) 3-sin^2(jx_1)-sin^2(jx_2) 3−sin2(jx1​)−sin2(jx2​),有两个变量 x 1 x_1 x1​ 和 x 2 x_2 x2​,它们的定义域为 x 1 , x 2 ∈ [ 0 , 6 ] x_1,x_2\in[0,6] …

Linux 【C编程】 引入线程,线程相关函数

1.线程的引入 1.1使用线程同时读取键盘和鼠标 代码演示&#xff1a; #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> #include <termios.h> #include <fcntl.h> #include <string.h> // 读取…

爬取的数据可以入表吗?怎样入表?

合规是数据入表的前提。当前爬虫数据是非常敏感的&#xff0c;因为爬虫极容易造成两大不合规的问题&#xff1a;一是没有经过个人同意获取数据&#xff0c;二是爬取的数据里可能含有个人敏感信息也是一个问题。现在法律对于这部分非常严苛&#xff0c;如果企业里有50条未获得授…

Pytest系列(2) - assert断言详细使用

前言 与unittest不同&#xff0c;pytest使用的是python自带的assert关键字来进行断言assert关键字后面可以接一个表达式&#xff0c;只要表达式的最终结果为True&#xff0c;那么断言通过&#xff0c;用例执行成功&#xff0c;否则用例执行失败 assert小栗子 想在抛出异常之…

算数移位,逻辑移位以及循环移位

目录 一.算数移位 1.原码的算数移位一一符号位保持不变&#xff0c;仅对数值位进行移位 2.反码的算数移位 3.补码的算数移位 二.逻辑移位 三.循环移位 一.算数移位 1.原码的算数移位一一符号位保持不变&#xff0c;仅对数值位进行移位 算数移位是通过改变各个数码位和小…

vue二次封装ant-design-vue中的Modal弹窗组件,实现拖拽,全屏两种功能,原有参数属性不变

在我们的项目的有的地方需要用弹框的拖拽&#xff0c;以及弹窗自定义全屏显示的需求&#xff0c;所以再次将二次合一&#xff0c;同时弹框里面内容自适应屏幕高度 在ant-design-vue中&#xff0c;已经实现了拖拽&#xff0c;全屏的功能&#xff0c;下面是ant官网的示例 自定义…