loadrunner Lr_类函数之 lr_xml_find()

lr_xml_find()

验证查询返回的XML值。

int lr_xml_find(<规范列表> [,<可选规范列表]],[LAST]);

 

参数说明:

List of specifications:对于以下所需规格的列表,请使用以下字符串格式:

“Specification = value”

    Query:对输入字符串XML的XML查询或快速查询。

    XML:要查询的XML输入字符串

    选择以下选项之一:

    Value:要查找的字符串。这可以是元素值或其属性值。

    or:

    ValueParam:包含要查找的字符串的参数名称。

List of optional specifications:对于以下可选规格列表,请使用以下字符串格式:

“Specification = value”

    SelectAll:如果为“yes”,则将处理与查询匹配的所有元素。如果“否”,则仅验证第一个查询匹配。默认值为“no”。请参阅多查询匹配

    IgnoreCase:如果为“yes”,则搜索将忽略Value或ValueParam的大写和小写字符与查询结果之间的差异。默认值为“no”。

    UseRegExp:如果为“yes”,Value和ValueParam可以是函数将搜索的正则表达式。有关详细信息,请参阅正则表达式。默认值为“UseRegExp = no”。

     NotFound:指定在找不到搜索值时脚本是失败还是继续。值为“继续”或“错误”。如果未指定NotFound,则脚本将失败。

LAST:表示可选规范列表结束的标记

 

lr_xml_find函数查询XML输入字符串XML中与查询条件(Value或ValueParam)匹配的值,并返回出现次数。如果SelectAll为“no”,lr_xml_find返回1或0。

 

示例:lr_xml_find

以下示例将“扩展”标记插入到员工记录中。它首先使用lr_xml_find验证雇员John Smith的记录是否存在于XML字符串xml_input中。如果它不存在,那么lr_xml_find将终止脚本的执行并发送错误消息。

但是,如果在运行时设置中选择继续运行错误或“NotFound = continue”传递到lr_xml_find,脚本将继续。在这些情况下,检查匹配数将阻止lr_xml_insert执行。有关处理错误条件的更多选项,请参阅lr_exit。

如果find操作成功,lr_xml_insert在xml_input中搜索标签“<employee>”,并插入包含扩展信息的XML片段。 (“XmlFragment = <extension> 2145 </ extension>”)。

结果字符串包含在ResultParam参数Result中。

有关使用lr_xml_find的更多示例,请参见“查找第一个出现”,“尝试查找部分字符串”,“使用正则表达式查找部分字符串”,“查找不是第一个出现的完整字符串”以及在“XML查询的示例脚本”的“XML字符串”部分中的“验证值是否存在”中的“指定发生”。

#include“as_web.h”

char * xml_input =

“<acme_org>”

    “<employee level = \”manager \“> John Smith”

        “<cubicle> 227 </ cubicle>”

    “</ employee>”

“</ acme_org>”;

Action(){

int find_cnt;

    lr_save_string(xml_input,“XML_Input_Param”);

    / *验证员工John Smith是否存在* /

    find_cnt = lr_xml_find(“XML = {XML_Input_Param}”,

        “Value = John Smith”,

        “Query = / acme_org / employee”,

        LAST);

    if(find_cnt> 0)

 

{

        / *现在插入John Smith的电话分机号码* /

        lr_xml_insert(“XML = {XML_Input_Param}”,“ResultParam = Result”,

        “XmlFragment = <extension> 2145 </ extension>”,

        “Query = / acme_org / employee”,

        “Position = child”,LAST);

        lr_output_message(lr_eval_string(“Insert after String:{Result}”)));

    } // end if find_cnt> 0

return 0;

}}

 

输出:

Action.c(15):“lr_xml_find”成功,处理1个匹配

Action.c(20):“lr_xml_insert”成功,处理1个匹配

Action.c(25):插入后的字符串:<acme_org> <employee> John Smith <cubicle> 227 </ cubicle> <extension> 2145 </ extension> </ employee> </ acme_org>

 

实施例2

以下示例按级别属性的值搜索。在第一个实例中,找到文本管理器。在第二个例子中,没有找到导演的匹配。

    lr_xml_find(“Xml = {XML_Input_Param}”,

         “Query = / acme_org / employee / @ level”,

        “Value = manager”,

        LAST

    );

    lr_xml_find(“Xml = {XML_Input_Param}”,

         “Query = / acme_org / employee / @ level”,

        “Value = director”,

        LAST

    );

输出(在执行日志或output.txt文件中):

Action.c(14):“lr_xml_find”成功,处理1个匹配

Action.c(19):错误:找不到指定的查询的匹配[class:CLrXmlScriptFunc]

Action.c(19):错误:“lr_xml_find”执行失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值