当前位置:   article > 正文

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

java tcp sampler

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 加密

  1. import org.apache.jmeter.protocol.tcp.sampler.*; // tcp sample lib
  2. import org.apache.jmeter.samplers.*; // jmeter samplers lib
  3. import org.apache.jmeter.config.*;
  4. import com.alibaba.fastjson.JSON; //fastjson jar save in /lib/ext folder or load in testplan
  5. import com.alibaba.fastjson.JSONObject;
  6. source("./telutils/AESCryptUtils.java"); //path start with bin as default
  7. String IV_PARAMETER = "941c2d70a830c950";
  8. String key = "941c2d70a830c950";
  9. String body = sampler.getRequestData(); // get tcp sample request data
  10. log.info("PreProcessor===========================================" + body);
  11. timestamp = System.currentTimeMillis(); // timestamp
  12. String seq_num ="201806071746210003";
  13. String s = String.format("abc %s %s", new Object[]{timestamp, seq_num}); //format string
  14. log.info("formate test --->" + s);
  15. log.info("dev id------->" + vars.get("dev_num")); // get vars, set vars.put("abc", "123");
  16. //parse json string to object
  17. JSONObject parseObject = JSON.parseObject(body);
  18. // get data
  19. // data to string
  20. String data = parseObject.getString("data");
  21. // string aes encode
  22. String aesbody = AESCryptUtils.encode(data, key, IV_PARAMETER);
  23. // String aesbody = "MTIzNDU2Nzg5MDA5ODc2NTQzMjExMjM0NTY3ODkwMDk";
  24. // set data
  25. parseObject.put("data", aesbody);
  26. parseObject.put("deviceID", "DEVDD" + vars.get("dev_num"));
  27. // add header to request
  28. String postData = "CST(" + parseObject.toJSONString() + ")\r\n"; // object to json string
  29. log.info("PreProcessor===========================================" + postData);
  30. //postData = "{\"code\":1002,\"deviceId\":\"0000111122223333aaaabbbb\",\"data\"
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/717457
推荐阅读
相关标签
  

闽ICP备14008679号