随着项目自动化深入和不断完善,大部分功能都已经能完成了自动化的操作;但是在设备添加的时候,遇到了难题。添加设备的时候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地址。

robotframework自动化系统:操作mysql数据库的更多相关文章

  1. PHP操作MySQL数据库5个步骤

    PHP操作MySQL数据库一般可分为5个步骤:1.连接MySQL数据库服务器:2.选择数据库:3.执行SQL语句:4.关闭结果集:5断开与MySQL数据库服务器连接. 1.用mysql_connect ...

  2. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  3. 转 用C API 操作MySQL数据库

    用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,“C API函数描述”. 函数 描述 mysql_a ...

  4. PHP操作mysql数据库:[2]查询数据听语音

    本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料   Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言   ...

  5. Code First操作Mysql数据库

    前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...

  6. JDBC操作MySQL数据库案例

    JDBC操作MySQL数据库案例 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...

  7. shell脚本操作mysql数据库

    shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改.查)等各种操作 mysql  -hhostname -Pport -uusername -pp ...

  8. Java使用Jdbc操作MySql数据库(一)

    这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...

  9. 使用node js 操作 Mysql 数据库

    使用node js 操作 Mysql 数据库 http://www.nodejs.org/ //node js 数据库操作 MySQL //使用https://github.com/felixge/n ...

  10. 批处理操作mysql数据库

    批处理操作mysql数据库 1.使用批处理自动登录mysql数据库 @echo offcd C:\program files\mysql\mysql server 5.5\binmysql -u ro ...

随机推荐

  1. yum fastermirror插件屏蔽一些国内源

    最近被yum上hust源的问题恶心的受不了了,真不明白这种源还活着有什么意义,干脆关了得了,省得恶心人,经常Errno 14,404not found,去网页一看,好家伙,提示404的xml.gz路径 ...

  2. Asp.net MVC4高级编程学习笔记-模型学习第四课基架与模型绑定20171027

    MVC模型 一.构建基架. MVC中的基架可以为应用程序提供CURD各种功能生成所需要的样板代码.在添加控制器的时候可以选择相应的模板以及实体对象来生成相应的模板代码. 首先定义一个模型类如下所示: ...

  3. LeetCode 16. 3Sum Closest. (最接近的三数之和)

    Given an array S of n integers, find three integers in S such that the sum is closest to a given num ...

  4. C# 使用OpenCV在一张图片里寻找人脸

    先上个效果图 相关库的下载 例程中用到一个库叫做emgucv,是opencv\的net封装 编译打包好的稳定版,在这:https://sourceforge.net/projects/emgucv/f ...

  5. python 生成器和迭代器

    迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stoplteration异常,以终止迭代(只能往后走不能往前退) 2.可迭代对象:实现了 ...

  6. 史上最简单的MySQL安装教程之Linux(CentOS6.8)下安装MySQL5.6

    一.准备 安装包:Percona-Server-5.6.21-70.0-r688-el6-x86_64-bundle.tar MySQL下载地址:http://www.percona.com/doc/ ...

  7. hive 创建表和导入数据实例

    //创建数据库create datebase hive;//创建表create table t_emp(id int,name string,age int,dept_name string,like ...

  8. 详细解读-this-关键字在全局、函数、对象、jQuery等中的基础用法!

    一.前言 1. Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象.Javascript可以通过一定的设计模式来实现面向对象的编程,其 ...

  9. visual studio 2013使用github获取代码

    如图点击"视图""团队资源管理器".   点击主页上方的那个插头形状按钮"连接到团队项目".点击"克隆"   然后在克隆 ...

  10. html2cavans

    简介:http://www.jianshu.com/p/6a07e974a7e8 下载:https://github.com/niklasvh/html2canvas/releases C#代理git ...