executequery方法_【接口测试】soapui中数字、字符串、日期时间、数据库连接参数化的设置方法...
先回顧下前幾篇soapui工具操作文章:
在soapui里面使用groovy腳本生成測試報告的方法
在soapui里面用groovy傳遞cookie身份信息的方法
soapui中進行接口響應(yīng)數(shù)據(jù)的關(guān)聯(lián)設(shè)置方法
如果想要批量運行測試所需的接口,那么在測試過程中,我們可能會因為提交的數(shù)據(jù)問題導(dǎo)致測試中斷或者失敗,那么如何靈活和動態(tài)的處理測試請求中的靜態(tài)數(shù)據(jù)呢?這里就需要使用各種參數(shù)化的方法了。
參數(shù)化我分為兩個大分類,一類是使用腳本來生成變動的數(shù)字、字符串、日期等值,另一類是直接從數(shù)據(jù)庫中讀取已有的內(nèi)容。
第一類,隨機數(shù)字、隨機字符串、當(dāng)前日期時間的生成。
1. 隨機數(shù)字:
因為groovy是基于JVM的開發(fā)語言,所以可以在groovy腳本中借用java的方法,例如隨機整數(shù)nextInt(),我們可以在需要參數(shù)化的數(shù)據(jù)位置,將數(shù)據(jù)替換成${=new Random().nextInt(1000)}來隨機0-999的整數(shù)
2. 隨機字符串:
字符串因為不能直接生成,所以需要借助到groovy scripts腳本工具,
我們先在要測試的接口測試用例中,新建一個groovy scripts,然后給它重命名為randomStr
然后開始編輯groovy腳本:
先設(shè)置可能需要的大小寫英文和數(shù)字,用字符串保存起來
String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
然后創(chuàng)建隨機
Random random=new Random()
用StringBuffer類來定義可被修改字符串
StringBuffer sb=new StringBuffer()
隨機10次,每次隨機一個數(shù)字,然后用這個隨機數(shù)字當(dāng)做下標(biāo)在字符串中取個字符出來,將取出來的這個單個字符添加到可修改字符串中
for(int i=0;i<=10;i++){
def num = random.nextInt(62)
sb.append(str.charAt(num))
}
最后將值返回出去
return sb.toString()
每次執(zhí)行腳本之后,隨機的字符串會被返回到這個腳本外的自定義屬性中保存起來
最后在腳本中使用${腳本名#result}就可以調(diào)用這個返回出來的隨機字符串了
3. 當(dāng)前時間
我們可以使用${=new Date().time.toString().substring(0,10)}來獲取當(dāng)前時間的毫秒數(shù)
也可以通過${=Calendar.getInstance().get(Calendar.YEAR)+'-'+Calendar.getInstance().get(Calendar.MONTH)+'-'+Calendar.getInstance().get(Calendar.DATE)}來獲取當(dāng)前時間的年月日等信息值
上面三個是最常用的參數(shù)化方法,如果想要使用已有的數(shù)據(jù)來操作,就只能連接數(shù)據(jù)庫了。
首先,我們需要一個連接數(shù)據(jù)庫的jar包,我這里下載的是mysql-connector-java-5.1.48.jar的文件,將這個文件復(fù)制到soapui的lib文件夾下面
然后在要測試的接口上面,新增一個groovy腳本,我給它重命名為,connectMysql,編輯這個腳本,寫入如下的內(nèi)容:
用groovy來執(zhí)行連接數(shù)據(jù)庫和查詢數(shù)據(jù)的操作
先導(dǎo)入數(shù)據(jù)庫連接的模塊
import java.sql.*
定義數(shù)據(jù)庫的連接驅(qū)動名
def JDBC_DRIVER = "com.mysql.jdbc.Driver"
定義自己的數(shù)據(jù)庫連接地址
def DB_URL = "jdbc:mysql://數(shù)據(jù)庫地址:端口號/庫名"
定義自己數(shù)據(jù)庫的用戶名和密碼
def USER = "你的數(shù)據(jù)庫用戶名"
def PASS = "用戶名對應(yīng)的密碼"
定義數(shù)據(jù)庫的連接變量
Connection conn = null
定義操作sql語句的對象
Statement stmt = null
連接數(shù)據(jù)庫
Class.forName(JDBC_DRIVER)
conn = DriverManager.getConnection(DB_URL,USER,PASS)
stmt = conn.createStatement()
定義你自己的sql語句
String sql = "select 列 from 表名"
獲取查詢的所有結(jié)果
ResultSet rs = stmt.executeQuery(sql)
查看數(shù)據(jù)庫執(zhí)行結(jié)果的第一行信息
rs.next()
根據(jù)查詢的列名來獲取數(shù)據(jù)
def id= rs.getString('列名')
最后按順序關(guān)閉結(jié)果、查詢、連接
rs.close()
stmt.close()
conn.close()
將獲取到的值返回出去
return id
執(zhí)行完這個腳本,你要查詢的值會被寫入到該腳本的Custom Properties中
最后,在你的接口請求參數(shù)位置,使用${腳本名#字段名}就可以引用它了,這樣便能隨時從數(shù)據(jù)庫中取數(shù)據(jù)來操作了
感謝大家花時間耐心的看完這么長的文檔,希望對你們有所幫助。
soapui中數(shù)字、字符串、日期時間、數(shù)據(jù)庫連接參數(shù)化的設(shè)置方法?mp.weixin.qq.com總結(jié)
以上是生活随笔為你收集整理的executequery方法_【接口测试】soapui中数字、字符串、日期时间、数据库连接参数化的设置方法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle日期相减工作日_Oracle
- 下一篇: mysql内置多个数据存储引擎_一个my