JMeter入门9---Tcp sampler AES加密

本文介绍了如何在JMeter中使用TCP Sampler进行AES加密的数据处理。通过添加BeanShell PreProcessor,实现了在发送TCP请求前对数据进行AES加密,并在接收到响应后进行解密。详细步骤包括设置TCP Sampler,编写BeanShell脚本,以及利用JMeter内置变量进行交互。
摘要由CSDN通过智能技术生成

JMeter入门9---Tcp sampler AES加密

Max.Bai

2018-06

 

压测tcp请求的时候需要对数据进行处理才发送,比如AES数据加密。实现方法可以有两种,一种自己写java请求,不使用默认tcp sampler, 第二种用默认的Tcp sampler,beanshell实现AES加密。

记录下beanshell实现过程。

1. 添加TCP Sampler

    EOL 设置为10 表示回车符号

2. 在TCP sampler添加 Add->Pre Process -> BeanShell PreProcess

3. 在BeanShell PreProcess 脚本里面添加如下代码。

AES 加密

import org.apache.jmeter.protocol.tcp.sampler.*;			// tcp sample lib
import org.apache.jmeter.samplers.*;			// jmeter samplers lib
import org.apache.jmeter.config.*;   
import com.alibaba.fastjson.JSON;		//fastjson jar save in /lib/ext folder or load in testplan
import com.alibaba.fastjson.JSONObject;
source("./telutils/AESCryptUtils.java");  //path start with bin as default

String IV_PARAMETER = "941c2d70a830c950";
String key = "941c2d70a830c950";

String body = sampler.getRequestData();   	// get tcp sample request data
log.info("PreProcessor===========================================" + body);

timestamp = System.currentTimeMillis();		// timestamp
String seq_num ="201806071746210003";
String s = String.format("abc %s %s", new Object[]{timestamp, seq_num});		//format string
log.info("formate test --->" + s);
log.info("dev id------->" + vars.get("dev_num"));			// get vars, set vars.put("abc", "123");

//parse json string to object 
JSONObject parseObject = JSON.parseObject(body);
// get data
// data to string
String data = parseObject.getString("data");
// string aes encode
String aesbody = AESCryptUtils.encode(data, key, IV_PARAMETER);
// String aesbody = "MTIzNDU2Nzg5MDA5ODc2NTQzMjExMjM0NTY3ODkwMDk";
// set data
parseObject.put("data", aesbody);
parseObject.put("deviceID", "DEVDD" + vars.get("dev_num"));
// add header to request
String  postData = "CST(" + parseObject.toJSONString() + ")\r\n";		// object to json string
log.info("PreProcessor===========================================" + postData);
//postData = "{\"code\":1002,\"deviceId\":\"0000111122223333aaaabbbb\&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值