簡體   English   中英

JMeter - 無法將動態 CSV 值獲取到我的 JsonBuilder 請求正文中

[英]JMeter - Cannot Get Dynamics CSV Values Into My JsonBuilder Request Body

我昨天問了一個關於在 JMeter 上使用預處理器創建動態請求正文的問題。 感謝 Dmitri T,我幾乎得到了我想要的東西。

這里的老問題: JMeter 創建一個預處理器,它將根據用戶定義的變量生成請求正文


但是現在,我無法從我的 CSV 文件中獲取動態值到請求正文中。

MY CSV 文件示例數據:

Reading CSV successfully finished, 20 records found:
${id} = 1000011
${email} = a1000011@smartmessage.com
------------
${id} = 1000012
${email} = a1000012@smartmessage.com
------------
${id} = 1000013
${email} = a1000013@smartmessage.com

我的生成請求正文的預處理器:

    import groovy.json.JsonBuilder;
    
    def payload = [:]
    def X = 10 // read user input here somehow
    
    payload.put('message_job_id', '28b0a005-9ef1-475c-b33c-ade900f19e4c')
    payload.put('campaign_group', 'Entegrasyon')
    payload.put('template_id', 'cf585c8c-c675-40d2-b88a-ade900c898d5')
    
    def recipient_list = []
    1.upto(X, { x ->
        def recipient = [:]
        recipient.put('customer_id', vars.get('id') + x)
        def target = [:]
        def address = ['address': vars.get('email' + x)]
        target.put('target', address)
        recipient.put('target', target)
        recipient_list.add(recipient)
    })
    
    payload.put('recipient_list', recipient_list)
    
    
    vars.put('payload', new groovy.json.JsonBuilder(payload).toPrettyString())

我在查看結果樹中生成的請求正文:

  {
        "message_job_id": "28b0a005-9ef1-475c-b33c-ade900f19e4c",
        "campaign_group": "Entegrasyon",
        "template_id": "cf585c8c-c675-40d2-b88a-ade900c898d5",
        "recipient_list": [
            {
                "customer_id": "10000111",
                "target": {
                    "target": {
                        "address": null
                    }
                }
            },
            {
                "customer_id": "10000112",
                "target": {
                    "target": {
                        "address": null
                    }
                }
            },
            {
                "customer_id": "10000113",
                "target": {
                    "target": {
                        "address": null
                    }
                }
            },
            {
                "customer_id": "10000114",
                "target": {
                    "target": {
                        "address": null
                    }
                }
            },
            {
                "customer_id": "10000115",
                "target": {
                    "target": {
                        "address": null
                    }
                }
            },
            {
                "customer_id": "10000116",
                "target": {
                    "target": {
                        "address": null
                    }
                }
            },
            {
                "customer_id": "10000117",
                "target": {
                    "target": {
                        "address": null
                    }
                }
            },
            {
                "customer_id": "10000118",
                "target": {
                    "target": {
                        "address": null
                    }
                }
            },
            {
                "customer_id": "10000119",
                "target": {
                    "target": {
                        "address": null
                    }
                }
            },
            {
                "customer_id": "100001110",
                "target": {
                    "target": {
                        "address": null
                    }
                }
            }
        ]
    }

如您所見,地址鍵始終具有 null 值,但我想用 CSV 文件中的 email 變量填充此鍵。

如果您需要從 CSV 文件構建請求正文並在“一次”中從多行發送數據 - 您將無法使用CSV 數據集配置和派生數據來實現此目的,因為 ZCC8D68C551C4A9A6D5313E07DE 為每次迭代讀取下一行數據集 4DE每個用戶的。

如果您需要在單個迭代的范圍內讀取多行 - 您將需要切換到__CSVRead() function直接在 Z2D19C57FDD4FDC2710C971F69EE8 中從 CSV 文件中讀取數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM