SoapUI中使用Groovy脚本操作数据库 .

SoapUI中支持使用Groovy脚本,通过Groovy脚本可以操作数据库,并可以对数据库结果进行校验,从而完成用例的检查。

 

1:在SoapUI中放置第三方jar包

连接的数据库jar包需要放置于bin/ext目录下

原文如下:

If you need to add external libraries to the soapUI classpath for your Groovy scripts (for example jdbc drivers),put these in the bin/ext folder under the soapUI installation,these will be read upon started and added to the soapUI classloader.

 

2: 在SoapUI的Test Case中新增数据库连接的配置,此配置的Properties文件可以直接从本地文件中导入

 

3:在SoapUI的Test Case中新建Groovy Script连接数据库

接口如下

def sql = sql.newInstance(   

          地址,  

          用户名,  

          密码,   

          驱动 )

实现样例如下:

import groovy.sql.sql
//通过读取配置文件连接数据库
 def DBProperties = testRunner.testCase.getTestStepByName( "DBProperties" );
def sql = sql.newInstance(DBProperties.getPropertyValue( "connection-url" ),DBProperties.getPropertyValue( "sysdb-user-name" ),
           DBProperties.getPropertyValue( "sysdb-password" ),DBProperties.getPropertyValue( "driver-class" ))

 

4:在SoapUI中通过Groovy脚本操作数据库

1)删除和新建表

//删除
try {
   sql.execute("drop table PERSON")
} catch(Exception e){}

//新建表
sql.execute('''create table PERSON (
    id integer not null primary key,
    firstname varchar(20),
    lastname varchar(20),
    location_id integer,
    location_name varchar(30)
)''')

 

2)插入记录

插入记录有两种方式

//向表中插入记录

sql.execute("insert into PERSON (id,firstname,lastname,location_id,location_name) values (1,'gao','shuaihong',1,'hshen') ")

//插入记录另外一种方式
def people = sql.dataSet("PERSON")
people.add( firstname:"James",lastname:"Strachan",id:4,location_id:10,location_name:'London' )

 

3)查询记录

//选择一行记录
def gaoshuaihong = sql.firstRow("select * from PERSON where id = 1") 
log.info(gaoshuaihong.firstname)

 

//选择多条记录
def allPerson  = sql.rows(" select * from  PERSON")
log.info(allPerson)
log.info(allPerson[0])
sql.eachRow("select * from PERSON"){ row ->  
    log.info(row.lastname)
 }

 

4)校验结果
 assert allPerson[0].lastname== "shuaihong"

 

 

另外通过Groovy的sql支持操作存储过程.

相关文章

背景:    8月29日,凌晨4点左右,某服务告警,其中一个...
https://support.smartbear.comeadyapi/docs/soapui/steps/g...
有几个选项可用于执行自定义JMeter脚本并扩展基线JMeter功能...
Scala和Java为静态语言,Groovy为动态语言Scala:函数式编程,...
出处:https://www.jianshu.com/p/ce6f8a1f66f4一、一些内部...
在运行groovy的junit方法时,报了这个错误:java.lang.Excep...