JMeter,如何在HTTP Request Sampler中加密整个主体数据?

时间:2019-01-07 11:30:02

标签: jmeter

我正在使用jmeter 5.0测试我的Web应用程序。如何在发布之前使用AES加密整个人体数据?

我尝试使用BeanShell PreProcessor进行此操作,但是似乎没有方法可以重置主体数据,而我发现的是如何打印主体数据。

log.info("test");

String bodydata = sampler.getArguments().toString();

log.info(bodydata);

我已经知道如何通过导入Java calss实现AES功能。我期望将纯​​文本的主体数据重置为加密文本。

3 个答案:

答案 0 :(得分:0)

仅将主体数据JMeter变量作为${encryptData}

然后在预处理器中为变量设置加密值:

vars.put("encryptData", encryptData)

答案 1 :(得分:0)

  1. Arguments.removeAllArguments()功能可清除采样器主体
  2. 您可以通过Arguments.addArgument()函数添加新主体。示例代码:

    sampler.getArguments().removeAllArguments();
    sampler.addNonEncodedArgument("","your_encrypted_data_here","");
    sampler.setPostBodyRaw(true);
    
  3. Since JMeter 3.1 it's recommended to use JSR223 Test Elements and Groovy language用于脚本编写,主要是因为Groovy has much better performance comparing to Beanshell。因此,考虑在下一个可用机会迁移到JSR223 PreProcessor,相同的代码应该可以正常工作。

答案 2 :(得分:0)

在“ HTTP请求”下,添加“用户定义的变量”(空值),同时确保在“ BeanShell PreProcessor”元素的“参数”文本字段中键入$ {inputJson}。