SoapUI Script 方式连接数据库

前言

SoapUI 可以支持JDBC和Script方式访问数据库,Script获取到数据库内容后可以支持和接口返回数据的比对,非常的灵活和准确

一、请求中添加Script断言

在Request的断言处点击加号图标,弹出的Add Assertion 中选择 Script Assertion,点击Add 按钮。

二、连接数据库脚本

 1 import groovy.sql.Sql
 2 import groovy.json.JsonSlurper
 3 
 4 def JDBCURL ="jdbc:mysql://host:port/db"
 5 def USERNAME = context.expand('${#Project#username}')
 6 def PASSWORD = context.expand('${#Project#password}')
 7 def JDBCDRIVER = "com.mysql.jdbc.Driver"
 8 log.info(USERNAME)
 9 log.info(PASSWORD)
10 
11 //log.info(uid)
12 driver = Sql.newInstance(JDBCURL,USERNAME,PASSWORD,JDBCDRIVER)
13 
14 //数据库查询结果
15 sql="SELECT * FROM `table` WHERE type = '1' AND name = 'Deals'"
16 def result = driver.rows(sql)
17 count = result.size()
18 log.info(count)

说明:

1、password及username等变量建议参数化,规避密码过期需要逐个修改的问题,可以在project层添加参数;

2、通过连接数据库,得到了满足查询条件的数据的条数

3、将数据库查询结果与接口结果进行对比,如果一致证明接口查询准确可靠,所以继续完善代码

三、获取接口返回信息并与数据库进行比对

1 //接口返回结果
2 content = context.expand('${Request 1#Response}')
3 def slurper = new  JsonSlurper()
4 def re = slurper.parseText(content)
5 def size =re.sceneUserInfoList.uid.size()
6 log.info(size)
7 
8 //验证数据库查询结果与接口返回结果一致
9 assert count == size

至此,我们可以验证数据库的结果与接口返回的结果数量一致,如果有更细致的校验,可以根据需要添加丰富的assert 内容

四、小结

Script连接数据库的优势在于数据库中数据的变动,对校验结果的影响可以规避到最小,并且脚本灵活方便,可以复用,效率相对较高。

原文地址:https://www.cnblogs.com/sunnydev/p/14932400.html