此文章是vip文章,如何查看?  

1,点击链接获取密钥 http://nicethemes.cn/product/view29882.html

2,在下方输入文章查看密钥即可立即查看当前vip文章


jmeter 二次开发插件(IntelliJ IDEA版) ----- BeanShell SHA1加密的jar包

  • 时间:
  • 浏览:
  • 来源:互联网

网上查了好多文章,但是都是基于eclipse的版本,但是目前来看,使用IDEA更简洁方便~~~
一、首先编写SHA1 加密的算法
1.新建一个project,名字为:JmeterIdea,包名为:SHA1Test,过程如下:
在IDEA中,菜单栏中依次点击【File—New—Project】,在打开的New Project中,选择java — >JBoss ---->Next:
在这里插入图片描述
2. 如下图,勾选“Create project from template”一项后,点击【Next】
在这里插入图片描述
3. 输入如下信息,Project name:JmeterIdea,Base Package:SHA1Tes,文件存储路径,点击【Finish】
在这里插入图片描述
4.完成后,选择 New Windows ,打开一个新的窗口,如图所示:
在这里插入图片描述
5.选择包SHA1Test,右键创建一个class类,如下图:
在这里插入图片描述
6.New Class命名为SHA1_Method ,点击 OK
在这里插入图片描述
7.完成后如下图所示:
在这里插入图片描述
8.编写SHA1算法,如下图:
在这里插入图片描述
算法如下:

package SHA1Test;
import java.security.MessageDigest;

public class SHA1_Method {
    private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5',
            '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
    private static String getFormattedText(byte[] bytes) {
        int len = bytes.length;
        StringBuilder buf = new StringBuilder(len * 2);
        // 把密文转换成十六进制的字符串形式
        for (int j = 0; j < len; j++) {
            buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);
            buf.append(HEX_DIGITS[bytes[j] & 0x0f]);
        }
        return buf.toString();
    }
    public static String encode(String str) {
        if (str == null) {
            return null;
        }
        try {
            MessageDigest messageDigest = MessageDigest.getInstance("SHA1");
            messageDigest.update(str.getBytes());
            return getFormattedText(messageDigest.digest());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

9.编写一个test_SHA1Method脚本,测试SHA1加密方法的正确性(方法同创建SHA1_Method方法相同)。如下图:
在这里插入图片描述
在这里插入图片描述
如图所示:
在这里插入图片描述
10.测试脚本如下:

package SHA1Test;


public class SHA1_TestMethod
{
        public static void main(String[] args){
            String res = new SHA1_Method().encode("hello");
            System.out.print(res);
        }
}

11.验证,在test_SHA1Method类中,空白处右键,选择“Run ‘test_SHA1Method.main()’”,如下图:
在这里插入图片描述
12.执行后,可以从底部控制台看到如下信息,即成功.
在这里插入图片描述
13.将SHA1Test导出为jar包

在IDEA中,菜单栏中,依次选择点击【File—Project Structure…】,打开“Project Structure”弹框,在弹框内选择左侧的“Artifacts”选项,在右侧顶部选择“+”号,接着选择“JAR—Empty”,如下图:进行一些信息填写
在这里插入图片描述
如图所示:
在这里插入图片描述
14.选择上图中间“Output Layout”处的“+”,在弹出的菜单中选择“Module Output”,如下图,即是要打包到jar中的文件,output中是.class文件。
在这里插入图片描述
15.出现弹框,这是列举要选择的项目,直接点击【ok】
在这里插入图片描述
16.操作完成后,如下图:会多出“JmeterIdea compile output”选项。
在这里插入图片描述
17.点击“SHA1Test.jar”下面会出现META-IN/MANIFEST.MF选项,此处自行选择创建或者已有的。这里我选择了创建,如图所示:
在这里插入图片描述
18.最后点击 Apply,OK。
默认指向SHA1Test位置,也会在项目根目录创建META文件,便于打包。点击【ok】关闭该弹框,回到IntelliJ IDEA主窗口

菜单栏,依次点击【Build—Build Artifacts】,在弹出的弹框内,点击【Build】如下图:
在这里插入图片描述
19.等待一下,执行完毕,可以查看到jar包成功。可在对应目录下找到。
在这里插入图片描述
20.将打包出来的SHA1Test.jar文件放到Jmeter的\lib\ext目录下,如下图:
在这里插入图片描述

二、启动JMeter,在测试计划中引入jar包,如下图:
在这里插入图片描述
1.依次创建 一个线程组test,添加HTTP请求(测试请求)、添加用户定义的变量,Debug Sample (2个,其中一个用于加密前测试,另一个用于加密后测试),添加BeanShell PreProcessor 以及 添加察看结果树 ,如图所示:
在这里插入图片描述
2.添加完成后,选择添加的“BeanShell Preprocessor”,编写如下脚本:

import SHA1.SHA1_Method;
String input = vars.get("passwd");
String output = new SHA1_Method().encode(input);
vars.put("passwd",output);

如图所示:
在这里插入图片描述
3.为了查看请求前后passwd的值,进行测试,最后,运行jmeter脚本。
加密前,请求passwd的值
在这里插入图片描述
加密后,,得到:
在这里插入图片描述

   以上是如何使用IntelliJ IDEA 进行Jmeter二次开发 jar包的实现过程。

参考:https://blog.csdn.net/nancyliuliu/article/details/85293126
https://blog.csdn.net/qq_25821067/article/details/53643365

更多Jmeter应用,可以加好友
在这里插入图片描述

本文链接http://element-ui.cn/news/show-577063.aspx