Jmeter二次开发实现rsa加密

news2024/10/2 3:29:44

jmeter函数助手提供了大量的函数,像 counter、digest、random、split、strLen,这些函数在接口测试、性能测试中大量被使用,但是大家在实际工作,形形色色的测试需求不同,导致jmeter自带或者扩展插件给我们提供的函数无法全部满足,这个时候我们就可以自己动手,对JMeter进行二次开发。

图片

接下来我拿aes加密来说明如何实现JMeter二次开发。

首先需要将jmeter的core、functions两个jar包导入到项目工程中。

这两个jar包在jmeter的lib\ext目录下,包的完整名如下所示:

ApacheJMeter_core.jar

ApacheJMeter_functions.jar

接下来定义类,类名Rsa0706,继承抽象类AbstractFunction,

实现其中的4个方法execute()、setParameters()、getReferenceKey()、getArgumentDesc(),具体代码如下所示:

图片

1、getReferenceKey方法实现
getReferenceKey()方法是用于返回自定义函数的名字,以下代码定义了类成员变量key,值为字符串“__rsa”,key 这个变量的值作为getReferenceKey()方法的返回值。

图片

2,getArgumentDesc方法实现
getArgumentDesc()用来定义jmeter各入参的描述信息,

咱们要封装的jmeter的rsa加密函数有两个入参,分别是要加密的字符串(即明文),以及加密的公钥,如下代码所示,定义类成员变量desc,将两个入参的描述信息存到这个变量中,作为getArgumentDesc()方法的返回值。

图片

3,setParameters方法实现
setParameters()方法用于获取JMeter函数的入参值,咱们rsa加密需要两个入参,分别是明文、公钥,参数个数是2,在setParameters()方法需要先检查入参个数的最大值、最小值是不是2,然后将参数集合Collection转成数组存到Object数组变量values中,并定义类成员变量MAX_PARA_COUNT、MIX_PARA_COUNT、plaintextCV、publicKeyCV,分别存最大变量个数、最小变量个数、明文、公钥。

图片

4,execute方法实现
方法execute()里定义的是Jmeter自定义函数的主要逻辑代码,咱们这里放aes加密方法的业务逻辑实现

在这里插入图片描述
在这里插入图片描述

然后将调试好的项目打成jar包,拷贝到jmeter的lib\ext目录下。

启动jmeter,可以在jmeter的函数助手界面看到,自定义的__rsa函数,如下截图所示。

在这里插入图片描述

例如公钥:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQClvArPDQsHpny6fNi1dVyjwz6GTtuKZ5hy8qb62ndCiGXgH5d9WSPeH6RIA14SMGwFwXAd2btntdmvs0CXtSDRP7cXiomEDgBSoDyNbjblQWFKKresjHuxka37rKUgwsDmsaCBE75nUVghJnqmZBhmZ/m9USdsfBbKPogpuVrNtwIDAQAB

1234567890这串明文经过rsa公钥加密之后,结果如下截图所示

在这里插入图片描述

b9U55CVXTK+LOWuJPscL/074YtDNTr7fQCitxr73Sq9y4/P7q+TY+lm/L5QpTI8cpnJc6Q6V2I6WSUHFsSFmibwsAacdlIWbvjGxIy2z7F+Y0Ymj32GsFpbi85ea4GFhvrvzYDKp1IRUqo4oCWSwx6zV43gD3NFQHaoKKaU91As=
在这里插入图片描述
在这里插入图片描述

然后将调试好的项目打成jar包,拷贝到jmeter的lib\ext目录下。

启动jmeter,可以在jmeter的函数助手界面看到,自定义的__rsa函数,如下截图所示。

在这里插入图片描述

例如公钥:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQClvArPDQsHpny6fNi1dVyjwz6GTtuKZ5hy8qb62ndCiGXgH5d9WSPeH6RIA14SMGwFwXAd2btntdmvs0CXtSDRP7cXiomEDgBSoDyNbjblQWFKKresjHuxka37rKUgwsDmsaCBE75nUVghJnqmZBhmZ/m9USdsfBbKPogpuVrNtwIDAQAB

1234567890这串明文经过rsa公钥加密之后,结果如下截图所示

在这里插入图片描述

b9U55CVXTK+LOWuJPscL/074YtDNTr7fQCitxr73Sq9y4/P7q+TY+lm/L5QpTI8cpnJc6Q6V2I6WSUHFsSFmibwsAacdlIWbvjGxIy2z7F+Y0Ymj32GsFpbi85ea4GFhvrvzYDKp1IRUqo4oCWSwx6zV43gD3NFQHaoKKaU91As=

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode —— 二叉树

持续更新中................ 二叉树的定义 public class TreeNode {int val;TreeNode left;TreeNode right;public TreeNode() {}public TreeNode(int val) {this.val val;}public TreeNode(int val, TreeNode left, TreeNode right) {this.val val;this.left left;this.r…

nginx看这一篇文章就够了

一、Nginx简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的。其特点是占有内存少&#xff0c…

智能机柜PDU助力中小型数据中心机房末端配电系统建设

数据中心作为我国已确定“新基建”的七大领域之一,在国民经济和社会发展中扮演中越来越重要的角色,成为各行各业的关键基础设施,为各产业转型升级提供了重要支撑。据相关数据显示,2018年至今,我国的数据中心市场年均复…

项目管理工具dhtmlxGantt甘特图入门教程(四):可见性和布局视图大小设置

dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足项目管理控件应用程序的所有需求,是完善的甘特图图表库。这篇文章给大家讲解 dhtmlxGantt的可见性组、布局大小和隐藏父布局视图。 DhtmlxGantt正版试用下载(qun&…

【BP靶场portswigger-服务端3】目录遍历漏洞-6个实验(全)

目录 一、目录遍历 1、意义 二、通过目录遍历阅读任意文件 1、示例 实验1:文件路径遍历(简单) 三、利用文件路径遍历漏洞的常见障碍 1、对于../等的限制 实验2:文件路径遍历(用绝对路径旁路阻止遍历序列&#xf…

相距两千多公里,仅仅数月,从相亲走到结婚 | 2022年复盘日记

👨‍🎓作者:bug菌 🎉简介:CSDN、掘金等社区优质创作者,全网合计7w粉,对一切技术都感兴趣,重心偏Java方向,目前运营公众号「猿圈奇妙屋」,欢迎小伙伴们的加入&…

制造型企业如何利用WMS系统在大环境中取胜

如今数字化转型已经成为制造型企业高质量高发展的重要手段,越来越多的企业开始加大对数字化转型的投入来提升竞争力。例如:有些企业会上线WMS系统来搭建自己的数字化仓库管理平台,实现仓库业务的自动化和数字化升级。随着制造企业市场规模的不…

基于Xlinx的时序分析与约束(6)----如何读懂vivado下的时序报告?

写在前面 在《基于Xlinx的时序分析与约束(3)----基础概念(下)》文章中写了一些时序分析的基础概念,同时还说了文章中提到的公式根本就不需要记忆,因为综合工具vivado会帮你把所有时序路径都做详尽的分析&am…

Springboot延伸之自定义Banner

前言 前几周陆陆续续花了5万多字写了我读到的Springboot启动过程的源码,收获颇多,其中给自己留了扩展的作业。我们每次启动Springboot的时候,都有一个Spring的Banner,读源码的过程中可以得知我们可以自定义属于自己的Banner&…

领域驱动设计

DDD的代码结构_ronshi的博客-CSDN博客_ddd代码结构 DDD( 领域驱动设计)概念来源于2004年著名建模专家eric evans的书籍:《domain-driven design –tackling complexity in the heart of software》(中文译名:领域驱动设计—软件核心复杂性应对之道)。 DDD领域驱动设…

全流量安全分析为IT运维提供高效保障(二)

前言 某高校信息中心老师反应,用户反馈教务系统有访问慢的情况,需要通过流量分析系统来了解系统的运行情况,此报告专门针对系统的性能数据做了分析。 前一章做了系统功能模块分析和整体流量分析,本章将进行异常分析、其他信息发…

【Linux】C语言缓冲区、缓冲区的实现

目录 一、C语言缓冲区 1.1 什么是缓冲区 1.2 缓冲区刷新 1.3 问题解释 1.4 stdout与stderr 1.5 perror的实现 二、模拟实现缓冲区 2.1 接口展示 2.2 函数实现 2.3 测试与源代码 一、C语言缓冲区 1.1 什么是缓冲区 缓冲区本质是一块C语言提供的内存空间&#xff0c…

边缘计算网关的应用有哪些

边缘计算网关(又叫物联网边缘计算网关),简称 Edge-Gateway,是一种可以在设备上运行本地计算、消息通信、数据缓存等功能的工业智能网关,可以在无需联网的情况实现设备的本地联动以及数据处理分析。 其具备接口丰富&…

无线蓝牙耳机什么牌子的好?好的无线蓝牙耳机推荐

无线蓝牙耳机因为携带更便捷,连接也越来越迅速而受到了不少用户的喜爱。在目前的耳机市场中,蓝牙耳机所占的比例越来越高,无线蓝牙耳机牌子也逐渐增多。那么,什么牌子的无线蓝牙耳机好?下面,我给大家盘点了…

迁移学习的 PyTorch 实现

什么是迁移学习?迁移学习是一种用于机器学习的技术,它使用预先训练好的模型来创建新的模型。这可以减少新创建模型所需的训练时间,因为它将继承以前学习的特性,这也将提高其准确性。但是迁移学习能带来多大的不同呢?为…

销售促单话术

销售过程中,销售不仅可以运用一些销售技巧来吸引客户的兴趣,也可以通过一些话术来获得客户的认同。 ​ 前言 销售过程中,销售不仅可以运用一些销售技巧来吸引客户的兴趣,也可以通过一些话术来获得客户的认同。很多销售一定遇到过…

【观察】全面赋能汽车行业数字化转型,亚马逊云科技的决心与诚意

毫无疑问,新一轮科技革命正在驱动整个汽车产业发生颠覆性的重大变革,传统的行业游戏规则也将在数字化时代被改写,而未来以电动化、智能化、互联化、共享化为特征的“新四化”,也正在成为整个汽车产业技术创新和商业模式进化的新方…

一文带你走进Python文件操作

Py文件操作 一: """ 1.找到这个文件,双击打开 ​ open(文件路径,mode"",encoding"") mode>读/写 encoding>文件的编码集是什么 ​文件路径:1.绝对路径d:Tools/Tool/python/a.txt 不安全2.相对路径相对于当前你的程序所在的文件夹…

回首来时路,未来皆坦途.......

不觉间,又到了年末,这一年似乎并没有什么特别的经历和值得一提的业绩,就是这样平淡的过着每一天,这大概就是普通人的人生吧..... 今年最大的改变就是跨行业成长,从事了售前工程师的工作,由于之前并没有相关…

20221230英语学习

今日单词 agreeable adj.惬意的,宜人的;可接受的,适合的;欣然同意的 gleam v.发微光;闪烁;隐约闪光;(在眼中)闪现;表露 hypothesis n.[复数hypotheses] 假…