当前位置:网站首页>Jmeter二次开发实现rsa加密
Jmeter二次开发实现rsa加密
2022-08-02 23:08:00 【TEST_二 黑】
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=
自动化资源分享
这些资料,对于做【软件测试】想进阶的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
边栏推荐
猜你喜欢
随机推荐
如何使用vlookup+excel数组公式 完成逆向查找?
用大白话解释“什么是ERP?” 看完这篇就全明白了
threejs 动态调整相机位置,使相机正好能看到对象
Canonical correlation analysis of CCA calculation process
C语言函数详解(2)【函数参数——实际参数(实参)&形式参数(形参)】
What is the matter that programmers often say "the left hand is knuckled and the right hand is hot"?
js基础知识整理之 —— 判断语句和三元运算符
airflow db init 报错
十三、数据回显
2022山东国际青少年眼睛健康产业展会,视力健康展,眼视光展
令人心动的AI综述(1)
服务间歇性停顿问题优化|得物技术
CAS:474922-22-0,DSPE-PEG-MAL,磷脂-聚乙二醇-马来酰亚胺科研试剂供应
APT level comprehensive free kill with Shell
CKAN教程之在 AWS 上部署 CKAN 应用程序
最近公共祖先(LCA)学习笔记 | P3379 【模板】最近公共祖先(LCA)题解
DataGuard日常维护常见问题之数据同步异常
最新真实软件测试面试题分享,收藏了还怕进入不了大厂?
DownMusic summary record
用了TCP协议,就一定不会丢包吗?