You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LoadRunner中同一请求返回JSON/XML时如何实现关联?

在LoadRunner中处理JSON/XML混合响应的关联方法

当然可以实现,核心思路是先识别响应的格式,再针对性使用对应函数提取目标值VerificationId,具体步骤如下:

  • 第一步:捕获格式判断依据
    优先通过响应头的Content-Type判断格式,准确性更高。先提取响应头中的Content-Type参数:

    web_save_param_ex(
        "Param=Content_Type",
        "LB=Content-Type: ",
        "RB=\r\n",
        "Search=Headers",
        LAST);
    

    若无法通过响应头判断,也可直接捕获整个响应内容作为判断依据:

    web_save_param_ex(
        "Param=Response_Content",
        "LB=",
        "RB=",
        "Search=Body",
        LAST);
    
  • 第二步:分支处理不同格式的提取逻辑
    根据捕获到的标识,分别处理JSON和XML格式的提取:

    // 基于Content-Type的判断逻辑
    if(strstr(lr_eval_string("{Content_Type}"), "application/json") != NULL) {
        // JSON格式:用正则提取(兼容所有LoadRunner版本)
        web_reg_save_param_regexp(
            "Param=VerificationId",
            "RegExp=\"VerificationId\":\\s*\"([^\"]+)\"",
            "Search=Body",
            LAST);
        // 若版本支持,也可使用JSON专用函数简化操作:
        // lr_json_get_values("JSON={Response_Content}", "ValueParam=VerificationId", "Query=$.VerificationId", LAST);
    } else if(strstr(lr_eval_string("{Content_Type}"), "application/xml") != NULL) {
        // XML格式:用左右边界提取(简单场景首选)
        web_reg_save_param(
            "Param=VerificationId",
            "LB=<VerificationId>",
            "RB=</VerificationId>",
            "Search=Body",
            LAST);
        // 复杂XML结构可改用XPath提取:
        // web_reg_save_param_xpath(
        //     "Param=VerificationId",
        //     "Query=/VerificationId/text()",
        //     "Snapshot=t1.inf",
        //     LAST);
    }
    
  • 关键注意事项

    • web_reg_*系列函数是前置函数,必须放在目标请求之前执行;如果是先获取响应再判断,需改用后置提取方式(比如用lr_save_string配合正则表达式手动解析)。
    • 测试时要覆盖两种响应场景,确保分支逻辑都能正常触发。
    • 若响应的Content-Type不标准,可改用检查响应内容中是否包含{"VerificationId"或<VerificationId>这类特征字符串来判断格式。

内容的提问来源于stack exchange,提问作者Nikhil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 02:01:16