robotframwork数据库测试——pymysql与pyodbc

Posted testhua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了robotframwork数据库测试——pymysql与pyodbc相关的知识,希望对你有一定的参考价值。

本章节仅总结一下使用pymysql与pyodbc链接MySQL数据库。

2个都可以链接mysql数据,进行增删改查。但是呢,使用pyodbc操作数据库,对中文支持度好一些。pymysql则需要处理一下编码。所以2个都说一下,自己选择哈。

 


 

1. 安装DatabaseLibrary,pyodbc,pymysql。

pip install robotframework-databaselibrary

pip install PyMySQL

pip install pyodbc

首推是命令安装,除了命令安装,也可以下载安装包进行安装。cd到安装包目录,python setup.py install即可。


 

2. 安装、配置MySQL Connector。

 1)要用pyodbc连接mysql,还需要一个工具,就是MySQL Connector,地址:http://www.mysql.com/downloads/connector/odbc/

    注:一定要下载匹配你的python及pyodbc的版本

   查看python版本:

   cmd命令:输入python即可查看,如果是32位的,一定要安装32位的mysql connector。

   否者,robotframework执行pyodbc链接数据库时,回报错

   错误为:(\'IM002\', \'[IM002] [Microsoft][ODBC \\xc7\\xfd\\xb6\\xaf\\xb3\\xcc\\xd0\\xf2\\xb9\\xdc\\xc0\\xed\\xc6\\xf7] \\xce\\xb4\\xb7\\xa2\\xcf\\xd6\\xca\\xfd\\xbe\\xdd\\xd4\\xb4\\xc3\\xfb\\xb3\\xc6\\xb2\\xa2\\xc7\\xd2\\xce\\xb4\\xd6\\xb8\\xb6\\xa8\\xc4\\xac\\xc8\\xcf\\xc7\\xfd\\xb6\\xaf\\xb3\\xcc\\xd0\\xf2 (0) (SQLDriverConnect)\')

    

 2)安装完成后,要配置mysql数据源。

     操作:打开控制面板-管理工具-ODBC数据源,点击【添加】

     

 

    选择后进行配置,不知道的,可以百度,百度上有具体的ODBC配置说明。

    注:如果安装的是32位的mysql connecter。

        打开控制面板-管理工具-ODBC数据源,点击【添加】,会看不到安装的mysql odbc驱动。

       不是没安装好,而是要换个地方配置数据源:运行 C:\\Windows\\SysWOW64\\odbcad32.exe 即可在数据源中找到驱动,进行配置了。

   (WOW64什么意思?WOW64(Windows-On-Windows-64bit),在Windows64上面的一个子系统,Windows64位要兼容32位,因此要有一个32位的子系统。

 


3. 连接数据,进行查询

1)pymysql

运行结果:

接口.test1
20161108 14:58:54.888 : INFO : @{receiverState} = [ (\'??\',) | (\'??\',) | (\'???\',) | (\'???\',) | (\'????????\',) | (\'??\',) | (\'??\',) | (\'???\',) | (\'???\',) | (\'????????\',) | (\'??\',) | (\'??\',) | (\'???\',) | (\'???\',) | (\'????????\',) ]
20161108 14:58:54.890 : INFO : (\'??\',)
20161108 14:58:54.890 : INFO : (\'??\',)
20161108 14:58:54.890 : INFO : (\'???\',)
20161108 14:58:54.890 : INFO : (\'???\',)

20161108 14:58:54.893 :  INFO : ??

 看结果就发现有一堆???这些都是中文的转码问题,可以写个转码方法也可以去设置。

2)pyodbc

 

运行结果:

接口.test2
20161108 14:58:54.902 : INFO : @{receiverState} = [ (u\'\\u4e0a\\u6d77\', ) | (u\'\\u5317\\u4eac\', ) | (u\'\\u5c71\\u897f\\u7701\', ) | (u\'\\u5409\\u6797\\u7701\', ) | (u\'\\u65b0\\u7586\\u7ef4\\u543e\\u5c14\\u81ea\\u6cbb\\u533a\', ) | (u\'\\u4e0a\\u6d77\', ) | (u\'\\u5317\\u4eac\', ...
20161108 14:58:54.902 : INFO : (u\'\\u4e0a\\u6d77\', )
20161108 14:58:54.902 : INFO : (u\'\\u5317\\u4eac\', )
20161108 14:58:54.902 : INFO : (u\'\\u5c71\\u897f\\u7701\', )
20161108 14:58:54.902 : INFO : (u\'\\u5409\\u6797\\u7701\', )
20161108 14:58:54.918 :  INFO : 上海

通过该例子是不是很清楚的发现,pyodbc对中文支持对好一些呢。

当然,强大的小伙伴们可以自己写方法,那会更强大了哈。

 

以上是关于robotframwork数据库测试——pymysql与pyodbc的主要内容,如果未能解决你的问题,请参考以下文章

RobotFramework + Python 自动化入门 五 (Suite Setup/Teardown+Resource文件+Locator和数据封装)

RobotFramwork + Appium+ Andriod 环境搭建

安装robotframwork 报错Requirement already satisfied

RobotFramework + Python 自动化入门 三 (Web自动化)

python模块

python自动化测试六