jmeter之MD5加密接口请求教程

前言: 有时候在项目中,需要使用MD5加密的方法才可以登录,或者在某一个接口中遇到

登录获取token后才可以进行关联,下面介绍下遇到的常见使用

一、第一种方法:使用jmeter自带的函数助手digest

  1. 选择工具,选择函数助手对话框,或者点击函数助手图标
  2. 选择digest,配置如下,点击生成后关闭该界面(已经复制好了),用户名是手机号码,登录密码是:md5('zr'+密码+'hg')
  3. 复制到请求接口的参数上面
  4. 发起请求,返回成功,只给了password参数使用了md5加密
  1. 在查看结果树里面测试一下,获取token值

  2. 在获取token请求下加一个json提取器
    第一个值:变量名(任意取)
    第二个值:路径表达式(输入获取token的模板),
    第三个值:0是随机,1是选择第一个出现的date(以此类推),写0或1都行
    第四个值:缺省值,写一个默认返回值,没拿到就返回 error

  3. 再获取token请求下添加一个调试后置处理器,执行后查看获取到了token值

  4. 添加一个获取商品列表接口并获取所有商品id号,和python中的列表方法差不多
    测试的时候可加可不加$符号都行
    获取所有商品id号:.data\*.id
    获取前5个id号:.data:5.id
    获取部分id号:.data2:5.id

  5. 获取商品列表这里添加一个json提取器,设置为0随机

  6. 获取商品编号接口,请求成功

  7. 添加秒杀接口,请求成功


    备注:如果最后做秒杀请求,做完全部后再做一个秒杀请求,添加一个tearDown
    请求会报错,因为当前变量不支持跨线程组,需要把参数设置成全局变量

  8. 把token设置成全局变量,在token请求下添加一个Beanshell后置处理程序,使用函数
    助手setProperty来设置,点击生成,关闭界面,ctrl+v复制到当前Script里面

  9. 同样把获取商品接口详情也需要添加一个Beanshell后置处理程序

  10. 对秒杀接口的参数使用全局变量

  11. 请求后秒杀商品成功

二、第二种:使用公司自己写的MD5规则,可能是jar包或者class文件或者java文件

第一种,使用md5.jar
  1. 从测试计划导入MD5.jar包

  2. 获取token接口下面新增一个Beanshell预处理程序

  3. 发起请求成功

    Tips:如果不从测试计划中导入MD5.jar包,就把jar包存放到jmeter安装的路径lib\ext下面

把MD5.jar包存放到路径lib\ext下面之后,把测试计划添加的删除,Beanshell预处理程序如下,一样可以请求成功

第二种:使用class文件形式的jar包
  1. 在登录下面新增一个Beanshell预处理程序,发起请求成功
bash 复制代码
//导入MD5Util.class
addClassPath("D:\\算法文件\\MD5Util.class");
import MD5Util;
MD5Util test = new MD5Util();
String res = test.getMD5String("zr111111hg");
log.info("-------->"+res);

vars.put("psw",res);
第三种:使用java文件形式的jar包
  1. 在登录下面新增一个Beanshell预处理程序,发起请求成功
bash 复制代码
//导入java文件

source("d:\\算法文件\\MD5util.java");

import MD5Util;

MD5Util test = new MD5Util();
String res = test.getMD5String("zr111111hg");
log.info("MD5---------->"+res);
vars.put("psw",res);
相关推荐
呱呱复呱呱2 小时前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽7 小时前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码7 小时前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
兵慌码乱17 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵18 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio1 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户0332126663671 天前
使用 Python 从零创建 Word 文档
python
Csvn1 天前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽1 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户556918817531 天前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维