Jmeter:如何动态增加 Request json 的大小。 (IBM cloudant db 通过 Jmeter 可接受的最大 json 文件大小。)
Jmeter: How I can increase the size of Request json dynamically. (IBM cloudant db maximum acceptable json file size through Jmeter.)
我必须通过 Jmeter 在 IBM cloudant db 中测试可接受的最大 JSON 大小。我已经创建了一个 JSON 文件,我需要在 JMeter 的 JSON 文件中增加公民详细信息的编号。举个例子,我创建了一个 JSON 文件,并在第一次迭代中传递了一个公民的信息,下一次迭代应该是两个公民,并且它会不断增加......第 n 次迭代应该是 n 没有公民详细信息。(如果我增加 body,JSON 大小也会增加)。我该怎么做,谁能提出建议。
"docs": [
{
"name": "Nicholas",
"age": 45,
"gender": "male",
"_attachments": {
}
},
{
"name": "Taylor",
"age": 50,
"gender": "male",
"_attachments": {
}
}
]
}
如果要向 JSON payload on each iteration of the Thread Group 添加新条目:
- 将 JSR223 PreProcessor 添加为要参数化的 HTTP 请求采样器的子项
将以下代码放入"Script"区域:
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)
- 就是这样,在线程组的每次迭代中,HTTP Request 采样器将发送一个递增的 "docs" 随机数据。
参考文献:
我必须通过 Jmeter 在 IBM cloudant db 中测试可接受的最大 JSON 大小。我已经创建了一个 JSON 文件,我需要在 JMeter 的 JSON 文件中增加公民详细信息的编号。举个例子,我创建了一个 JSON 文件,并在第一次迭代中传递了一个公民的信息,下一次迭代应该是两个公民,并且它会不断增加......第 n 次迭代应该是 n 没有公民详细信息。(如果我增加 body,JSON 大小也会增加)。我该怎么做,谁能提出建议。
"docs": [
{
"name": "Nicholas",
"age": 45,
"gender": "male",
"_attachments": {
}
},
{
"name": "Taylor",
"age": 50,
"gender": "male",
"_attachments": {
}
}
]
}
如果要向 JSON payload on each iteration of the Thread Group 添加新条目:
- 将 JSR223 PreProcessor 添加为要参数化的 HTTP 请求采样器的子项
将以下代码放入"Script"区域:
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)
- 就是这样,在线程组的每次迭代中,HTTP Request 采样器将发送一个递增的 "docs" 随机数据。
参考文献: