我对Java和Groovy还很陌生。但是,我需要从excel文件中读取数据,并将它们加载到SOAPUI测试套件中。我跟随谷歌的几个链接,并试图实现相同的,但面临错误。
下载了POI 41.0 jar文件并将它们复制到SOAPUI/bin/ext文件夹。在SOAPUI中,我为groovy脚本添加了一个步骤(如下所述)。
import org.apache.poi.ss.usermodel.*
import org.apache.poi.hssf.usermodel.*
import org.apache.poi.xssf.usermodel.*
impot org.apache.poi.ss.util.*
def fs = new FileInputStream("FILE LOCATION")
Workbook wb = WorkbookFactory.create(fs);
def ws = wb.getSheet("Sheet1")
def r = ws.getPhysicalNumberOfRows()
log.info "==========="+r
它应该会返回行数。但我得到了一个错误。
org.apache.poi.ooxml.POIXMLException: Could not initialize calss org.apache.poi.ooxml.POIXMLTypeLoader Error at line 7
先谢谢你的帮助
2条答案
按热度按时间zz2j4svz1#
在SmartBear论坛和其他地方有很多这类错误,但在soapUI和POI的不同版本中没有多少一致的解决方案。当在soapUI之外运行时,您的代码可以正常工作,这表明在soapUI和POI之间存在某种JAR版本冲突。
所以,有几个选择:
rdlzhqv92#
我有一个很好用的变通方法。xls文件(有问题。xlsx文件)。
首先下载jxl.jar通过Groovy脚本访问excel文件。来源:https://sourceforge.net/projects/jexcelapi/files/jexcelapi。
下载最新版本(当前版本:2.6.12).解压缩文件,复制JXL。两个人的jar:
现在添加一个测试步骤-〉属性并声明要读取的数据为变量(property 1,property 2)。
使用Groovy脚本测试步骤中的脚本(添加了将响应结果写入另一个excel文件的功能):
您可以修改脚本以检查各种响应类型。