lf知识星球banner

测试驱动中数据库的查询操作与断言

2020-02-19 09:00:00
Seagull
原创
5986

自动化测试过程中,数据库相关的应用场景非常多,比如测试数据的初始化、数据库数据的断言、测试数据的修改等等。


其实在LuckyFrame的客户端中已经提供了数据库测试相关的工具类,操作起来也是非常简单,如下:


但是我们在LuckyFrame客户端的V3.2版本中,重新对此工具类封装了一个测试驱动类,这样我们在写用例的时候,需要用到数据库操作或是查询,或是断言,可以做到开箱即用。

此类中提供了两个默认方法,一个是数据查询类的方法executeQuery Select ,一个是数据操作类的方法executeSql (insert、update、alter、delete等等) ,当我们需要使用到的时候,直接在用例步骤中按API驱动的规则进行测试即可。


数据查询类的方法 executeQuery说明:查询出来的数据返回到用例预期结果字符串,如果有多个列,会以%号分隔,如果多行,会以#分隔。


数据操作类的方法 executeSql说明:SQL操作返回的结果字符串,如果操作成功返回"成功执行SQL,更新数据XX行!",如果没有更新到数据,返回"成功执行SQL,没有更新到数据!"


数据库URL以及用户名密码的配置,我们在默认驱动目录( \TestDriven\ driven_config.properties )下有一个默认的配置文件,接提示写入即可。

其中 db.ComboPooledDataSource.DriverClass 配置项默认的是mysql数据库的驱动,如果你用到oracle或是其他的数据库,那么要修改这里的驱动类,以及要在客户端中添加对应数据库的依赖包。如果你使用的是mysql数据库,我们已经默认在客户端中添加了依赖包。


实例:这里我们以查询LuckyFrame数据库用户表数据为例

包路径: luckyclient.driven. DbDriven

方法: executeQuery

参数 (sql) :select * from sys_user

预期结果 (模糊匹配) :%=admin

对当前用例进行调试,成功查询出数据,我们可以看到列数据是以%来进行分隔的,因为只有一行,所以没有行分隔符。

文章原创申明
  • 本站文章以及相关内容除注明 转贴外,均为本站 原创翻译

  • 如果本站转载的文章涉嫌侵犯了您的权益,请在评论区留言或是邮件联系管理员及时删除 【admin@luckyframe.cn】

评论列表
wuo125 2021-05-19 15:32:55 回复
请问取到数据库中的值之后赋值给参数时,怎么去掉#和%
Seagull 2021-05-20 16:43:34 回复
在驱动代码中修改,把这两个符号去掉即可
tester001 2021-03-18 09:59:03 回复
多个ip地址,多个database,怎么处理?
1/1
发表评论
评论通过审核后显示。
付费知识圈