一、安装MySQL库
方法1、 DatabaseLibrary(python) 库包下载地址:
http://franz-see.github.io/Robotframework-Database-Library/
方法2:免下载直接安装使用命令
- Using easy_install: easy_install robotframework-databaselibrary
- Using pip: pip install robotframework-databaselibrary
二、安装pymysql
tips:pymysql是一个纯Python的连接mysql的一个工具,用起来比较方便。
方法1:下载并安装 https://pypi.python.org/pypi/PyMySQL
方法2:pip安装,命令如下:(可用pip list查看)
pip install PyMySQL
三、测试案例
Connect To Database Using Custom Params来连数据库,但是后面跟的不是sqlite了,这里用的就是我们前面安装的pymysql,连接串是:
database='newdb', user='username', password='password', host='192.168.1.1', port=3306
注意port后面的值不要加单引号。
1.当你执行之后可能会发现中文变成了???
2.你需要在连接串后面添加charset='utf8'
3.然而打印出来是一串串的\u565
4.数据库默认编码不是Utf-8,需要人工转换一下。DataBaseLibrary自身没有提供转换函数,为了解决这个问题,我们需要对DataBaseLibrary进行扩展。
路径就直接在site-packages/DatabaseLibrary下面;
6.打开query.py,在文件末尾加入如下decode解码方法
def decode(self,customstr,mode):
return customstr.decode(mode)
终于看到中文了,贴源码。
-------------------------------------------------------------------------------------------------
四、常用的关键字
1. Query
一般的查询都使用query(注意查询语句后面不要带分号),这是有结果返回的。
这个是一个list里面放了很多个元组(tuple),简单的来说你可以理解为二维数组。
在数据库的结果来说,是一个N行N列的结果集,哪怕只有1个数据,那也是一行一列的一个结果集,所以我们要取值的话,有2种方式:
1) ${a[0][1]}
这个写法就是用来取数据库查询返回结果的了。第一个[ ]里的数字代表行,第二个[ ]代表第几列。这里说的第几行第几列都是从0开始的。
2) @{a[0]}[1]
这里很多人写错,以为写成这样 @{a}[0][1] 就可以了(注意大括号的位置)。在一维数组里来说,确实写外面就可以了(${a[0]}等同于@{a}[0]),但是在二维的里面这样写是有问题的。
2. Row Count
Row Count是直接返回查询结果的数量,以前Row Count出现返回-1的情况的时候也可以用query解决,就是自己写个带count的查询(例如:select count(1) from order_item),然后把结果取出来。
3. Execute Sql String
有结果返回的要用Query,没有结果返回的要用Execute Sql String。基本上insert、delete、update还有存储过程的执行,都是用这个。还有一个Execute Sql Script的关键字,是用来执行sql文件的。
如果是单条语句,结尾不要加分号";",如果是多条语句,语句之间要用分号分隔(分隔的意思是语句中间加,最后结尾不要加)。