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的更多相关文章
- (转)学习使用Jmeter做压力测试(三)--数据库测试
数据库测试 JMeter可以做为Web服务器与浏览器之间的代理网关,以捕获浏览器的请求和Web服务器的响应,这样就可很容易的生成性能测试脚本. 根据脚本,JMeter可通过线程组来模拟真实用户对Web ...
- 数据库测试DbUnit
DBUnit 的设计理念就是在测试之前,备份数据库,然后给对象数据库植入我们需要的准备数据,最后,在测试完毕后,读入备份数据库,回溯到测试前的状态: 摘自:DbUnit入门实战 DBUnit官网:ht ...
- Visual Studio 单元测试之五---数据库测试
原文:Visual Studio 单元测试之五---数据库测试 数据库的单元测试主要是测试数据库中的数据是否符合特定的条件,Visual Studio 2010支持下面几种数据的单元测试类型(Visu ...
- 利用jmeter进行数据库测试
1.首先,用jmeter进行数据库测试之前,要把oracle和mysql的JDBC驱动jar包放到jmeter安装路径的lib目录下,否则会提示错误 2.添加一个线程组,如下图 3.接下来添加一个JD ...
- loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试
调用java jar文件远程操作Oracle数据库测试 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 Loadrunner:11 备注:想学ora ...
- #测试框架推荐# test4j,数据库测试
# 背景 后端都是操作DB的,这块的自动化测试校验的话,是需要数据库操作的,当然可以直接封装方法来操作数据,那么有没有开源框架支持数据操作,让我们关注写sql语句?或者帮我们做mysql的断言呢? # ...
- 【转】学习使用Jmeter做压力测试(三)--数据库测试
JMeter可以做为Web服务器与浏览器之间的代理网关,以捕获浏览器的请求和Web服务器的响应,这样就可很容易的生成性能测试脚本.根据脚本,JMeter可通过线程组来模拟真实用户对Web服务器做压力测 ...
- Laravel数据库测试的另一种方案-SQLite
Laravel数据库测试 在测试方面,Laravel内置使用PHPUnit提供了非常方便的解决方案.而对于数据库增删改查的测试,要解决的一个很重要的问题就是如何在测试完成之后,恢复数据库的原貌,例如要 ...
- Oracle数据库测试和优化最佳实践: OTest介绍 (转)
当前Oracle数据库最佳测试工具OTest * Otest是用于Oracle数据库测试.优化.监控软件. * Otest是免费提供给Oracle客户和广大DBA工程师使用的软件.由原厂技术专家王 ...
随机推荐
- ubuntu关机重启命令
重启命令 : 1.reboot 2.shutdown -r now 立刻重启 3.shutdown -r 10 过10分钟自动重启 4.shutdown -r 20:35 ...
- 浏览器同源策略与ajax跨域方法汇总
原文 什么是同源策略 如果你进行过前端开发,肯定或多或少会听说过.接触过所谓的同源策略.那么什么是同源策略呢? 要了解同源策略,首先得理解“源”.在这个语境下,源(origin)其实就是指的URL.所 ...
- CF17E Palisection
题意 给定一个长度为n的小写字母串.问你有多少对相交的回文子串(包含也算相交) 相交的回文子串个数 \(mod\ 51123987\) Sol 求相交的回文子串不太好求 考虑用总数减去不相交的回文串个 ...
- Liunx一些命令
1.设置管理员的密码:sudo passwd root2.获取管理员权限su root3.查看IP地址sudo ifconfig -a4.创建一个文件sudo touch test.txt5.创建一个 ...
- System.out.println与System.err.println的区别
public class Test2 { static { System.out.println("1"); } { System.out.println("2" ...
- The memory graph Shared by the method
Phone类 package com.itheima_03; /* * 手机类 */ public class Phone { String brand; int price; String colo ...
- JavaScript中map函数和filter的简单举例
JavaScript的数组迭代器函数map和filter,可以遍历数组时产生新的数组,和python的map函数很类似 1> filter是满足条件的留下,是对原数组的过滤:2> map则 ...
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.gaiay.business.helper.dao.LiveRegenrationRecordMapper.insert
原因分析: 字段名称.报名.类名 对应不上 ,比如colomn和property属性 反了.. 按以下步骤一一执行: 1:检查xml文件所在的package名称是否和interface对应的packa ...
- Software Testing Techniques Homework 3
1. a.This is the chart b. initial numPrimes = 4, t1 would over the loop. c. t = ( n = 1) d. node cov ...
- python中的内容编码
一.python编码简介 1)编码格式简介 python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ASCII),ASCII(American Standard Code for In ...