2016-09-06 126 views
0

我想从SOAP UI中的数据库请求(JDBC)中获取数据。例如,我有这样的连接,并要求: enter image description here如何从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); 

,我没有得到任何东西。

+0

你必须做任何事情与ret获得数据? – Rao

回答

1

我认为这个问题是与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步步测试响应具有总是相同的结构,直到<Row>因此它是安全的开始//*:Row,然后XPath可能更简单:

//*:Row/*:ICC_ID 
+2

对于SoapUI JDBC回复,应该_always_安全地使用'// *:Row'启动XPath。可以删除'// *:Results/*:ResultSet'。 – SiKing

+0

@注意正确点!因为直到''的xml结构总是相同的。 – albciff

相关问题