如何在 Soap UI 中从数据库 (JDBC) 获取数据
How to get data from database (JDBC) in Soap UI
我想在 SOAP UI 中从请求到数据库 (JDBC) 获取数据。例如我有这样的连接和请求:
在其他步骤中,我尝试从数据库中获取数据:
def get_iccid = context.expand('${DB_Get_Free_SIM#ResponseAsXml#//Results[1]/ResultSet[1]/Row[1]/ICC_ID[1]}');
log.info("iccid from database = " + get_iccid);
我什么也没得到。
我认为问题出在 XPath
,尝试添加通配符以匹配任何命名空间:
//*:Results[1]/*:ResultSet[1]/*:Row[1]/*:ICC_ID[1]
在您的代码中:
def get_iccid =
context.expand('${DB_Get_Free_SIM#ResponseAsXml#//*:Results[1]/*:ResultSet[1]/*:Row[1]/*:ICC_ID[1]}');
请注意,如果只有一个 <Results>
、<ResultsSet>
、<Row>
元素,则无需指定 [1]
,因此如果您的 JDBC 响应类似于:
<Results>
<ResultSet fetchSize="10">
<Row rowNumber="1">
<ICC_ID>someValue</ICC_ID>
</Row>
</ResultSet>
</Results>
您可以将 XPath
简化为:
//*:Results/*:ResultSet/*:Row/*:ICC_ID
正如 @Siking 在评论中指出的那样,JDBC TestStep 响应在 <Row>
之前始终具有相同的结构,因此从 [=22 开始是安全的=],那么 XPath
可以更简单:
//*:Row/*:ICC_ID
我想在 SOAP UI 中从请求到数据库 (JDBC) 获取数据。例如我有这样的连接和请求:
在其他步骤中,我尝试从数据库中获取数据:
def get_iccid = context.expand('${DB_Get_Free_SIM#ResponseAsXml#//Results[1]/ResultSet[1]/Row[1]/ICC_ID[1]}');
log.info("iccid from database = " + get_iccid);
我什么也没得到。
我认为问题出在 XPath
,尝试添加通配符以匹配任何命名空间:
//*:Results[1]/*:ResultSet[1]/*:Row[1]/*:ICC_ID[1]
在您的代码中:
def get_iccid =
context.expand('${DB_Get_Free_SIM#ResponseAsXml#//*:Results[1]/*:ResultSet[1]/*:Row[1]/*:ICC_ID[1]}');
请注意,如果只有一个 <Results>
、<ResultsSet>
、<Row>
元素,则无需指定 [1]
,因此如果您的 JDBC 响应类似于:
<Results>
<ResultSet fetchSize="10">
<Row rowNumber="1">
<ICC_ID>someValue</ICC_ID>
</Row>
</ResultSet>
</Results>
您可以将 XPath
简化为:
//*:Results/*:ResultSet/*:Row/*:ICC_ID
正如 @Siking 在评论中指出的那样,JDBC TestStep 响应在 <Row>
之前始终具有相同的结构,因此从 [=22 开始是安全的=],那么 XPath
可以更简单:
//*:Row/*:ICC_ID