我需要从soapui工具的xml中获取价值,并将这些数据存储到Excel表中。我在SoapUI工具中使用了groovy脚本。
如果响应有多个输出,这些输出存储在excel表中。像LocationName和CustCity333Name有两次,所以这些输出应该存储到excel表中。请帮助我解决这个问题
<ns10:Location>
<ns10:LocationId>
<ns5:RowId>7080013</ns5:RowId>
</ns10:LocationId>
<ns10:LocationDetails>
<ns10:AuditElement/>
<ns10:EffectiveDate/>
**<ns10:LocationName>REMOVEDEPENDENCY004</ns10:LocationName>**
<ns10:RailIncData/>
**<ns10:CustCity333Name>OAKLAND</ns10:CustCity333Name>**
<ns10:CustCity333Id>OAKLAND</ns10:CustCity333Id>
<ns10:CustCity333StateCode>TN</ns10:CustCity333StateCode>
<ns10:ParentCIFDetails/>
</ns10:LocationDetails>
</ns10:Location>
<ns10:Location>
<ns10:LocationId>
<ns5:RowId>7080018</ns5:RowId>
</ns10:LocationId>
<ns10:LocationDetails>
<ns10:AuditElement/>
<ns10:EffectiveDate/>
**<ns10:LocationName>REMOVEDEPENDENCY004</ns10:LocationName>**
<ns10:RailIncData/>
**<ns10:CustCity333Name>OAKLAND</ns10:CustCity333Name>**
<ns10:CustCity333Id>OAKLAND</ns10:CustCity333Id>
<ns10:CustCity333StateCode>TN</ns10:CustCity333StateCode>
<ns10:ParentCIFDetails/>
</ns10:LocationDetails>
注:
csv
格式。rowid
在行中进行标识。如果您不愿意,可以删除。Groovy脚本
//Provide / edit file path for csv file in the below
def fileName = '/tmp/locationData.csv'
def xml = """<root xmlns:ns10='url1' xmlns:ns5='url2'> <ns10:Location>
<ns10:LocationId>
<ns5:RowId>7080013</ns5:RowId>
</ns10:LocationId>
<ns10:LocationDetails>
<ns10:AuditElement/>
<ns10:EffectiveDate/>
<ns10:LocationName>REMOVEDEPENDENCY004</ns10:LocationName>**
<ns10:RailIncData/>
<ns10:CustCity333Name>OAKLAND</ns10:CustCity333Name>**
<ns10:CustCity333Id>OAKLAND</ns10:CustCity333Id>
<ns10:CustCity333StateCode>TN</ns10:CustCity333StateCode>
<ns10:ParentCIFDetails/>
</ns10:LocationDetails>
</ns10:Location>
<ns10:Location>
<ns10:LocationId>
<ns5:RowId>7080018</ns5:RowId>
</ns10:LocationId>
<ns10:LocationDetails>
<ns10:AuditElement/>
<ns10:EffectiveDate/>
<ns10:LocationName>REMOVEDEPENDENCY004a</ns10:LocationName>**
<ns10:RailIncData/>
<ns10:CustCity333Name>OAKLAND1</ns10:CustCity333Name>**
<ns10:CustCity333Id>OAKLAND</ns10:CustCity333Id>
<ns10:CustCity333StateCode>TN</ns10:CustCity333StateCode>
<ns10:ParentCIFDetails/>
</ns10:LocationDetails>
</ns10:Location>
</root>"""
def parsedXml = new XmlSlurper().parseText(xml)
def data = parsedXml.'**'.findAll{ it.name() == 'Location'}.inject([]){list, loc -> list << new Expando(
rowId: loc?.LocationId?.RowId?.text(),
locationName: loc?.LocationDetails?.LocationName?.text(),
cityName: loc?.LocationDetails?.CustCity333Name?.text()); list }
if (0< data.size()) {
def sb = new StringBuffer(data[0].properties.keySet().join(',')).append('\n')
data.collect { sb.append(it.properties.values().join(',')).append('\n')}
new File(fileName).write(sb.toString())
} else {
println 'No records found'
}
当我尝试在soapUI测试步骤中解析响应时,收到了以下异常。也尝试了getXMLHolder方法。还是没运气。 答复如下
我在SOAP UI工具中编写了groovy脚本,用于从excel工作表中读取值并执行SOAP UI xml,但每当运行脚本时,我都会遇到以下错误, 请帮帮我。我不明白这里缺少什么。我也添加了所有jar文件。 脚本为 错误:
SoapUI和Groovy我正在使用SoapUI pro和Groovy脚本。我正在将客户记录从请求读取到以下内容, CustRec中的值为, 现在,我想计算客户中Person对象的总数(即,在这个场景中,答案是2)。我尝试了while循环,但它对我不起作用。有人能告诉我如何使用循环实现吗? 提前感谢
问题内容: 我的应用程序正在使用此脚本来增强索引中的最新项目: 它是用MVEL编写的,但是从1.3开始,对于Groovy,不推荐使用MVEL。脚本现在引发此错误: 对我来说,这听起来像Groovy中获取毫秒级时间戳的功能不同。我尝试了,但是又给出了另一个错误,说它不支持导入。 那么我该如何修复该功能以与Groovy一起使用? 问题答案: 正如您已经发现的那样,您需要用Groovy而不是MVEL重写
我使用的是免费(非专业)SoapUI 5.0,我在测试套件中有一个属性列表。然后,我有许多测试步骤,每个步骤与测试套件属性具有相同的名称。 我试图在测试步骤属性中编写Groovy脚本,以检索同名的测试套件属性的值。 例如: 测试套件的属性颜色为\u红色,值为12345 到目前为止,我在“info”属性值中拥有什么: 我不确定我是否需要新的GroovyShell()。评估位,但没有它仍然不起作用。我
我在从groovy脚本(groovy脚本是SoapUI测试套件的一部分)运行java代码时遇到了问题,我创建了简单的脚本: TopClass的代码: 我将myjar.jar放入soapui-pro-2.5\lib和soapui-pro-2.5\bin\ext文件夹中。但行书我得到: org.codehaus.groovy.control.multipleCompilationerrorsExcep