首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jMeter提取wddx包中的信息?

如何使用jMeter提取wddx包中的信息?
EN

Stack Overflow用户
提问于 2012-06-13 05:46:24
回答 1查看 350关注 0票数 0

我是一个同时使用XPath和JMeter的新手。我有一个包含wddx包的XML文件。以下是一个示例文件。实际数据一次最多可以包含100条记录。

代码语言:javascript
复制
<wddxPacket version='1'>
    <header/>
    <data>
        <recordset rowCount='2' fieldNames='FIELD1, FIELD2' type='coldfusion.sql.QueryTable'>
            <field name='FIELD1'>
                <string>MyValue1</string>
                <string>MyValue2</string>
            </field>
            <field name='FIELD2'>
                <string>MyValue3</string>
                <string>MyValue4</string>
            </field>
        </recordset>
    </data>
</wddxPacket>

我需要做的是根据recordset标记中指定的行数遍历XML文件,然后提取FIELD1FIELD2等格式的字符串值,并在其他WebService (SOAP)采样器中使用它们。为了确保能够提取该值,我使用了JMeter函数XPath。XPath调用如下(我正在尝试获取MyValue1),

代码语言:javascript
复制
${__XPath(c:\test.xml, /wddxPacket/data/recordset/field[@name='FIELD1']/string)}

为了确保文件读取部分是正确的,我使用了FileToString()函数并将内容赋给了一个变量。根据我在Debug Sampler中所能做的,该变量确实显示了正确的内容。但是,使用上面对XPath的函数调用并将结果赋给一个变量,该变量为空。以下是我的问题,就提取XML文件中的值而言,我是不是走错了路?如果是这样,我应该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2012-06-13 09:42:25

我不知道JMeter但是这个XPath

代码语言:javascript
复制
/wddxPacket/data/recordset/field[@name='FIELD1']/string

不返回字符串值,则返回包含这两个节点的节点集

代码语言:javascript
复制
<string>MyValue1</string> 
<string>MyValue2</string> 

如果只想要第一个节点,可以使用这个XPath:

代码语言:javascript
复制
/wddxPacket/data/recordset/field[@name='FIELD1']/string[1]

如果你只想要第一个字符串值,你可以试试这个XPath:

代码语言:javascript
复制
string(/wddxPacket/data/recordset/field[@name='FIELD1']/string)

最后但并非最不重要的一点是:您确定XML文件没有使用任何名称空间吗?因为如果需要,您需要在XPaths中显式地指定它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11005356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档