katalon数据库处理

本文详细介绍如何在KatalonStudio中使用自定义关键字进行数据库连接、执行SQL语句及关闭连接,提供具体代码实现,便于自动化测试人员快速掌握。

在日常的测试工作中需要经常用到:数据库的处理,执行SQL语句。 Katalon Studio可以通过定制关键字的方式连接到数据库,并执行SQL语句。 基本实现思路如下所示:

  • 建立数据库连接
  • 执行数据查询
  • 关闭连接

官方提供的方法:

private static Connection connection = null;

	/**
	 * Open and return a connection to database
	 * @param dataFile absolute file path  
	 * @return an instance of java.sql.Connection
	 */
	@Keyword
	def connectDB(String dataFile){
		//Load driver class for your specific database type
		Class.forName("org.sqlite.JDBC")
		String connectionString = "jdbc:sqlite:" + dataFile
		if(connection != null && !connection.isClosed()){
			connection.close()
		}
		connection = DriverManager.getConnection(connectionString)
		return connection
	}
	
	/**
	 * execute a SQL query on database
	 * @param queryString SQL query string
	 * @return a reference to returned data collection, an instance of java.sql.ResultSet
	 */
	@Keyword
	def executeQuery(String queryString) {
		Statement stm = connection.createStatement()
		ResultSet rs = stm.executeQuery(queryString)				
        return rs
	}

	@Keyword
	def closeDatabaseConnection() {
		if(connection != null && !connection.isClosed()){
			connection.close()
		}
		connection = null
	}

	/**
	 * Execute non-query (usually INSERT/UPDATE/DELETE/COUNT/SUM...) on database	
	 * @param queryString a SQL statement
	 * @return single value result of SQL statement
	 */
	@Keyword
	def execute(String queryString) {
		Statement stm = connection.createStatement()
		boolean result = stm.execute(queryString)
		return result
	}

修改后实现的方法:

public class ValueUtil {
/** * 数据库连接 * @param url 连接地址--含数据库名 * @return value Value of variable */ @Keyword def DBconnect(url,userName,password){ return Sql.newInstance(url,userName,password,"com.mysql.jdbc.Driver") } /** * 执行sql * @param 操作数据库对象 * @param sql语句 * @return value Value of variable */ @Keyword def executeSql_Core(sql){ def db_url=GlobalVariable.G_db_url def userName=GlobalVariable.G_dbUser def password=GlobalVariable.G_dbPassword Sql con=new ValueUtil().DBconnect(db_url,userName,password) con.execute(sql) con.close() con=null } /*** 关闭数据库 */ @Keyword def DBclose(Sql db){ db.close() db=null }

}

说明:

ValueUtil为关键字

关键字模式显示效果:

通过以下路径File > New > Keyword新建关键字。
如果不知道怎么新建关键字,详见笔者上一篇文章: Katalon Studio如何定义关键字
database

Script模式调用方式:

按照以上方式封装好关键字以后,在编辑脚本的时候就可以愉快的调用以上方法实现连接数据库执行SQL语句了。调取方式如下所示:
database_read

 

 

转载于:https://www.cnblogs.com/toney-66/p/10308424.html

Unable to call Test Case 'Test Cases/File_Get/doc_got_tryBatch' (Root cause: com.kms.katalon.core.exception.StepErrorException: Call Test Case 'Test Cases/File_Get/doc_got_tryBatch' failed because of error(s) at com.kms.katalon.core.keyword.builtin.CallTestCaseKeyword$_callTestCase_closure1.doCall(CallTestCaseKeyword.groovy:66) at com.kms.katalon.core.keyword.builtin.CallTestCaseKeyword$_callTestCase_closure1.call(CallTestCaseKeyword.groovy) at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:75) at com.kms.katalon.core.keyword.builtin.CallTestCaseKeyword.callTestCase(CallTestCaseKeyword.groovy:81) at com.kms.katalon.core.keyword.builtin.CallTestCaseKeyword.execute(CallTestCaseKeyword.groovy:44) at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:74) at com.kms.katalon.core.keyword.BuiltinKeywords.callTestCase(BuiltinKeywords.groovy:310) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at batch_GetDoc.run(batch_GetDoc:29) at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194) at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119) at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:448) at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:439) at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:418) at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:410) at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:285) at com.kms.katalon.core.common.CommonExecutor.accessTestCaseMainPhase(CommonExecutor.java:71) at com.kms.katalon.core.main.TestSuiteExecutor.accessTestSuiteMainPhase(TestSuiteExecutor.java:160) at com.kms.katalon.core.main.TestSuiteExecutor.execute(TestSuiteExecutor.java:107) at com.kms.katalon.core.main.TestCaseMain.startTestSuite(TestCaseMain.java:180) at TempTestSuite1754637441126.run(TempTestSuite1754637441126.groovy:35) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) Caused by: java.lang.IllegalArgumentException: Illegal base64 character 3f at e_Contract.download_Bs_Uat.saveBase64ToPdf(download_Bs_Uat.groovy:176) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at com.kms.katalon.core.main.CustomKeywordDelegatingMetaClass.invokeStaticMethod(CustomKeywordDelegatingMetaClass.java:55) at doc_got_tryBatch.run(doc_got_tryBatch:26) at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194) at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119) at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:448) at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:439) at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:418) at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:410) at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:285) at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:137) at com.kms.katalon.core.keyword.builtin.CallTestCaseKeyword$_callTestCase_closure1.doCall(CallTestCaseKeyword.groovy:59) ... 25 more )
最新发布
08-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值