首页 > 其他分享 >Jmeter二次开发实现rsa加密

Jmeter二次开发实现rsa加密

时间:2022-12-30 10:14:29浏览次数:47  
标签:jmeter 加密 函数 rsa 公钥 二次开发 Jmeter 软件测试

每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】

码同学公众号:自动化软件测试,领取资料可加:magetest

码同学抖音号:小码哥聊软件测试

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,分别存最大变量个数、最小变量个数、明文、公钥

图片

 

免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:magetest

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=

 

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频 ☞ 可加:magetest/关注码同学公众号:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

标签:jmeter,加密,函数,rsa,公钥,二次开发,Jmeter,软件测试
From: https://www.cnblogs.com/testfan2019/p/17014151.html

相关文章

  • Jmeter——循环控制器中实现Counter计数器的次数重置
    近期在使用Jmeter编写个辅助测试的脚本,用到了多个LoopController和Counter。当时想的思路就是三个可变的数量值,使用循环实现;但第三个可变值的数量次数,是基于第二次循环中......
  • S2 - Lesson 1 - A private conversation
    Wordsprivateaprivateschoolprivacy theatregotothetheatre angryadj.angrilyadv.theangryboyshoutedangrily.[生气的孩子生气地喊]   loudl......
  • 谣言检测(ACLR)《Detect Rumors in Microblog Posts for Low-Resource Domains via Adve
    论文信息论文标题:DetectRumorsinMicroblogPostsforLow-ResourceDomainsviaAdversarialContrastiveLearning论文作者:HongzhanLin,JingMa,LiangliangChen,......
  • Oversampling Techniques
    ADCOperationImprovingADCResolution总结根据奈奎斯特采样定理,Fsample>=2*Fsignal在频域中,过采样能够降低白噪声功率谱密度过采样之后的信噪比SNR=(6.......
  • jmeter中响应结果Unicode转换为中文
    使用jmeter做接口测试的时候,遇到返回的中文显示的是Unicode格式,如下图可使用转换工具进行转换把Unicode输入到转换工具,点击Unicode转中文实际做接口测试过程中不......
  • 接口测试--jmeter
    ......
  • JMeter
    ApacheJMeter—压力测试工具一.什么是ApacheJMeterApacheJMeter是Apache组织基于Java开发的压力测试工具,用于对软件做压力测试。JMeter最初被设计用于Web应用测......
  • JMeter压力测试总结
    ​​Apache​​​ ​​JMeter​​​是​​Apache​​​组织开发的基于Java的压力测试工具。用于对软件做压力测试,相比其他HTTP测试工具,JMeter最主要的特点在于扩展性强。J......
  • JMeter入门学习
    一、什么是JMeter        ApacheJMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域......
  • jmeter系列01-->mac系统搭建JDK及JMETER
     前言此刻打盹,你将做梦;而此刻学习,你将圆梦。时代在进步,我们IT届的测试工程师大部分都用上了MAC电脑,在MAC上如何搭建JMETER呢,我来分享分享。一、环境和所需软件概述1......