BeanShell Post Processor使用Jmeter解析Json

时间:2014-07-07 08:35:08

标签: json rest jmeter beanshell

我需要测试休息api发布Json。 我尝试使用Jmeter通过BeanShell PostProcessor发布Json Data。 但BeanShell PostProcessor不起作用,或者我无法编写正确的代码。

我的Json是:{“email”:“selin@xxx.com”,“密码”:“123”}

你可以在下面的图片中看到我做了什么。

enter image description here

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:4)

我认为您想在api上发出http请求。 请按照以下步骤操作。

  1. 打开JMeter的新实例
  2. 在测试计划下,添加HTTP标头管理器以通过导航到测试计划>来设置内容类型。添加>配置元素> HTTP标头管理器。为Name =“Content-Type”和value =“application / json”(不含引号)添加新值。
  3. 在测试计划下,通过导航到测试计划>添加线程组。添加>线程(用户)>线程组
  4. 在“线程组”下,通过导航到“线程组”&gt;添加HTTP请求类型的采样器。添加&gt; <采样器> HTTP请求
  5. 您可以向线程组添加各种侦听器。通过导航到Thread Group&gt;我更喜欢表/树中的结果。添加&gt;听众&gt;查看表格中的结果
  6. 您可以手动添加JSON数据,如图所示。

    JMeter Http Request Parameters

    There is a gist also

    This gist includes BeanShell Post Processor Version

答案 1 :(得分:1)

英寸

您的Beanshell Sampler代码存在一些问题:

  1. 在Beanshell中,您需要使用像\"
  2. 这样的斜杠来转义引号
  3. SampleResult.setResponseData方法接受字节数组,而不是字符串。
  4. 因此,如果您按如下方式修改Beanshell Sampler代码:

    String dummyJson = "{\"email\":\"selin@xxx.com\",\"password\":\"123\"}";
    SampleResult.setResponseData(dummyJson.getBytes("UTF-8"));
    
    从Beanshell的角度来看,一切都应该没问题。

    有关Apache JMeter中Beanshell脚本的更多详细信息,请参阅How to use BeanShell: JMeter's favorite built-in component指南。

答案 2 :(得分:0)

我使用Ralf Sternberg’s slim JSON parser for Java ,因为它描述为here

这是它当前版本的maven依赖:

<dependency>
     <groupId>com.eclipsesource.minimal-json</groupId>
     <artifactId>minimal-json</artifactId>
     <version>0.9.4</version>
</dependency>

不要忘记将此库添加到Jemeter的lib目录中。