【问题标题】:How to load a json file with unit ML test examples into jmeter http request payload如何将带有单元 ML 测试示例的 json 文件加载到 jmeter http 请求有效负载中
【发布时间】:2018-07-24 16:29:43
【问题描述】:

我有一个服务于 ML 模型的端点,我想对其执行负载测试。我正在使用 Jmeter 4.0 及其 UI 来构建一个简单的计划测试。使用 1 个线程组循环给定的持续时间并持续执行 https 请求。

如何将多个测试示例一一解析为 json 格式的 http 请求的有效负载。这些示例包含在名为 samples.json 的 json 文件中。嵌套结构如下:

{ "dataset": [
    {"id": 1,
    "in":[
     {
        "Feature1": 8.9
        "Feature2":7.1
     }],
    "out": "Class1",
    },
    {"id": 2,
    "in":[
     {
        "Feature1": 3.2
        "Feature2":5.1
     }],
    "out": "Class1",
    }]
}

重要提示:我不知道先验属性的数量,因此我需要从 in 键中检索它们,因为这可能会因其他类型的模型而改变,因此我无法使用硬编码的 jmeter 变量,类似于 CSV 配置集插件 中使用的变量,它们需要为 csv 文件的每一列指定变量名称

【问题讨论】:

    标签: json parsing request jmeter loading


    【解决方案1】:

    我不知道您将如何在 HTTP Request 采样器中使用 JSON 中的值,但是这是您可以解析您的 samples.json 文件并在 JSR223 Sampler 中从中获取 in 值的方法

    new groovy.json.JsonSlurper().parse(new File('samples.json')).dataset.each { entry ->
        entry.get('in').each { feature ->
            feature.each { value ->
                log.info(value.key + '=' + value.value)
            }
        }
    }
    

    上面的代码基本上将键和相应的值打印到jmeter.log文件中

    但您可以轻松修改它以将值存储到JMeter Variables,将它们写入 CSV 文件,设置 HTTP 请求采样器以即时使用它们等。

    更多信息:

    【讨论】:

    • 我想用 in 的字段填充 http 请求的正文数据(该格式的所有功能),但我想遍历我的 samples.json 中的所有 in 字段并填写单个 http 请求并不断迭代,因此每个请求进行单个单元测试。无论如何感谢您的回复!非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    相关资源
    最近更新 更多