Loading

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)


posted @ 2021-01-09 23:03  Binzichen  阅读(1855)  评论(0编辑  收藏  举报