📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
引言
-
结合上篇做个实践的具体例子篇章
-
加之在xx群里小伙伴说xx版本jmeter函数助手不带MD5加密
-
故这篇以MD5加密为例子,阐述整个过程
前置环境&技能
-
前置语言技能
-
Java语法基础
-
开发环境
-
工具IDEA专业版
-
JDK17
-
Maven3.8.4
-
众所周知,B站是一个学习的地方,以上内容都可以B站学习
Maven依赖包
-
使用IDEA新建SpringBoot项目

-
引入开发函数助手需要的Maven依赖
-
主要有三个核心包要引入
-
ApacheJMeter_core
-
ApacheJMeter_java
-
ApacehJMeter_functions
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_functions -->
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_functions</artifactId>
<version>5.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_core -->
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>5.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java -->
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_java</artifactId>
<version>5.4</version>
</dependency>
</dependencies>
函数体介绍
-
项目新建成功,引入上方Maven包依赖
-
在/jmFunctionCy(项目目录)/src/main/java/com/example/jmfunctioncy目录下,新建名为functions的package,切记名字不能起错
-
此处我的理解是,在maven打包后,将jar包放入jmeter/lib/ext下面后,打开jmeter时,默认加载的为这个jar包functions里面的各类方法为函数助手列表
-
新建一个Java类,名为genMD5,并继承AbstractFunction类

4. 开始编写,我们的目的是输入一个字符串,然后进行MD5加密,此时我们还需要引入MD5加密的包
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
-
假设要达成下面情况
-
【函数助手】里面下拉展示的列表中显示的是:genMD5toCyString
-
【函数助手】中间输入参数部分为:请输入要加密的变量
-
在第3步的基础上填充代码如下:
package com.example.jmfunctioncy.functions;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.functions.AbstractFunction;
import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
public class genMD5 extends AbstractFunction {
public String originVar; // 定义一个变量来接收输入的值
@Override
public String execute(SampleResult sampleResult, Sampler sampler) throws InvalidVariableException {
// 函数执行的主体和逻辑处理
// 【函数助手】经过处理后返回的值
return originVar; // 返回加密处理后的值
}
@Override
public void setParameters(Collection<CompoundVariable> collection) throws InvalidVariableException {
// 接收处理用户调用函数时输入的参数值
// 【函数助手】接收参数以后实现结果的逻辑处理
checkParameterCount(collection, 1); // 检测是否输入了一个值
Object[] paramsData = collection.toArray();
originVar = DigestUtils.md5Hex(String.valueOf(paramsData[0]));
}
@Override
public String getReferenceKey() {
// 函数的名称,引用时调用的函数名字
// 【函数助手】下拉 展示的名字
String returnKey = "__genMD5toCyString";
return returnKey;
}
@Override
public List<String> getArgumentDesc() {
// 自定义函数参数列表
// 【函数助手】输入参数的地方
List<String> params = new LinkedList<>();
params.add("请输入要加密的变量");
return params;
}
}
Maven打包
-
要想使用我们编写好的方法,还需要maven打包两种方式(任选其一)
-
借助IDEA右侧的Maven栏-Lifecycle-package(连击2次)

-
命令行打包,打开IDEA终端,输入命令
# 打包前清理之前旧包,且跳过测试
mvn clean package -DskipTests

命令行打包
Jar包使用
-
在上面打包好后,在target目录下会有一个jar包
-
将此jar包放在你jmeter目录下的lib/ext目录里面

-
重启JMeter
JMeter使用
-
打开JMeter
-
打开函数助手
-
找到我们定义的【函数助手】下拉展示名称genMD5toCyString
-
输入要加密的值,点击【生成】,即可看到转换后的加密值

JMeter函数助手和代码块映射关系
以上是一个具体的小实践,错误之处欢迎指出~!
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

3002

被折叠的 条评论
为什么被折叠?



