我有一些soapUI测试,使用groovy脚本首先将一些数据插入表中
以前,我一直在使用以下代码片段来执行此操作:
def conn = context.dbConnEtopup
conn.execute( "INSERT INTO A(ID, NAME) VALUES (1, "Johnny")" )
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我有很多测试脚本现在做类似的(如果不是相同的)SQL语句,所以我试图通过从属性文件加载它来处理它,所以我的实际SQL语句只在一个地方,方便编辑
但是,我尝试使用的SQL语句实际上是2个插入(或删除),因此加载的属性是:
DELETE * FROM TABLE_A; DELETE * FROM TABLE_B;
Run Code Online (Sandbox Code Playgroud)
conn.execute()无法处理;,这意味着我只能使用第一个DELETE语句
我怎么能绕过这个?我不想分别加载每个属性并执行它们.理想情况下,我只想要一个属性,所以我将来可以添加更多的删除语句
一些JDBC驱动程序支持多个语句,然后可以通过Groovy的Sql类获得此功能,例如使用MySql:
def props = [user: 'myuser', password: 'mypassword', allowMultiQueries: 'true'] as Properties
def url = 'jdbc:mysql://127.0.0.1:3306/mydb'
def driver = 'com.mysql.jdbc.Driver'
def sql = Sql.newInstance(url, props, driver)
sql.execute """
insert into PERSON (id, firstname, lastname) values (1, 'Dierk', 'Koenig');
insert into PERSON (id, firstname, lastname) values (2, 'Guillaume', 'Laforge');
insert into PERSON (id, firstname, lastname) values (3, 'Jon', 'Skeet');
"""
Run Code Online (Sandbox Code Playgroud)