本章节仅总结一下使用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的更多相关文章

  1. (转)学习使用Jmeter做压力测试(三)--数据库测试

    数据库测试 JMeter可以做为Web服务器与浏览器之间的代理网关,以捕获浏览器的请求和Web服务器的响应,这样就可很容易的生成性能测试脚本. 根据脚本,JMeter可通过线程组来模拟真实用户对Web ...

  2. 数据库测试DbUnit

    DBUnit 的设计理念就是在测试之前,备份数据库,然后给对象数据库植入我们需要的准备数据,最后,在测试完毕后,读入备份数据库,回溯到测试前的状态: 摘自:DbUnit入门实战 DBUnit官网:ht ...

  3. Visual Studio 单元测试之五---数据库测试

    原文:Visual Studio 单元测试之五---数据库测试 数据库的单元测试主要是测试数据库中的数据是否符合特定的条件,Visual Studio 2010支持下面几种数据的单元测试类型(Visu ...

  4. 利用jmeter进行数据库测试

    1.首先,用jmeter进行数据库测试之前,要把oracle和mysql的JDBC驱动jar包放到jmeter安装路径的lib目录下,否则会提示错误 2.添加一个线程组,如下图 3.接下来添加一个JD ...

  5. loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试

    调用java jar文件远程操作Oracle数据库测试 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 Loadrunner:11 备注:想学ora ...

  6. #测试框架推荐# test4j,数据库测试

    # 背景 后端都是操作DB的,这块的自动化测试校验的话,是需要数据库操作的,当然可以直接封装方法来操作数据,那么有没有开源框架支持数据操作,让我们关注写sql语句?或者帮我们做mysql的断言呢? # ...

  7. 【转】学习使用Jmeter做压力测试(三)--数据库测试

    JMeter可以做为Web服务器与浏览器之间的代理网关,以捕获浏览器的请求和Web服务器的响应,这样就可很容易的生成性能测试脚本.根据脚本,JMeter可通过线程组来模拟真实用户对Web服务器做压力测 ...

  8. Laravel数据库测试的另一种方案-SQLite

    Laravel数据库测试 在测试方面,Laravel内置使用PHPUnit提供了非常方便的解决方案.而对于数据库增删改查的测试,要解决的一个很重要的问题就是如何在测试完成之后,恢复数据库的原貌,例如要 ...

  9. Oracle数据库测试和优化最佳实践: OTest介绍 (转)

    当前Oracle数据库最佳测试工具OTest *  Otest是用于Oracle数据库测试.优化.监控软件. *  Otest是免费提供给Oracle客户和广大DBA工程师使用的软件.由原厂技术专家王 ...

随机推荐

  1. 您必须先调用“WebSecurity.InitializeDatabaseConnection”方法,然后再调用"WebSecurity"类的任何其他方法。

    今天调试程序的时候出现了这个是,可惜没截图! 您必须先调用“WebSecurity.InitializeDatabaseConnection”方法,然后再调用"WebSecurity&quo ...

  2. Spring入门(一)— IOC、DI

    一.Spring介绍 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成 ...

  3. [POI2013]LUK-Triumphal arch

    题目链接 此题的答案k具有可二分性 那么我们可以二分答案k,然后跑一个树形DP 令\(dp[i]\)表示到节点\(i\)时需要再多染色的点数 那么有\(dp[i]=\max(\sum_{fa[j]=i ...

  4. UOJ42. 【清华集训2014】Sum

    传送门 Sol \((-1)^a=1-2(a~mod~2)=1-2a+4\lfloor\frac{a}{2}\rfloor\) 那么原式变成 \(n-2\sum_{i=1}^{n}\lfloor d\ ...

  5. 1739 GPA排序 个人博客:doubleq.win

    个人博客:doubleq.win 1739 GPA排序  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze 题解       题目描述 Description ...

  6. px、em、pt之间的区别与互相转换

    关于px.pt和em的区别,自己有时候也会纠结到底该用什么单位,今天特意查了一些文章,下面这篇虽然很久远了,但解释的比较全面,转载收藏之.点击查看原文(原网址已失效,这是其他站点) 这里引用的是Jor ...

  7. How to fix Mysql table crashes

    Whenever you enconter this: Please use mysql_upgrade to fix this error. or using  mysql_upgrade -u r ...

  8. QTableview 获取鼠标坐标的item(QModelIndex)

    要实现的功能是QTableview中Item项上右键弹出菜单这就必然要判断点击右键时鼠标指针是否在QTableView的Item上 如果是QTableWidget可以用itemAt来判断QTableV ...

  9. CSS技巧教程:margin在IE中的表现

    margin的位移方向是指margin数值为正值时候的情形,如果是负值则位移方向相反. 如上图所示:黄色子元素盒的margin-top,margin-left为负值时,如-10px,则黄色子元素盒向上 ...

  10. C# winform 打印事例

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...