RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作)

在自动化过程中,我们经常需要连接不同的数据库,并且对数据库进行很多不同的操作,RobotFramework中,提供了DatabaseLibrary这个库来操作数据库,我们可以按照官网中的说明来安装DatabaseLibrary库,在浏览器中访问http://franz-see.github.io/Robotframework-Database-Library/ 页面,即可以看到该库的相关安装说明和API介绍。

在使用DatabaseLibrary库时,需要在测试套件中,预先导入该库,才可以在用例中使用DatabaseLibrary库中的关键字,这里以Mysql数据库为例,讲述Databaselibrary库的使用

要链接到mysql,除了要导入DatabaseLibrary库外,还需要安装pure-Python MySQL client library,可以通过https://github.com/PyMySQL/PyMySQL 下载该库,并且进行安装,或者直接通过cmd命令行pip install PyMySQL来进行安装

1.1.1        如何连接数据库

1、可以通过DatabaseLibrary库中的Connect To Database关键字来链接一个mysql数据库,此处以链接本机mysql库为例

数据库用户名:root

数据库密码:root

Mysql数据库端口:3306

数据库名:world

Connect To Database   pymysql    world  root   root   localhost  3306

执行结果:

2、还可以通过Connect To Database Using Custom Params关键字来连接mysql数据库

Connect To Database Using Custom Params    pymysql    database='world', user='root', password='root', host='localhost', port=3306

执行结果:

1.1.2        如何断开数据库

可以通过关键字Disconnect From Database断开数据库连接,我们在操作数据库时,一定不要忘记在操作完成后,要断开数据库的连接

Connect To Database   pymysql    world  root   root   localhost  3306

Disconnect From Database      

执行结果:

2.1.3        如何对数据库的表进行查询

通过Query关键字可以对数据库中的表进行查询,此处以查询mysql数据库中某张表的数据为例,我们在world数据库中执行SELECT * FROM city LIMIT 5; 这条sql.

我们先看下,我们在sql窗口中查询出来的结果:

然后我们再使用Query关键字来进行查询

Connect To Database Using Custom Params  pymysql  database='world', user='root', password='root', host='localhost', port=3306

@{result}       Query      SELECT * FROM city LIMIT 5;

Log Many @{result}    

Disconnect From Database               

执行结果:

2.1.4        如何插入和删除数据

可以通过Execute Sql String关键字来执行数据库的插入操作和删除操作

1、首先我们来看下如何向数据库中插入数据,此处以向表city中插入一条记录为例,通过Execute Sql String关键字来执行INSERT INTO city(NAME,countrycode,district,population) VALUES('beijing' ,'ZH','China',217100)

Connect To Database Using Custom Params    pymysql  database='world', user='root', password='root', host='localhost', port=3306

Execute Sql String  INSERT INTO city(NAME,countrycode,district,population) VALUES('beijing' ,'ZH','China',217100)    

Disconnect From Database             

 
 

执行结果:

在sql窗口,查询一下,刚刚执行的inset语句是否执行成功。

我们可以看到已经成功插入了数据。

2、然后我们再来看一下怎么删除表中的数据,我们将上面插入的'beijing' ,'ZH','China',217100 这条数据从数据库中删除掉

Connect To Database Using Custom Params  pymysql  database='world', user='root', password='root', host='localhost', port=3306

Execute Sql String  delete from city where NAME='beijing'      

Disconnect From Database               

执行结果:

在sql窗口,查询一下,有没有将数据成功删除掉

从查询的结果看,我们看到数据已经成功的被删除掉了

2.1.5        如何执行数据库脚本文件

在做自动化测试时,我们经常需要构造数据或者对库中的数据进行初始化,但是如果我们每次都是将要执行的数据库脚本按条写在用例中,将非常不好维护,因此我们需要直接执行数据库脚本文件,在Databaselibrary库中,可以通过Execute Sql Script关键字来执行数据库脚本文件。

此处以执行本地F磁盘中的script.sql 为例,在script.sql 脚本中,放入需要执行的语句

Connect To Database Using Custom Params    pymysql  database='world',user='root', password='root', host='localhost', port=3306

Execute Sql Script       f:/script.sql  

Disconnect From Database         

执行结果:

执行成功后,对数据库进行查询,会发现,脚本已经执行成功,数据已经成功插入

2.1.6        数据库其他操作关键字

关键字

使用描述

Check If Exists In Database

检查数据库查询是否有返回结果,如果有返回结果,则用例执行成功,否则执行失败,示例:

Check If Exists In Database

SELECT * FROM city WHERE NAME='beijing' OR NAME='shanghai'

Check If Not Exists In Database

检查数据库查询是否有返回结果,如果有返回结果,则用例执行失败,否则执行成功,示例:

Check If Not Exists In Database

SELECT * FROM city WHERE NAME='beijing' and NAME='shanghai'

Delete All Rows From Table

删除数据库中某张表中的全部数据,示例:

Delete All Rows From Table

World

Description

描述数据库的查询结果,示例:

@{result}

Description

SELECT * FROM city WHERE NAME='beijing' or NAME='shanghai'

Log Many

@{result}      

Row Count

统计sql查询返回的记录数,示例:

${rowCount}

Row Count

SELECT * FROM city WHERE NAME='beijing' or NAME='shanghai'

Log

${rowCount}

Row Count Is 0

检查sql查询返回的记录数是否为0,示例:

Row Count Is 0

SELECT * FROM city WHERE NAME='beijing' or NAME='shanghai'

Row Count Is Equal To X

检查sql查询返回的记录数是否等于某个值,示例:

Row Count Is Equal To X

SELECT * FROM city WHERE NAME='beijing' or NAME='shanghai'

1

Row Count Is Greater Than X

检查sql查询返回的记录数是否大于某个值,示例:

Row Count Is Greater Than X

SELECT * FROM city WHERE NAME='beijing' or NAME='shanghai'

1

Row Count Is Less Than X

检查sql查询返回的记录数是否小于某个值,示例:

Row Count Is Less Than X

SELECT * FROM city WHERE NAME='beijing' or NAME='shanghai'

1

Table Must Exist

判断数据库中表是否存在,示例:

Table Must Exist

city

【原文归作者所有,欢迎转载,但是保留版权,并且转载时,需要注明出处

https://www.cnblogs.com/laoqing/p/8542487.html

猜你喜欢

转载自blog.csdn.net/bang152101/article/details/89174970