Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

jmeter - Add multiple child elements with different values in the same request body

How to add multiple child elements with different values in the same JMeter post request body?

I will need to add 1000 of these. Please see below HTTP Request Body data. Thanks

[
    {
        "action": "create",
        "uniqueId": "${uniqueId1}",
        "value": {
            "name": "Bulk Create ${uniqueId1}",
            "notes": "Created on ${__time(DDMMYYYY,)}",
            "pmaPrefix": "ABC",
            "uniqueId": "${uniqueId1}"
        }
    },
    {
        "action": "create",
        "uniqueId": "${uniqueId2}",
        "value": {
            "name": "Bulk Create ${uniqueId2}",
            "notes": "Created on ${__time(DDMMYYYY,)}",
            "pmaPrefix": "ABC",
            "uniqueId": "${uniqueId2}"
        }
    },
    {
        "action": "create",
        "uniqueId": "${uniqueId3}",
        "value": {
            "name": "Bulk Create ${uniqueId3}",
            "notes": "Created on ${__time(DDMMYYYY,)}",
            "pmaPrefix": "ABC",
            "uniqueId": "${uniqueId3}"
        }
    }
]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can generate whatever number of elements you want using any suitable JSR223 Test Element.

Example code:

def payload = []
def entry = [:]

1.upto(1000, index -> {
    entry.put('action', 'create')
    def uniqueId = UUID.randomUUID().toString()
    entry.put('uniqueId', 'uniqueId')
    def value = [:]
    value.put('name', 'Bulk Create ' + uniqueId)
    value.put('notes', 'Created on ' + new Date().format('DDMMYYYY'))
    value.put('pmaPrefix', 'ABC')
    value.put('uniqueId', uniqueId)
    entry.put('value', value)
    payload.add(entry)
})

vars.put('payload', new groovy.json.JsonBuilder(payload).toPrettyString())

Assuming everything goes well you should be able to refer the generated content as ${payload} where required.

More information:


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...