JMeter函数助手开发实践

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


引言

  1. 结合上篇做个实践的具体例子篇章

  2. 加之在xx群里小伙伴说xx版本jmeter函数助手不带MD5加密

  3. 故这篇以MD5加密为例子,阐述整个过程

前置环境&技能

  1. 前置语言技能

  • Java语法基础

  1. 开发环境

  • 工具IDEA专业版

  • JDK17

  • Maven3.8.4

  1. 众所周知,B站是一个学习的地方,以上内容都可以B站学习

Maven依赖包

  1. 使用IDEA新建SpringBoot项目

  2. 引入开发函数助手需要的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>

函数体介绍

  1. 项目新建成功,引入上方Maven包依赖

  2. 在/jmFunctionCy(项目目录)/src/main/java/com/example/jmfunctioncy目录下,新建名为functions的package,切记名字不能起错

  • 此处我的理解是,在maven打包后,将jar包放入jmeter/lib/ext下面后,打开jmeter时,默认加载的为这个jar包functions里面的各类方法为函数助手列表

  1. 新建一个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打包

  1. 要想使用我们编写好的方法,还需要maven打包两种方式(任选其一)

  • 借助IDEA右侧的Maven栏-Lifecycle-package(连击2次)

  • 命令行打包,打开IDEA终端,输入命令

# 打包前清理之前旧包,且跳过测试
mvn clean package -DskipTests

命令行打包

Jar包使用

  1. 在上面打包好后,在target目录下会有一个jar包

  2. 将此jar包放在你jmeter目录下的lib/ext目录里面

  3. 重启JMeter

JMeter使用

  1. 打开JMeter

  2. 打开函数助手

  3. 找到我们定义的【函数助手】下拉展示名称genMD5toCyString

  4. 输入要加密的值,点击【生成】,即可看到转换后的加密值

JMeter函数助手和代码块映射关系

以上是一个具体的小实践,错误之处欢迎指出~!

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
在这里插入图片描述​​
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值