[Win+RF]新人视角-快速上手RF的数据库测试

前言

有时候我们通过RF进行了界面测试后,会通过获取界面的元素直接进行检查,但我们无法确保这个值就是我们想要的,所以这时就可以通过查询后台数据库来进行辅助验证。

本文将以新手角度切入,讲解如何通过RF连接数据库进行辅助测试。

1 准备阶段

1.1 数据库

本章我们将通过MySQL数据库为例进行讲解,搭建及部署过程可参考MySQL安装 | 菜鸟教程

此处附带说明一下数据库结构:
Database Name:mytest
Table Name:info
Column Name:id / value

idvalue
1ABC
2老李
3VAB123

1.2 RF外部库

本章我们将涉及到的一个外部库叫做DatabaseLibrary
可在 https://pypi.org/project/robotframework-databaselibrary/ 下载安装或者通过命令安装:

pip install robotframework-databaselibrary

python操作不同的数据库还需要安装相应数据库的驱动,此处只介绍两个常用的数据库驱动,其余的可自行百度。

Oracle数据库驱动:cx_Oracle
可在 https://pypi.org/project/cx-Oracle/ 下载安装或者通过命令安装:

pip install cx-Oracle

MySQL数据库驱动:PyMySQL
可在 https://pypi.org/project/PyMySQL/ 下载安装或者通过命令安装:

pip install PyMySQL

2 开始测试

2.1 创建测试套件

创建测试套件没什么可赘述的,创建完成后只需引用DatabaseLibrary即可。
创建测试套件

2.2 编写测试脚本

先来看一个简单的例子:
测试脚本_1执行结果:
Result_1
Connect To DatabaseQuery

套路说明:
line1:使用Connect To Database关键字连接数据库。第一列为关键字,第二列为数据库驱动,第三列为连接数据库,第四列为连接用户,第五列为连接密码,第六列为数据库地址,第七列为数据库端口,第八列为字符集(如果查询结果不包含中文可以不填写,否则填写utf8);
line2:使用Query关键字查询并返回结果。第一列为返回值(类型为列表),第二列为关键字,第三列为查询语句;
line3:打印结果。我们可以看到执行结果输出了@{result}=[ (1, u’ABC’) | (2, u’\u8001\u674e’) | (3, u’VAB123’) ],我们通过index(@{result}[1])打印出了第二个结果;
line4:使用Disconnect From Database关键字断开数据库连接。

3 小试牛刀

3.1 封装关键字

1、文件夹内创建Resource-“Keywords.txt”,引用外部库DatabaseLibrary
Resource2、Resource中创建User Keyword-“查询数据库”:
KeywordSettings:设置入参及出参

Arguments:填写入参,名字自定如${sql}
Return Value:填写出参,名字自定如@{result}

line1:内容参照“2.2 编写测试脚本”的line1;
line2:内容参照“2.2 编写测试脚本”的line2,把第三列的查询语句改为入参${sql}
line3:断开数据库连接。

3.2 引用关键字

1、在Test Suite-“DatabaseTestSuite”中引用关键字集Keywords.txt
DatabaseTestSuite2、在案例中引用关键字查询数据库
测试脚本_2执行结果:
Result_2

line1:使用关键字查询数据库执行指定语句并获取返回值。第一列为返回值的变量(此处注意务必使用标量’${}’),第二列为关键字,第三列为需要执行的查询语句;
line2:指定查询结果设置为变量。此处需注意指定查询结果的特殊写法,index需写在标量里面,第一个[0]是获取${sqlresult}中的第一个值即“(1, u’ABC’)”,第二个[1]是获取上一步结果中的第二个值即“ABC”;
line3:使用关键字Should Be Equal As Strings对比预期值和结果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值