zoukankan      html  css  js  c++  java
  • 信步漫谈之Jmeter—引入外部函数加解密报文

    一、环境

    1)Jmeter版本:apache-jmeter-5.2.1

    2)JDK版本:JDK1.8

    二、场景

    通过Jmeter发送报文进行测试,目标场景为:发送报文前,对报文数据进行加密,且加密需要依赖原报文的参数(原报文是 xml 格式数据)

    报文格式:<HeartBeat ID=”sign01”></HeartBeat>
    加密方式:通过自定义加密方式,此处模拟带参数加密返回信息,返回数据为“报文ID值 Hello”

    三、外部函数

    package com.alfred.test;
    
    import com.alfred.util.Dom4jTool;
    import org.dom4j.Document;
    
    /**
     * @Author: alfred
     */
    public class HelloWorld {
    
        public static String sayHello(String xml){
            Document doc = Dom4jTool.xmlString2Doc(xml);
            String id = doc.getRootElement().attributeValue("ID");
            return id+" Hello";
        }
    
    }
    

    四、Jmeter配置

    1)在 Jmeter 测试计划中,新增如下项目

    BeanShell 取样器:用于指定外部函数处理

    HTTP 请求:HTTP 请求的参数设置

    CSV 数据文件设置:报文的数据源

    查看结果数、聚合报告:报文发送结果分析

    image

    2)在 “CSV 数据文件设置” 中设置数据变量名为 data,在 “HTTP 请求” 中,设置消息体数据为{myData}

    image

    3)在 “BeanShell 取样器” 中配置从源数据 ${data} 到目标数据 ${myData} 的转换,转换代码如下:

    import com.alfred.test.HelloWorld;
    String myData=HelloWorld.sayHello("${data}");
    vars.put("myData",myData)

    image

    4)将 “外部函数” 打包成 jar 包,和所依赖的其他 jar 包(例如:dom4j 的包)一起放到 jmeter 的 lib 目录下,重启 jmeter 即可。

    5)最终发送的报文是 sign01 Hello

  • 相关阅读:
    MySQL 数据库报错 Too many connections
    C# 字符串倒序输出
    C# Guid.NewGuid()
    C# MongoDB 查询所有集合名
    MongoDB 错误be UuidLegacy, not UuidStandard
    jstree 反选,测试400条数据左右有点卡
    js Date对象日期格式化
    敏捷开发-Scrum
    linux centos7 和 windows下 部署 .net core 2.0 web应用
    部署SSL站点 IIS+asp.net
  • 原文地址:https://www.cnblogs.com/alfredinchange/p/13296081.html
Copyright © 2011-2022 走看看