• 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地址。

  • 相关阅读:
    ViewPager+GridView实现首页导航栏布局分页效果
    RecyclerView和PullToRefreshListView的对比
    信鸽推送的使用
    2020重新出发,JAVA设计模式 之十 外观模式
    2020重新出发,JAVA设计模式 之九 装饰模式
    2020重新出发,JAVA设计模式 之八 桥接模式
    2020重新出发,JAVA设计模式 之七 适配器模式
    2020重新出发,JAVA设计模式 之六 代理模式
    2020重新出发,JAVA设计模式 之五 建造者模式
    2020重新出发,JAVA设计模式 之四 抽象工厂模式
  • 原文地址:https://www.cnblogs.com/LOVEYU/p/7978318.html
Copyright © 2020-2023  润新知