【SoapUI】Groovy连接mysql数据库方式汇总


步骤1:


   将mysql-connector-java-5.1.7-bin.jar驱动包(自行下载),放在soapui安装目录的lib文件夹下,比如:D:\Program Files\SmartBear\SoapUI-Pro-5.0.0\lib


步骤2:


在groovy中写如下脚本:

importgroovy.sql.Sql


try{


/*---------方法1:直接连接DB,操作如下---------------*/


//defsql = Sql.newInstance("jdbc:mysql://127.0.0.1:3306/test","root","123456","com.mysql.jdbc.Driver");


/*--------方法2:通过读取配置文件连接数据库----------*/



//方式1:通过读取testCase配置中参数连接数据库,操作如下:



//比如:在某个testCase中定义DB_Connection_URL、DB_loginnam等参数,且参数具体值分别为: jdbc:mysql://127.0.0.1:3306/test、root等,可参照直接连接DB中输入值。


// defDBProperties = testRunner.testCase.getTestStepByName( "TestCase的参数Name值" );


// defsql = Sql.newInstance(DBProperties.getPropertyValue( "DB_Connection_URL"),DBProperties.getPropertyValue( "DB_loginname"),DBProperties.getPropertyValue( "DB_Password"),DBProperties.getPropertyValue( "DB_Driver_Class" ));

//方式2:通过读取TestSuite配置参数连接数据库,操作如下:



比如:在某个TestSuite中定义DB_Connection_URL、DB_loginnam等参数,且参数具体值分别为:jdbc:mysql://127.0.0.1:3306/test、root等,可参照直接连接DB中输入值。

defDBProperties = testRunner.testCase.getTestSuite();
 
 
defsql = Sql.newInstance(DBProperties.getPropertyValue("DB_Connection_URL" ),DBProperties.getPropertyValue( "DB_loginname"),DBProperties.getPropertyValue( "DB_Password"),DBProperties.getPropertyValue( "DB_Driver_Class" ));
 
 
defGet_shop_mobile=DBProperties.getPropertyValue( "shop_mobile" )
 
 
defGet_sn_id=DBProperties.getPropertyValue( "sn_id" )
 
 
 
 
 
//进行sql具体操作,根据店铺ID和sn_id
 
 
def  get_token = sql.firstRow("SELECTa.device_token from 1dcq_shop_device a LEFT JOIN 1dcq_shop b ona.shop_id=b.shop_id LEFT JOIN 1dcq_user c on b.principal_id=c.user_id wherea.sn_id=${Get_sn_id} and c.mobile=${Get_shop_mobile}") ;
 
 
//获取数据库表字段值
 
 
defToken= get_token.device_token
 
 
if(Token!= null & Token !="")
 
 
{
 
  
 
    //方法1:将Token值存入testSuite中Custom Property的参数 
 
 
    //testRunner.testCase.testSuite.setPropertyValue("YD_Token",Token)
 
 
 
    //方法2:将Token值存入testCase中Custom Property的参数
 
 
    testRunner.testCase.setPropertyValue("YD_Token",Token) 
 
 
    //方法3:直接返回结果集
 
 
    //return Token 
 
 
 
 
 
    log.info(Token)
 
 
}else{
 
 
    login.info("获取验证失败,请联系管理员!")
 
 
}
 
 
}catch(Exceptione)
 
 
{
 
 
    e.printStackTrace();
 
 
}finally{ 
 
 
      try{ sql.close();}catch(Exception e){}
 
 
}


备注:1、数据库连接配置,可直接连接,也可以将从testSuite或testCase中定义参数获取配置值,也可以读取外部配置文件,但目前不考虑读取外部文件方式;2、将数据库查询操作得出来的值,可采用3种任一方法得到值(或者其他外部存储)。