Robot Framework-DatabaseLibrary数据库(MySql)

时间:2021-06-22 22:18:01

Robot Framework的API不依赖于选择哪种类型的数据库

  1. 数据库选择
    1. 选取数据库:MySql
    2. 下载地址:http://dev.mysql.com/downloads/mysql/
  2. Robot Framework安装Database-Library
    1. 使用管道Pip安装:pip install robotframework_databaselibrary
    2. 安装成功显示Robot Framework-DatabaseLibrary数据库(MySql)
  3. 官方参考文档
    1. 官方地址:http://franz-see.github.io/Robotframework-Database-Library/
    2. 官方API:http://franz-see.github.io/Robotframework-Database-Library/api/0.6/DatabaseLibrary.html
  4. API详解
            1. API 参数 说明
              Check If Exists In Database 查询语句 数据库中存在:存在,则为PASS,不存在,则为FAIL
              Check If Not Exists In Database 查询语句 数据库中不存在:不存在,则为PASS,存在,则为FAIL
              Connect To Database dbapiModuleName=None, dbName=None, dbUsername=None, dbPassword=None, dbHost=localhost, dbPort=5432, dbConfigFile=./resources/db.cfg 连接数据库配制信息,通过配制各项属性完成
              Connect To Database Using Custom Params dbapiModuleName=None, db_connect_string= 连接数据库配制信息,通过db_connect_string来传递。如database='my_db_test', user='postgres', password='s3cr3t', host='tiger.foobar.com', port=5432
              Delete All Rows From Table 表名 删除数据库中表的所有行:删除成功,则PASS;失败,则Fail
              Description 查询语句 返回查询语句的结果,内容格式为: [Column(name='id', type_code=1043, display_size=None, internal_size=255, precision=None, scale=None, null_ok=None)] [Column(name='first_name', type_code=1043, display_size=None, internal_size=255, precision=None, scale=None, null_ok=None)] [Column(name='last_name', type_code=1043, display_size=None, internal_size=255, precision=None, scale=None, null_ok=None)]
              Disconnect From Database 断开数据库链接
              Execute Sql Script SqlScriptFileName 执行脚本文件。SqlScriptFileName物理路径+FileName。
              Execute Sql String SqlString 执行Sql语句
              Query 查询语句 返回查询语句的查询结果
              Row Count 查询语句 返回查询语句的查询结果行总数
              Row Count Is 0 查询语句 查询语句的查询结果行总数:为0,则PASS;非0,则FAIL
              Row Count Is Equal To X 查询语句,X

              查询语句的查询结果行总数:为X,则PASS;非X,则FAIL

              X,为预期的查询结果行数,第二个需要传递的参数

              Row Count Is Greater Than X 查询语句,X

              查询语句的查询结果行总数:大于X,则PASS;小于或等于X,则FAIL

              X,为预期的查询结果行数,第二个需要传递的参数

              Row Count Is Less Than X 查询语句,X

              查询语句的查询结果行总数:大于X,则PASS;小于或等于X,则FAIL

              X,为预期的查询结果行数,第二个需要传递的参数

              Table Must Exist 表名 表名必须存在:存在,则PASS;不存在,则FAIL
  5. 实例
    1. 前题
      • 项目中需要添加Database的LibraryRobot Framework-DatabaseLibrary数据库(MySql)
    2. 连接数据库
      • 程序代码
      1. Connect To Database Using Custom Params    pymysql    database='infomation_schma', user='root', password='', host='localhost', port=3306
      • 代码说明
        • Connect To Database Using Custom Params:使用参数来连接数据库
        • pymysql:连接的数据库
        • database='infomation_schma',user='root',password='123456',host='localhost',port='3306':连接数据库的相关参数
      • 验证连接是否成功:执行此代码,运行PASS则连接成功
    3. 查询数据库
      • 数据库中表内容:Robot Framework-DatabaseLibrary数据库(MySql)
      • 编写脚本
      •  Connect To Database Using Custom Params    pymysql    database='information_schema', user='root', password='', host='localhost', port=3306
        ${result} Query select engine from engines
        Log -------------------
        Log ${result}
        Log -------------------
      • 代码说明:
        • 第1行:上个例子已经有说明
        • 第2行:使用Query方法来执行"select * from user_privileges",并将查询的结果返回对变量${result}
        • 第3行:使用Log日志来把查询的结果,显示到执行日志中
      • 执行结果:
      •  20150729 15:47:46.661 :  INFO : ${result} = (('FEDERATED',), ('MRG_MYISAM',), ('MyISAM',), ('BLACKHOLE',), ('CSV',), ('MEMORY',), ('ARCHIVE',), ('InnoDB',), ('PERFORMANCE_SCHEMA',))
        20150729 15:47:46.661 : INFO : -------------------
        20150729 15:47:46.676 : INFO : (('FEDERATED',), ('MRG_MYISAM',), ('MyISAM',), ('BLACKHOLE',), ('CSV',), ('MEMORY',), ('ARCHIVE',), ('InnoDB',), ('PERFORMANCE_SCHEMA',))
        20150729 15:47:46.676 : INFO : -------------------