jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

时间:2022-09-22 16:16:28

前提:

eclipse、JDK、Jmeter

说明:

本文分为两部分进行配置说明

第一部分:编写JavaMD5加密脚本

第二部分:使用Jmeter的BeanShell进行验证

****************************************************************************************

第一部分:编写JavaMD5加密脚本:

第一步:打开eclipse,创建一个MD5Test包,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

输入创建的包的名称,点击Finish

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

完成后如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

第二步:选择该包,邮件创建一个class类

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

创建class的名称为MD5_Method,点击finish,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

完成后如下图所示:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

第三步:编写MD5方法,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

脚本如下:

package MD5Test;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; public class MD5_Method { public String MD5(String sourceStr) {
String result = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(sourceStr.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = ; offset < b.length; offset++) {
i = b[offset];
if (i < )
i += ;
if (i < )
buf.append("");
buf.append(Integer.toHexString(i));
}
result = buf.toString();
System.out.println("MD5(" + sourceStr + ",32) = " + result);
// System.out.println("MD5(" + sourceStr + ",16) = " + buf.toString().substring(8, 24));
} catch (NoSuchAlgorithmException e) {
System.out.println(e);
}
return result;
}
}

第四步:编写一个test脚本,测试MD5加密方法的正确性

方法同创建MD5_Method方式一致,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

test中的脚本编写如下:

package MD5Test;
import MD5Test.MD5_Method;
public class test {
public static void main(String[] args){
String res = new MD5_Method().MD5("wangyuhang@acktest");
System.out.print(res); } }

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

验证,点击界面上的Run菜单选项运行test.Java文件,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

第五步:将MD5Test导出为jar包

选择MD5Test右键选择导出,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

选择Java下的Jar File 点击next,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

配置JARfile导出的路径及导出的名称点击finish,在D:\Beanshellstudy\路径下查看是否存在TestMD5.jar文件,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

第六步:将打包出来的TestMD5.jar文件放到Jmeter的\lib\ext目录下,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

第六步:启动Jmeter(注意每次更新ext下的文件时需要重启Jmeter才生效)

**************************************************************************************

第二部分:使用Jmeter的BeanShell进行验证

第一步:启动Jmeter,并创建一个test的线程组,如下图:

(右键测试计划—添加—Thread(Users)—线程组,如下图:)

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

第二步:选择添加—配置元件—用户定义的变量,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

第三步:选择用户定义的变量添加passwd及相应的值,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

第四步:创建HTTP请求(添加—sampler—HTTP请求),如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

服务器名称:www.baidu.com(以百度为例)

路径:/login.php(随意)

点击界面下的添加按钮,填写带的参数

第五步:添加察看结果树(添加—监听器—察看结构树),如下图

这里保持默认就好不需要配置

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

第六步:在http请求下,添加BeanShell前置处理器,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

添加完成后选择添加的BeanShell Preprocessor,编写脚本,如下图所示:

import MD5Test.MD5_Method;
String input = vars.get("passwd");
String output = new MD5_Method().MD5(input);
vars.put("passwd",output);

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

第七步:为了察看请求前和请求后passwd的值,在http请求的前后加上debug,如下图:

配置默认就好

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

第八步:运行Jmeter脚本

请求passwd的值:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

请求后passwd的值,已经进行加密处理:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

HTTP请求中的passwd值,如下图:

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

至此说明MD5加密成功。。。。OK

参考文档:

https://www.cnblogs.com/xinxin1994/p/6835257.html

jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密的更多相关文章

  1. jmeter接口测试-调用java的jar包-csv参数化请求-BeanShellPreProcessor生成验签作为请求验证参数-中文乱码----实战

    背景及思路: 需求:要做 创建新卡 接口的测试,要求: 1. 不需要每次手动修改请求参数. 方案:文中先用excle将数据准备好,导出为csv格式,再用jmeter的csv请求进行参数化 2. 卡号需 ...

  2. jmeter 调用jar包 本地加密

    1.因为加密接口是有我们自己加密方式,所有加密包由开发提供,获得加密包后方式jmeter目录/lib/ext文件夹中 2.选择引入加密包 3.添加BeanShell Sampler和Debug Sam ...

  3. Unity调用Android的两个方式:其一、调用jar包

    unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...

  4. Loadrunner11&period;0调用Jar包

    又好几天不写东西了,是不是意味着最近没有大的进步,时时敲打自己. 今天把loadrunner如何调用Jar包搞定了,现在把配置的过程中需要注意的东西写下来,分享给小伙伴儿,减少他们在前行路上的弯路. ...

  5. html实现调用jar包

    整体思路:html引用URL protocol-本地注册表key,key对应某一c#写的exe可执行文件,由exe可执行文件调用cmd,cmd执行jar包. 1.添加注册表: Windows Regi ...

  6. Jmeter 如何引入外部jar 包

    最近使用Jmeter 测试需要引入Jar包,之前也遇到过,用过两种方式,各有利弊,今天又接触了一种方式,挺好,在此做一总结. 方法一:测试计划 通过 Add directory or jar to c ...

  7. winform调用jar包

    因为工作需要,需要做一个数据上传的程序,客户规定的是:数据接口采用http连接,采用JSON-RPC轻量级远程调用协议.所以决定用winform做一个管理界面(其中还包括其他的功能),java完成数据 ...

  8. (转载)Python 的 JPype 模块调用 Jar 包

    Python 的 JPype 模块调用 Jar 包 背景与需求 最近学习并安装使用了HttpRunner框架去尝试做接口测试,并有后续在公司推广的打算. HttpRunner由Python开发,调用接 ...

  9. Python调用jar包中的方法

    [本文出自天外归云的博客园] 需求 最近在后台项目代码中一段自定义的AES加解密的程序在平时的测试工作中应用频繁.因为写脚本经常会需要使用,而经过各种尝试,比如jpype等,都不尽如人意.最后转换思路 ...

随机推荐

  1. Google-glog 日志库使用手记

    作者:高张远瞩(HiLoveS) 博客:http://www.cnblogs.com/hiloves/ 转载请保留该信息 Google Glog 是一个C++语言的应用级日志记录框架,提供了 C++ ...

  2. asp&period;net中如何防止用户重复点击提交按钮

    asp.net中如何防止用户重复点击提交按钮   asp.net 中防止因为网速慢等影响交互的问题导致用户可能点击多次提交按钮,从而导致数据库中出现多条重复的记录,经过亲自验证在网上找的方法,找到两个 ...

  3. JBPM4入门——4&period;封装流程管理的工具类(JbpmUtil)

    本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...

  4. 一次PostgreSql数据迁移,使用nodejs来完成

    2014-02-08 XX开放平台不允许使用站外的服务器了,可是我们的app都在站外,数据库也在站外,全都要求迁移到其云主机上(坑爹啊).我们在其云主机上仅有有限的资源,而且也有在运行中的数据库,要做 ...

  5. Definition of&colon;payload

    (1) Refers to the "actual data" in a packet or file minus all headers attached for transpo ...

  6. Linux 后台运行命令:nohup 和 &amp&semi;

    [参开文章]:nohup 与 & 的区别 1. nohup 1.1 基本概念 将程序以忽略挂起信号的方式运行起来: 不可以免疫 Ctrl + C  的 SIGINT 中断信号: 可以免疫 SI ...

  7. &lbrack;Asp&period;net core 2&period;0&rsqb;Ueditor 图片上传

    摘要 在项目中要用到富文本编辑器,包含上传图片,插入视频等功能.但ueditor只有.net版本,没有支持core.那么上传等接口就需要自己实现了. 一个例子 首先去百度ueditor官网下载简化版的 ...

  8. 回归JavaScript基础(九)

    主题:理解对象,创建对象. 小明是一名程序猿,也是一条单身狗!他常常自嘲:每天都会有很多对象,但却没有女朋友! 多么痛的领悟.哈哈,目前比较流行的编程语言都是面向对象的语言(Object-Orient ...

  9. Sprint第一个冲刺(第八天)

    一.Sprint介绍 完善点餐界面,点击进行跳转. 实验截图: 任务进度: 二.Sprint周期 看板: 燃尽图:

  10. SpringMVC注解方式与文件上传

    目录: springmvc的注解方式 文件上传(上传图片,并显示) 一.注解 在类前面加上@Controller 表示该类是一个控制器在方法handleRequest 前面加上 @RequestMap ...