在自动化过程中,我们经常需要连接不同的数据库,并且对数据库进行很多不同的操作,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

【原文归作者所有,欢迎转载,但是保留版权,并且转载时,需要注明出处 Robot Framework自动化测试框架核心指南电子版试读

下一篇:RobotFramework自动化测试框架-MongoDBLibrary库的使用

相关博文汇总:

RobotFramework下的http接口自动化Create Http Context关键字的使用

RobotFramework下的http接口自动化Get关键字的使用

RobotFramework下的http接口自动化post关键字的使用

如何创建一个自动化测试项目

RobotFramework下的http接口自动化Get Response Body关键字的使用

RobotFramework下的http接口自动化Get Response Status 关键字的使用

RobotFramework下的http接口自动化Get Response header 关键字的使用

RobotFramework下的http接口自动化Set Request Header 关键字的使用

RobotFramework下HttpLibrary库其它关键字

RobotFramework下的http接口自动化Set Request Body 关键字的使用

RobotFramework下的http接口自动化Follow Response关键字的使用

RobotFramework自动化测试框架的基础关键字(一)

RobotFramework自动化测试框架的基础关键字(二)

RobotFramework自动化测试框架的基础关键字(三)

RobotFramework自动化测试框架的基础关键字(四)

RobotFramework自动化测试框架的基础关键字(五)

RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍

RobotFramework自动化测试框架-移动手机自动化测试Open Application关键字的使用

RobotFramework自动化测试框架-常用断言关键字

RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary库其它的常见自动化关键字

RobotFramework自动化测试框架-移动手机自动化测试Input Text和Click Button关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Clear Text关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Click Element关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Click A Point关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Click Element At Coordinates关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Get Element Location关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Get Network Connection Status和Set Network Connection Status关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Element Attribute Should Match关键字的使用

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

RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib

RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser

RobotFramework自动化测试框架-MongoDBLibrary库的使用

RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作)的更多相关文章

  1. RobotFramework自动化测试框架-MongoDBLibrary库的使用

    笔者接着 RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作) 继续分享robotframework 对数据库中的MongoDB的详细操作. Mongo ...

  2. RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍

    在使用AppiumLibrary库时,需要预先安装好Appium自动化工具,Appium官网地址为:http://appium.io/ Appium的GitHub地址为:https://github. ...

  3. RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib

    使用Python构建Lib工程 可以用来开发Python Lib的IDE工具有很多,常见的有Pycharm,Eclipse with PyDev插件等,而且在RobotFramework官网中也已经提 ...

  4. RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)

    好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识.而 RobotFramework自动化测试框架 是自动化测试 ...

  5. RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)

    本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramewor ...

  6. RobotFramework自动化测试框架(1)- RobotFramework简介

    对于RobotFramework自动化测试框架,我这里会从三个单元进行阐述,希望能对你有帮助. RobotFramework简介 RobotFramework是什么? Robotframework 是 ...

  7. RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser

    Selenium出来已经有很多年了,从最初的Selenium1到后来的Selenium2,也变得越来越成熟,而且也已经被很多公司广泛使用.Selenium发展的过程中,分了很多模块,这里我们主要介绍W ...

  8. RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary库其它的常见自动化关键字

    关键字 使用描述 Close Application 关闭掉当前已经打开的APP Application,该关键字不需要接收任何的参数,但是使用该关键字的前提是已经打开了一个APP Applicati ...

  9. RobotFramework自动化测试框架(3)- RobotFramework扩展测试库、资源文件、变量文件

    扩展测试库 扩展测试库可使用python或java语言编写.后直接导入需要使用的测试用例文件即可. 具体的实现和操作,后续补充.请参考官网. 资源文件 在资源文件中定义用户关键字,它提供了共享机制,即 ...

随机推荐

  1. Ios App上传步骤

    前言:作为一名IOS开发者,把开发出来的App上传到App Store是必须的.下面就来详细介绍下具体流程. 1.打开苹果开发者中心:https://developer.apple.com 打开后点击 ...

  2. 用最简单的例子实现jQuery图片即时上传

    [http://www.cnblogs.com/Zjmainstay/archive/2012/08/09/jQuery_upload_image.html] 最近看了一些jQuery即时上传的插件, ...

  3. ubuntu:通过封装验证码类库一步步安装php的gd扩展

    我相信很多人的lamp环境都是直接复制一堆参数安装进去的,这里有可能成功,也有可能失败,如果是新手,估计要碰到各种错误,就算安装成功,也未必知道那些参数是干嘛的,反正装进去能用就行. 我当初开始的时候 ...

  4. [记录]CentOS搭建SVN服务器(主从同步)

    CentOS搭建SVN服务器(主从同步)1.安装步骤如下: 1)安装: #yum install subversion 2)查看安装位置: #rpm -ql subversion 3)查看版本: #/ ...

  5. centos/linux下的安装git

    1.下载git wget https://github.com/git/git/archive/v2.14.1.zip 2.安装依赖 sudo yum -y install zlib-devel op ...

  6. Java注释用处

    1.Java注释: import cn.lonecloud.Doc; /** * Created by lonecloud on 2017/8/17. * 测试注释类型 {@link Doc#test ...

  7. Python后端(一)——客户端/服务端

    网址组成(四部分) 协议      http, https(https 是加密的http) 主机      g.cn zhihu.com之类的网址 ,因此一般不用填写 路径      下面的「/」和「 ...

  8. nyoj585 取石子(六) Nimm博弈

    此题数据十分极限,需要优化,否则会超时.关于此题的不足:明明说的每堆石子数不超过100,我开一个105大小的数组想用哈希居然Runtime Error!! 后来看见有人说需要优化输入: void in ...

  9. keepalived双机热备nginx

    nginx目前是我最常用的反向代理服务,线上环境为了能更好的应对突发情况,一般会使用keepalived双机热备nginx或者使用docker跑nginx集群,keepalived是比较传统的方式,虽 ...

  10. Dropout

    参数正则化方法 - Dropout 受人类繁衍后代时男女各一半基因进行组合产生下一代的启发,论文(paper.pdf)提出了Dropout. Dropout是一种在深度学习环境中应用的正规化手段.它是 ...