在自动化过程中,我们经常需要连接不同的数据库,并且对数据库进行很多不同的操作。Robot Framework提供了DatabaseLibrary库来操作数据库。我们可以按照官网中的说明来安装DatabaseLibrary库。在浏览器中访问http://franz-see.github.io/Robotframework-Database-Library/页面,即可看到该库的相关安装说明和API介绍,如图2-1-1所示。
图 2-1-1
可以通过在命令行中执行pip install -U robotframework-databaselibrary来进行安装。安装完成后,在使用DatabaseLibrary库时,需要预先在测试套件中导入该库,如图2-1-2所示。这里以MySQL数据库为例,讲述DatabaseLibrary库的使用。
图 2-1-2
要连接到MySQL,除了要导入DatabaseLibrary库外,还需要安装pure-Python MySQL client library,可以通过访问网址:https://github.com/PyMySQL/PyMySQL下载该库并且进行安装,或者直接在cmd命令行中输入pip install PyMySQL来进行安装,如图2-1-3所示。
图 2-1-3
(1)可以通过DatabaseLibrary库中的Connect To Database关键字来连接一个MySQL数据库。此处以连接本机MySQL库为例,如图2-1-4所示。
图 2-1-4
执行结果如图2-1-5所示。
图 2-1-5
(2)还可以通过Connect To Database Using Custom Params关键字来连接MySQL数据库,如图2-1-6所示。
图 2-1-6
执行结果如图2-1-7所示。
图 2-1-7
可以通过关键字Disconnect From Database断开数据库连接,我们在操作数据库时一定不要忘记在操作完成后断开数据库的连接,如图2-1-8所示。
图 2-1-8
执行结果如图2-1-9所示。
图 2-1-9
通过Query关键字可以对数据库中的表进行查询。此处以查询MySQL数据库中某张表的数据为例,我们在world数据库中执行“SELECT * FROM city LIMIT 5;”这条SQL语句。在SQL窗口中查询出来的结果如图2-1-10所示。
图 2-1-10
然后我们使用Query关键字来进行查询,如图2-1-11所示。
图 2-1-11
执行结果如图2-1-12所示。
图 2-1-12
可以通过Execute Sql String关键字来执行数据库的插入操作和删除操作。
(1)首先我们来看一下如何向数据库中插入数据。此处以向表city中插入一条记录为例,通过Execute Sql String关键字来执行INSERT INTO city(NAME,countrycode,district,population) VALUES('beijing' ,'ZH','China',217100) ,如图2-1-13所示。
图 2-1-13
执行结果如图2-1-14所示。
图 2-1-14
在SQL窗口查询刚刚执行的insert语句是否执行成功。我们可以看到已经成功插入了数据,如图2-1-15所示。
图 2-1-15
(2)然后我们看一下怎么删除表中的数据。我们将上面插入的“'beijing' ,'ZH','China', 217100”这条数据从数据库中删除,如图2-1-16所示。
图 2-1-16
执行结果如图2-1-17所示。
图 2-1-17
在SQL窗口查询一下有没有将数据成功删除。从查询的结果看,数据已经成功地被删除,如图2-1-18所示。
图 2-1-18
在做自动化测试时,我们经常需要构造数据或者对库中的数据进行初始化,但是如果我们每次都是将要执行的数据库脚本按条写在用例中,那么将非常不好维护,因此我们需要直接执行数据库脚本文件。在DatabaseLibrary库中,可以通过Execute Sql Script关键字来执行数据库脚本文件。
此处以执行本地磁盘中的script.sql为例。在script.sql脚本中放入需要执行的语句,如图2-1-19所示。
图 2-1-19
完整示例如图2-1-20所示。
图 2-1-20
执行结果如图2-1-21所示。
图 2-1-21
执行成功后,对数据库进行查询,会发现脚本已经执行成功、数据已经成功插入,如图2-1-22所示。
图 2-1-22
表2-1-1中描述了DatabaseLibrary库中其他关键字的使用方法。
表2-1-1 DatabaseLibrary库其他关键字的使用方法