【发布时间】:2022-01-13 18:56:10
【问题描述】:
我有一个包含 10 个用户 ID 的 csv 文件,要求是为 csv 中的每 5 个用户构建一个有效负载。以下是我的代码:
def start = (vars.get('__jm__Thread Group__idx') as int)
def offset = 5
def payload = [:]
def data = []
def file = 'C:/path/dataset.csv'
start.upto(offset, { index ->
def lineFromCsv = new File(file).readLines().get(index)
data.add(['userId': lineFromCsv.split(',')[0], 'groupId': lineFromCsv.split(',')[1]])
})
payload.put('data', data)
log.info("%%%The Payload is%%%:" + payload)
vars.put('payload', new groovy.json.JsonBuilder(payload).toPrettyString())
我的第一个问题是为什么第一次有效载荷(第一次迭代)中有 6 个项目,而我期望有 5 个。而第二次有效载荷(第二次迭代)中有 5 个项目,正如预期的那样。每个有效载荷都应该具有相同的项目数。
我的第二个问题是如何使第二个有效负载从第一个有效负载停止的位置开始解析。第二个有效载荷应该包含 csv 中的下 5 个用户?每个有效载荷之间不应有任何重叠项。
下面是有效载荷:
第一个有效载荷:
POST data:
{
"data": [
{
"userId": "fakeUser3k0000002",
"groupId": "1"
},
{
"userId": "fakeUser3k0000003",
"groupId": "2"
},
{
"userId": "fakeUser3k0000004",
"groupId": "2"
},
{
"userId": "fakeUser3k0000005",
"groupId": "3"
},
{
"userId": "fakeUser3k0000006",
"groupId": "4"
},
{
"userId": "fakeUser3k0000007",
"groupId": "5"
}
]
}
第二个有效载荷:
POST data:
{
"data": [
{
"userId": "fakeUser3k0000003",
"groupId": "2"
},
{
"userId": "fakeUser3k0000004",
"groupId": "2"
},
{
"userId": "fakeUser3k0000005",
"groupId": "3"
},
{
"userId": "fakeUser3k0000006",
"groupId": "4"
},
{
"userId": "fakeUser3k0000007",
"groupId": "5"
}
]
}
【问题讨论】: