独立模式下的 Wiremock 请求模板:我可以使用 XML 文件作为响应模板并使用 XPATH 注入值吗?

问题描述

我知道请求模板支持 XPath,因此我可以从 {{xPath request.body '/outer/inner/text()'}} 之类的请求中获取价值。我已经有一个 XML 文件作为响应,我想注入我从请求中获得的这个值,但保持这个响应 XML 的其他部分完好无损。例如,我想将其注入到 XPATH /svc_result/slia/pos/msid

我需要在独立模式下使用它。

我看到另一个问题 (Wiremock Stand alone - How to manipulate response with request data) 但那是关于 JSON,我有 XML 请求/响应。

怎么办?谢谢。

例如,我有这样的映射定义:

{
    "request": {
        "method": "POST","bodyPatterns": [
            {
                "matchesXPath": {
                    "expression": "/svc_init/slir/msids/msid[@type='MSISDN']/text()","equalTo": "200853000105614"
                }
            },{
                "matchesXPath": "/svc_init/hdr/client[id and pwd]"
            }
        ]
    },"response": {
        "status": 200,"bodyFileName": "slia.xml","headers": {
            "Content-Type": "application/xml;charset=UTF-8"
        }
    }
}

还有这个请求:

<?xml version="1.0"?>
<!DOCTYPE svc_init>
<svc_init ver="3.2.0">
    <hdr ver="3.2.0">
        <client>
            <id>dummy</id>
            <pwd>dummy</pwd>
        </client>
    </hdr>
    <slir ver="3.2.0" res_type="SYNC">
        <msids>
            <msid type="MSISDN">200853000105614</msid>
        </msids>
    </slir>
</svc_init>

我希望得到这个响应,请求中的 xxxxxxxxxxx 替换为 <msid>

<?xml version="1.0" ?>
<!DOCTYPE svc_result SYSTEM "MLP_SVC_RESULT_320.DTD">
<svc_result ver="3.2.0">
    <slia ver="3.0.0">
        <pos>
            <msid type="MSISDN" enc="ASC">xxxxxxxxxxx</msid>
            <pd>
                <time utc_off="+0800">20111122144915</time>
                <shape>
                    <EllipticalArea srsName="www.epsg.org#4326">
                        <coord>
                            <X>00 01 01N</X>
                            <Y>016 31 53E</Y>
                        </coord>
                        <angle>0</angle>
                        <semiMajor>2091</semiMajor>
                        <semiMinor>2091</semiMinor>
                        <angularUnit>Degrees</angularUnit>
                    </EllipticalArea>
                </shape>
                <lev_conf>90</lev_conf>
            </pd>
            <gsm_net_param>
                <cgi>
                    <mcc>100</mcc>
                    <mnc>01</mnc>
                    <lac>2222</lac>
                    <cellid>10002</cellid>
                </cgi>
                <neid>
                    <vmscid>
                        <vmscno>00004946000</vmscno>
                    </vmscid>
                    <vlrid>
                        <vlrno>99994946000</vlrno>
                    </vlrid>
                </neid>
            </gsm_net_param>
        </pos>
    </slia>
</svc_result>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)