目录
- 前言
- 1 准备阶段
- 1.1 数据库
- 1.2 RF外部库
- 2 开始测试
- 2.1 创建测试套件
- 2.2 编写测试脚本
- 3 小试牛刀
- 3.1 封装关键字
- 3.2 引用关键字
前言
有时候我们通过RF进行了界面测试后,会通过获取界面的元素直接进行检查,但我们无法确保这个值就是我们想要的,所以这时就可以通过查询后台数据库来进行辅助验证。
本文将以新手角度切入,讲解如何通过RF连接数据库进行辅助测试。
1 准备阶段
1.1 数据库
本章我们将通过MySQL数据库为例进行讲解,搭建及部署过程可参考MySQL安装 | 菜鸟教程。
此处附带说明一下数据库结构:
Database Name:mytest
Table Name:info
Column Name:id / value
id | value |
---|---|
1 | ABC |
2 | 老李 |
3 | VAB123 |
1.2 RF外部库
本章我们将涉及到的一个外部库叫做DatabaseLibrary
可在 https://pypi/project/robotframework-databaselibrary/ 下载安装或者通过命令安装:
pip install robotframework-databaselibrary
python操作不同的数据库还需要安装相应数据库的驱动,此处只介绍两个常用的数据库驱动,其余的可自行百度。
Oracle数据库驱动:cx_Oracle
可在 https://pypi/project/cx-Oracle/ 下载安装或者通过命令安装:
pip install cx-Oracle
MySQL数据库驱动:PyMySQL
可在 https://pypi/project/PyMySQL/ 下载安装或者通过命令安装:
pip install PyMySQL
2 开始测试
2.1 创建测试套件
创建测试套件没什么可赘述的,创建完成后只需引用DatabaseLibrary
即可。
2.2 编写测试脚本
先来看一个简单的例子:
执行结果:
套路说明:
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
;
2、Resource
中创建User Keyword
-“查询数据库”:
Settings:设置入参及出参
Arguments:填写入参,名字自定如
${sql}
Return Value:填写出参,名字自定如@{result}
line1:内容参照“2.2 编写测试脚本”的line1;
line2:内容参照“2.2 编写测试脚本”的line2,把第三列的查询语句改为入参${sql}
line3:断开数据库连接。
3.2 引用关键字
1、在Test Suite
-“DatabaseTestSuite”中引用关键字集Keywords.txt
;
2、在案例中引用关键字查询数据库
:
执行结果:
line1:使用关键字查询数据库
执行指定语句并获取返回值。第一列为返回值的变量(此处注意务必使用标量’${}’),第二列为关键字,第三列为需要执行的查询语句;
line2:指定查询结果设置为变量。此处需注意指定查询结果的特殊写法,index需写在标量里面,第一个[0]是获取${sqlresult}中的第一个值即“(1, u’ABC’)”,第二个[1]是获取上一步结果中的第二个值即“ABC”;
line3:使用关键字Should Be Equal As Strings
对比预期值和结果。
更多推荐
[Win+RF]新人视角-快速上手RF的数据库测试
发布评论