当前位置:网站首页>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=
自动化资源分享

这些资料,对于做【软件测试】想进阶的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
边栏推荐
- ORA-55610: Invalid DDL statement on history-tracked table
- HCIP(17)
- 程序员的七夕浪漫时刻
- Jmeter二次开发实现rsa加密
- 分库分表索引设计:二级索引、全局索引的最佳设计实践
- APT级全面免杀拿Shell
- Database auditing - an essential part of network security
- No code development platform data ID introductory tutorial
- Pytest配置项-pytest.ini
- Let's talk about the charm of code language
猜你喜欢
随机推荐
脂溶性胆固醇-聚乙二醇-叠氮,Cholesterol-PEG-Azide,CLS-PEG-N3
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping的区别
基于飞腾平台的嵌入式解决方案案例集 1.0 正式发布!
What is the matter that programmers often say "the left hand is knuckled and the right hand is hot"?
语音合成模型小抄(1)
2022中国眼博会,山东眼健康展,视力矫正仪器展,护眼产品展
数字化转型巨浪拍岸,成长型企业如何“渡河”?
Swift中的类型相关内容
Connect the Snowflake of CKAN tutorial CKAN to release to open data portal
聚乙二醇衍生物4-Arm PEG-DSPE,四臂-聚乙二醇-磷脂
一文读懂 Web 3.0 应用架构
程序员常说的“左手锟斤拷,右手烫烫烫”是怎么回事?
CWE4.8:2022年危害最大的25种软件安全问题
APT level comprehensive free kill with Shell
十年架构五年生活-05第一次出差
2022第十一届财经峰会:优炫软件斩获双项大奖
机器学习-特征映射方法
CKAN教程之在 AWS 上部署 CKAN 应用程序
分库分表索引设计:二级索引、全局索引的最佳设计实践
LVM与磁盘配额原理及配置









