网上查了好多文章,但是都是基于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