jmeter通過base64加解密&MD5加密


准備jar包

通過jmeter函數進行base64加解密

加密

${__base64Encode(需加密的文本,)}

解密

${__base64Decode(需解密文本,)}

通過beanshell進行base64加解密

直接上代碼

import java.io.*;
import org.apache.commons.codec;
import sun.misc.BASE64Decoder;

log.info("------------開始加密-------------------");

String encryption = new sun.misc.BASE64Encoder().encode("hc_staging".getBytes());

vars.put("encryption", encryption);

log.info("加密后的值------->>"+encryption);
log.info("------------加密結束-------------------");

log.info("------------開始解密-------------------");
org.apache.commons.codec.binary.Base64 base64=new org.apache.commons.codec.binary.Base64();
String decrypt=new String(base64.decode("aGNfc3RhZ2luZw=="));

vars.put("decrypt",decrypt);

log.info("解密后的值------->>"+decrypt);
log.info("------------解密結束-------------------");

通過jmeter函數digest進行MD5加密

${__digest(MD5,需加密文本,,,)}

JSR223 實現python加解密

Jmeter 中BeanShell 中支持JAVA語言,可以使用Java來輔助我們實現一些邏輯,如果我們不會寫Java怎么辦,比如使用比較熟悉的語言例如Python(目前對於測試人員來說Python屬於普及的語言)來代替實現一些代碼邏輯。

介紹Jmeter 執行Python代碼,首先我們需要來先介紹下JSR,因為這個過程的實現與他密切相關。

JSR 簡介

JSR是Java Specification Requests的縮寫,意思是Java 規范提案。是指向JCP(Java Community Process)提出新增一個標准化技術規范的正式請求。任何人都可以提交JSR,以向Java平台增添新的API和服務。JSR已成為Java界的一個重要標准。

我們了解了什么是JSR以后我們下面需要在Jmeter中使用JSR223標准來執行我們自己的Python代碼

Jmeter JSR223 Sampler

Jmeter JSR223 支持的語言

Jmeter 基於JSR223標准 支持使用多種編程語言編寫腳本程序,默認使用Groovy,默認是不支持Python語言,我們需要通過Jpython來擴展Jmeter對Python語言的支持

Jmeter 擴展Python語言支持

下載jython

https://www.jython.org/download

把下載的jython-standalone-2.7.2.jar 放到 jmeter的lib/ext文件夾。重啟jmeter,此時就可以看到支持Python語言

Jmeter 配置JSR223 Sampler

添加JSR223 Sampler

選擇實現邏輯的語言

實現MD5加密

import hashlib
# 定義密碼
password = "admin"
# 對密碼進行md5加密
m = hashlib.md5()
m.update(password .encode(encoding="utf-8"))
password = m.hexdigest()
# 存儲value到變量key
vars.put("password",password)

 

Base64加解密

import base64 # base64加密法 能加密,也能解密

s = '123456'
b = base64.b64encode(s.encode())
result1 = b.decode()
print(result1) # 加密base64
# 存儲value到變量key

c = base64.b64decode('MTIzNDU2') # .b64decode() 解密
result2 = c.decode()
print(result2)
vars.put("result1",result1)
vars.put("result2",result2)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM