sql 字符串转日期时间_【接口测试】soapui中数字、字符串、日期时间、数据库连接参数化的设置方法...

a067f79833461f9c9e4cfe1cf5aa12c5.png

先回顾下前几篇soapui工具操作文章:

在soapui里面使用groovy脚本生成测试报告的方法

在soapui里面用groovy传递cookie身份信息的方法

soapui中进行接口响应数据的关联设置方法

如果想要批量运行测试所需的接口,那么在测试过程中,我们可能会因为提交的数据问题导致测试中断或者失败,那么如何灵活和动态的处理测试请求中的静态数据呢?这里就需要使用各种参数化的方法了。
参数化我分为两个大分类,一类是使用脚本来生成变动的数字、字符串、日期等值,另一类是直接从数据库中读取已有的内容。

第一类,随机数字、随机字符串、当前日期时间的生成。

1. 随机数字:

因为groovy是基于JVM的开发语言,所以可以在groovy脚本中借用java的方法,例如随机整数nextInt(),我们可以在需要参数化的数据位置,将数据替换成${=new Random().nextInt(1000)}来随机0-999的整数

223f3f1222636429db020317d303c475.png

2. 随机字符串:
字符串因为不能直接生成,所以需要借助到groovy scripts脚本工具,

我们先在要测试的接口测试用例中,新建一个groovy scripts,然后给它重命名为randomStr

d175e715d2cae45cf270a56a7439de92.png

然后开始编辑groovy脚本:

先设置可能需要的大小写英文和数字,用字符串保存起来
String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

然后创建随机
Random random=new Random()

用StringBuffer类来定义可被修改字符串

StringBuffer sb=new StringBuffer()

随机10次,每次随机一个数字,然后用这个随机数字当做下标在字符串中取个字符出来,将取出来的这个单个字符添加到可修改字符串中
for(int i=0;i<=10;i++){

def num = random.nextInt(62)

sb.append(str.charAt(num))

}

最后将值返回出去

return sb.toString()

214a1d28f1eba580590e9ac7083799c5.png

每次执行脚本之后,随机的字符串会被返回到这个脚本外的自定义属性中保存起来

135416d99e603ce293b454e5307c46d2.png

最后在脚本中使用${脚本名#result}就可以调用这个返回出来的随机字符串了

20720ceb745f06ad32939bead8fc0f35.png

3. 当前时间
我们可以使用${=new Date().time.toString().substring(0,10)}来获取当前时间的毫秒数

927e1d764750a31a356008546935d597.png

也可以通过${=Calendar.getInstance().get(Calendar.YEAR)+'-'+Calendar.getInstance().get(Calendar.MONTH)+'-'+Calendar.getInstance().get(Calendar.DATE)}来获取当前时间的年月日等信息值

94ea5bc5a2dc96bfed6987319863e5c7.png

上面三个是最常用的参数化方法,如果想要使用已有的数据来操作,就只能连接数据库了。

首先,我们需要一个连接数据库的jar包,我这里下载的是mysql-connector-java-5.1.48.jar的文件,将这个文件复制到soapui的lib文件夹下面

e4d825d03e2362d8bbd41d402280f660.png

然后在要测试的接口上面,新增一个groovy脚本,我给它重命名为,connectMysql,编辑这个脚本,写入如下的内容:

55b7759a6c1a74941308fe1da79b2da6.png

用groovy来执行连接数据库和查询数据的操作

先导入数据库连接的模块
import java.sql.*

定义数据库的连接驱动名
def JDBC_DRIVER = "com.mysql.jdbc.Driver"

定义自己的数据库连接地址
def DB_URL = "jdbc:mysql://数据库地址:端口号/库名"

定义自己数据库的用户名和密码

def USER = "你的数据库用户名"

def PASS = "用户名对应的密码"

定义数据库的连接变量
Connection conn = null

定义操作sql语句的对象
Statement stmt = null

连接数据库

Class.forName(JDBC_DRIVER)

conn = DriverManager.getConnection(DB_URL,USER,PASS)

stmt = conn.createStatement()

定义你自己的sql语句

String sql = "select 列 from 表名"

获取查询的所有结果

ResultSet rs = stmt.executeQuery(sql)

查看数据库执行结果的第一行信息
rs.next()

根据查询的列名来获取数据
def id= rs.getString('列名')

最后按顺序关闭结果、查询、连接
rs.close()

stmt.close()

conn.close()

将获取到的值返回出去

return id

10f11d8ea70562f2119af23a1e41f7b7.png

执行完这个脚本,你要查询的值会被写入到该脚本的Custom Properties中

3de10321a70259e9f46eb9deb5613878.png

最后,在你的接口请求参数位置,使用${脚本名#字段名}就可以引用它了,这样便能随时从数据库中取数据来操作了

567f968fda75ab776fda75388d4aef31.png

感谢大家花时间耐心的看完这么长的文档,希望对你们有所帮助。

soapui中数字、字符串、日期时间、数据库连接参数化的设置方法​mp.weixin.qq.com
4bd7ed529b7347344da34a08dbd39987.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值