学习目录
安装Mysql数据库
安装mysql数据库的连接工具
安装DatabaseLibrary
通过ride导入DatabaseLibrary库
在resource文件中创建关键字,实现操作数据库的功能
创建并执行测试用例
1、 在测试套件中引用该resource文件
2、 创建查询sql用例
3、 创建更新数据库用例
总结
本章节主要介绍使用DatabaseLibrary库操作mysql数据库,包括查询、删除数据等
安装Mysql数据库
安装windows操作系统的mysql数据库,在官网下载安装https://downloads.mysql.com/archives/installer/,注意保存好创建时填写的root密码或者其他用户名和密码,后续连接时需要使用。
安装mysql数据库的连接工具
可以下载免费的 HeidiSQL,打开后连接数据库:填写本机ip、用户和密码,以及端口(默认3306)
连接之后,创建数据库mydb和表userinfo
在表userinfo中插入3条数据
安装DatabaseLibrary
通过pip命令安装 robotframework-databaselibrary 以及连接mysql的包pymysql
pip install robotframework-databaselibrary -i https://mirrors.aliyun.com/pypi/simple/
pip install pymysql -i https://mirrors.aliyun.com/pypi/simple/
通过ride导入DatabaseLibrary库
还是跟之前文章一样,创建一个resource文件数据库操作.robot,在resource文件中导入DatabaseLibrary库。如下图所示
查看DatabaseLibrary库的关键字信息
在resource文件中创建关键字,实现操作数据库的功能
- 在上面创建的resource文件点击右键,创建user keyword,输入name和参数,参数为mysql的ip、port、user、password以及数据库名称
然后使用DatabaseLibrary的关键字Connect To Database实现连接mysql数据库,参数图上图所示。
- 创建关键字用于查询sql语句并返回查询结果
使用query关键字传入sql语句,然后返回result,如上图所示
2 .创建关键字用于更新数据库
使用Execute Sql String关键字传入sql语句,更新数据库
- 在Text Edit区域查看代码
*** Settings *** Library DatabaseLibrary *** Keywords *** 连接mysql数据库 [Arguments] ${ip} ${port} ${user} ${password} ${dbname} Connect To Database pymysql ${dbname} ${user} ${password} ${ip} ${port} 查询sql [Arguments] ${sql} ${queryResults} query ${sql} [Return] ${queryResults} 更新sql [Arguments] ${sql} Execute Sql String ${sql} |
创建并执行测试用例
1 在测试套件中引用该resource文件
2 创建查询sql用例
1、在测试套件Suite1中创建用例CASE2
- 通过关键字‘连接mysql数据库’ 传入mysql的相关信息
- 通过关键字‘查询sql’ 传入select语句,并将查询结果赋值给变量${queryResults}
- 通过关键字‘Disconnect From Database’ 退出数据库连接
2、执行测试用例
选中用例,点击start按钮执行测试用例
点击report查看详细的测试报告
可以看到返回的表userinfo中的三条数据。
3 创建更新数据库用例
1、在测试套件Suite1中创建用例CASE3
- 通过关键字‘连接mysql数据库’ 传入mysql的相关信息
- 通过关键字‘更新sql’ 传入delete语句,删除一条数据
- 通过关键字‘查询sql’ 传入select语句,并将查询结果赋值给变量${queryResults}
- 通过关键字‘Disconnect From Database’ 退出数据库连接
2、执行测试用例
选中用例,点击start按钮执行测试用例
点击report查看详细的测试报告
可以看到返回的表userinfo中只有2条数据,其中一条已经被删除。
4 在Text Edit区域查看代码
*** Settings *** Resource 资源文件/数据库操作.robot *** Test Cases *** CASE3 连接mysql数据库 127.0.0.1 3306 root 123456 mydb 更新sql delete from userinfo where username='张三' ${queryResults} 查询sql select * from userinfo log ${queryResults} Disconnect From Database CASE2 连接mysql数据库 127.0.0.1 3306 root 123456 mydb ${queryResults} 查询sql select * from userinfo log ${queryResults} Disconnect From Database |
总结
以上用例我们主要用到了DatabaseLibrary库的如下关键字:
关键字 | 介绍 |
Connect To Database | 用于连接mysql数据库,第一个参数传入用于操作mysql的库,比如pymysql,MySQLdb,psycopg2等,其他需要传入数据库、用户名、密码、ip地址和端口 |
query | 主要用于查询mysql,比如传入select语句,并返回查询的数据 |
Execute Sql String | 主要用于更新mysql,比如传入delete、update、insert语句 |
Disconnect From Database | 退出数据库连接 |
还有其他一些关键字介绍如下,大家自己线下多使用和练习
关键字 | 介绍 |
Connect To Database Using Custom Params | 用于连接mysql数据库,第一个参数传入用于操作mysql的库,比如pymysql,MySQLdb,psycopg2等,另一个参数传入字符串,比如上面的例子也可以传入database='mydb', user='root', password='123456', host='127.0.0.1', port=3306 |
Delete All Rows From Table | 删除传入表名的全部数据 |
Execute Sql Script | 执行sql脚本,比如某个路径下的脚本${EXECDIR}${/}resources${/}DDL-setup.sql |
Row Count | 返回查询语句得到的总行数 |
Row Count Is 0 | 查询语句得到的行数等于0时返回True,反之为False |
Row Count Is Equal To X | 查询语句得到的行数等于传入的值时返回True,反之为False |
Row Count Is Greater Than X | 查询语句得到的行数大于传入的值时返回True,反之为False |
Row Count Is Less Than X | 查询语句得到的行数小于传入的值时返回True,反之为False |
Check If Exists In Database | 查询语句中数据存在,返回True,反之为False |
Check If Not Exists In Database | 查询语句中数据不存在,返回True,反之为False |
共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”
-----指水滴不断地滴,可以滴穿石头;
-----比喻坚持不懈,集细微的力量也能成就难能的功劳