JMeter更改我的命名空间

时间:2017-03-06 19:30:24

标签: soap jmeter xml-namespaces xml-rpc name-mangling

我试图使用JMeter来调用RPC / SOAP Web服务,当我调用服务时,我的命名空间从实际值被破坏到NS1。

<?xml version="1.0" encoding="UTF-8"?>
<wpc:invoke xmlns:wpc="http://wpc.ibm.com">
    <wpc:envelope communicationVersion="5.3">
        <wpc:WPCResponseType>asynchronous</wpc:WPCResponseType>
        <wpc:wpcHeader>
            <wpc:companyName>mycompany</wpc:companyName>
            <wpc:wpsUserID>me</wpc:wpsUserID>
            <wpc:wpcUserID>wpcUsername</wpc:wpcUserID>
            <wpc:password />
            <wpc:messageIdentifier>9E2FA100-BE54-11E5-8A91-BF48E24665E0</wpc:messageIdentifier>
            <wpc:timestamp>2016-01-18</wpc:timestamp>
            <wpc:supplierId><![CDATA[0Z188]]></wpc:supplierId>
            <wpc:localeForDisplay>en_US</wpc:localeForDisplay>
            <wpc:localeRestriction>en_US</wpc:localeRestriction>
        </wpc:wpcHeader>
        <wpc:wpcBody>
            <wpc:wpcCommand mode="ASYNC" type="UPLOAD">
                <wpc:wpcCatalogName>Item Transaction Catalog</wpc:wpcCatalogName>
                <wpc:wpcFileDocStorePath>test_data/upload/0003_items.csv</wpc:wpcFileDocStorePath>
                <wpc:wpcUpdateOnly>false</wpc:wpcUpdateOnly>
            </wpc:wpcCommand>
        </wpc:wpcBody>
    </wpc:envelope>
</wpc:invoke>

更改为:

<?xml version="1.0" encoding="UTF-8"?>
<ns1:invoke xmlns:ns1="http://wpc.ibm.com">
    <ns1:envelope communicationVersion="5.3">
        <ns1:WPCResponseType>asynchronous</ns1:WPCResponseType>
        <ns1:wpcHeader>
            <ns1:companyName>mycompany</ns1:companyName>
            <ns1:wpsUserID>me</ns1:wpsUserID>
            <ns1:wpcUserID>wpcUsername</ns1:wpcUserID>
            <ns1:password/>
            <ns1:messageIdentifier>9E2FA100-BE54-11E5-8A91-BF48E24665E0</ns1:messageIdentifier>
            <ns1:timestamp>2016-01-18</ns1:timestamp>
            <ns1:supplierId><![CDATA[0Z188]]></ns1:supplierId>
            <ns1:localeForDisplay>en_US</ns1:localeForDisplay>
            <ns1:localeRestriction>en_US</ns1:localeRestriction>
        </ns1:wpcHeader>
        <ns1:wpcBody>
            <ns1:wpcCommand mode="ASYNC" type="UPLOAD">
                <ns1:wpcCatalogName>Item Transaction Catalog</ns1:wpcCatalogName>
                <ns1:wpcFileDocStorePath>test_data/upload/0003_items.csv</ns1:wpcFileDocStorePath>
                <ns1:wpcUpdateOnly>false</ns1:wpcUpdateOnly>
            </ns1:wpcCommand>
        </ns1:wpcBody>
    </ns1:envelope>
</ns1:invoke>

JMeter中必须有一个设置来防止消息从我原来有意义的命名空间转换到这个名为NS1的任意命名空间?当在目标端点收到消息时,由于此语义错误,它无法解析请求。

感谢任何/所有回复! MG

1 个答案:

答案 0 :(得分:1)

JMeter不应该更改请求正文中的任何内容,也许这是您的Web服务的问题?使用Wireshark

等嗅探工具仔细检查JMeter发送的请求

JMeter namespace

在任何情况下,尝试切换到HTTP Request采样器,这是​​发送网络服务请求的推荐方式(不要忘记添加HTTP Header Manager以发送Content-Type和{{ 1}}标题)。

参考文献: