robotframework自动化系列:操作mysql数据库

随着项目自动化深入和不断完善,大部分功能都已经能完成了自动化的操作;但是在设备添加的时候,遇到了难题。添加设备的时候mac必须是服务器设备管理中已经存在的mac地址,且是没有关联或绑定用户的设备信息。起初的想法是读取文本文件取得mac地址实现自动化操作,但是此方法也是行不通的!所以这个功能暂时没有自动化操作。后来想到可以读取数据库的查询结果,这样一来,每次添加设备的mac都可以确保是服务器上存在的,且是在用户使用设备表中是不存在的就可以。

那么该如何实现呢?

思路:

  1. 打开数据库
  2. 查询表中用户没有使用的mac
  3. 将查询结果赋值给一个变量
  4. mac地址中输入该变量

说明一下:测试环境的服务器是mysql

既然robotframework需要操作数据库,那么需要安装执行数据库的databaselibrary和pymysql。

安装databaselibrary和pymysql

通过cmd命令执行:pip install robotframework-databaselibrary

cmd命令执行:pip install pymysql

如图所示

引入DatabaseLibrary包到Robotframework

如图

使用关键字操作数据库

第一步:打开数据库

使用Connect To Database Using Custom Params关键字连接数据库,这里需要传入2个参数pymysql和连接数据库的信息,代码如下

mac地址
#从服务器上获取没有绑定或关联的设备号
Connect to database using custom params    pymysql    database='test_pre', user='test', password='test', host='127.0.0.1', port=3306
Connect to database using custom params    pymysql    database='test_sys', user='test', password='test', host='127.0.0.1', port=3306

第二步 执行sql语句

代码如下

@{result}    Query    select mac from test_pre.device_server where mac not in (select mac from device)limit 1
log    @{result[0]}

第三步:关闭连接

 Disconnect From Database

代码展示如下

mac地址
#从服务器上获取没有绑定或关联的设备号
Connect to database using custom params    pymysql    database='test_pre', user='test', password='test', host='127.0.0.1', port=3306
Connect to database using custom params    pymysql    database='test_sys', user='test', password='test', host='127.0.0.1', port=3306
@{result}    Query    select mac from test_pre.device_server where mac not in (select mac from device)limit 1
log    @{result[0]}
Disconnect From Database
${mac}    convert to string    @{result[0]}
log    ${mac}
[Return]    ${mac}

robotframework截图所示

注意

返回值@{result[0]}是list格式,后面需要使用此返回值断言的,所以需要转换格式为string,${mac} convert to string @{result[0]}

query中的sql语句,注意复制粘贴的时候空格要去掉,否则执行的时候会提示报错

这里用到了2个数据库test_pre和test_sys,其中pre中存放服务器mac地址,而test_sys存在的是用户关联或绑定的mac信息。而这里我们需要的mac是存在服务器上但是没有关联用户或绑定用户的设备信息

这样在添加用例的时候每次添加的mac都是唯一的,可以满足我们的要求了

这里mac已经封装关键字mac地址,这样我们下次直接使用关键字mac地址来生成一个新的mac地址。

posted @ 2017-12-04 18:00  janehost  阅读(3042)  评论(0编辑  收藏  举报