0

我必须通过 Jmeter 在 IBM cloudant db 中测试最大可接受的 JSON 大小。我已经创建了一个 JSON 文件,我需要在 JMeter 的 JSON 文件中增加公民详细信息的数量。举个例子,我创建了一个 JSON 文件,并在第一次迭代中传递了一个公民的信息,下一次迭代应该是两个公民,并且会不断增加……第 n 次迭代应该是 n 个公民详细信息。( JSON如果我增加身体,尺寸也会增加)。任何人都可以建议我如何做到这一点。

"docs": [
    {
        "name": "Nicholas",
        "age": 45,
        "gender": "male",
        "_attachments": {

        }
    },
    {
        "name": "Taylor",
        "age": 50,
        "gender": "male",
        "_attachments": {

        }
    }  
]
 }
4

1 回答 1

1

如果要在Thread Group的每次迭代中向JSON有效负载添加新条目:

  1. 添加JSR223 PreProcessor作为要参数化的 HTTP 请求采样器的子级
  2. 将以下代码放入“脚本”区域:

    import groovy.json.JsonBuilder
    import groovy.json.internal.LazyMap
    import org.apache.commons.lang3.RandomStringUtils
    import org.apache.commons.lang3.RandomUtils
    
    def data = []
    
    0.upto(vars.get('__jm__Thread Group__idx') as int, {
        def entry = new LazyMap()
        entry.put('name', RandomStringUtils.randomAlphabetic(10))
        entry.put('age', RandomUtils.nextInt(18, 99))
        entry.put('gender', 'male')
        entry.put('__attachments', {})
        data.add(entry)
    })
    
    def builder = new JsonBuilder()
    
    builder(docs: data.collect {
        [name: it.get('name'), age: it.get('age'), gender: it.get('gender'), __attachments: it.get('__attachments')]
    })
    
    sampler.getArguments().removeAllArguments()
    sampler.addNonEncodedArgument('', builder.toPrettyString(), '')
    sampler.setPostBodyRaw(true)
    
  3. 就是这样,在线程组的每次迭代中,HTTP 请求采样器将发送带有随机数据的递增数量的“文档”。

参考:

于 2019-12-03T07:41:45.027 回答