RobotFramework连接数据库java实现,也有python实现的,现在研究的python实现的,java还没尝试。有兴趣的参考后面的转载文章
  
   步骤(也转载了别人的文章,因为写的比较全,就不另外加工了):

任何一个Robot Framework的Library基本上都是一个双层结构:外层的皮,实现标准接口供Robot  Framework调用;里面的瓤,实现具体的功能,提供API供外层的皮进行封装。

  DataBaseLibrary也不例外,你从它的主页Download标签处下载的只是一个皮。

  为了使它能够真正工作,你还得下载一个瓤---------一个符合Python数据库接口规范的库文件。

  两部分缺一不可。

  安装介绍

  前提是你已经安装好了Robot Framework环境。

  1.先下载安装瓤,我们从这个主页能够找到所有支持Python数据库规范的实现:

  http://wiki.python.org/moin/DatabaseInterfaces

  由于要连接Oracle,我这里要进入Oracle的支持页面

  http://wiki.python.org/moin/Oracle

  选择第二个cx_oracle的主页,进入下载列表

  选择合适的版本下载并安装。我选择的是Windowsx86 Installer (Oracle 11g, Python 2.7)

(此处说明,我下载的是cx_Oracle-5.1.2-11g.win32-py2.7.msi,下载后直接双击安装就可以了)(注意:cx_oracle要和oracle client版本以及PYTHON版本一致)

  安装好了以后你的python\Lib\site-packages下多了一个cx_Oracle.pyd文件,这个目录下同时也多了个文件夹

  ccx_Oracle-5.1.2-py2.7.egg-info,cx_oralce的使用文档就在里边。

(说明,看看我安装后的效果

  2.再下载安装皮,我们从这个地方下载DatabaseLibrary的皮,这是个压缩文件。

  http://github.com/franz-see/Robotframework-Database-Library/tarball/master

  下载解压后,在命令行进入解压目录,执行setup.py install

  安装好了以后DatabaseLibrary这个目录也被安装到了site-package目录下。

(说明,安装后的效果图:见上面的图,里面有个DatabaseLibrary文件夹)

安装就算完成了。

OK:到这里还没完,后面就是我苦逼了2天,百度、google了几百遍,终于瞎猫碰到死老鼠解决问题的方法:
感谢这个博客:http://blog.csdn.net/zhangweiwindow/article/details/6575224
为了防止后续这个链接无法访问,我还是把博客内容转载过来吧
   “今天重装了一下系统,所以以前工作时配置的python程序也需要重新配置一下。但是在装完cx_Oracle运行程序时出现了“ Unable to acquire Oracle environment handle”错误,百思不得其解,以前是可以配置成功的啊,但这次是怎么了。

以下是环境变量的配置:

PATH=G:\app\rd\product\11.2.0\client_1;

NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

TNS_ADMIN=G:\app\*\product\11.2.0\client_1\network\admin;(注意此处的位置是tnsnames.ora的位置,悲催,就是这个位置写错了,导致我后面写脚本链接的字符串怎么看都没问题,就是跑不起来~)

以上配置按道理来说是没有问题的,可问题出在哪呢?查来查去,终于找到了问题所在:

在出现这个问题之前,还出现了一个问题:“Dll load failed”,因为当前配置环境变量没能解决此总是,所以干脆就把oci.dll文件拷到site-package目录中了,因为没有拷贝 oraociei10.dll和oraocci10.dll,所以出现了“ Unable to acquire Oracle environment handle”错误。

以后此问题的解决办法:

第一种:配置好环境变量,不把oracle相关的dll文件放到site-package中

第二种:拷贝oci.dll, oraociei10.dll, oraocci10.dll到site-package中”

说明:如果拷贝这3个dll还是不行,尝试把instantclient里面的所有dll都拷贝到site-package里面再试试,如果还是不行,就要再看网络上提供的一些其他办法了。

中间还尝试过用JayDeBeApi 0.1.3,安装参考如下链接

https://pypi.python.org/pypi/JayDeBeApi/

使用:

*** Settings ***
Library DatabaseLibrary

*** Test Cases ***
testdbpybot
#pybot
Connect To Database Using Custom Params  cx_Oracle    'username','password','test35'     #连接字符串可以是sid或者service name或则host/db name,*.*.10.22:1521/pss3
@{rs}                                                           query          select * from *_*_content
Log many @{rs}
Disconnect from Database
此处连接串对应的tnsnames.ora是:

TEST35 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = *.*.10.22)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = pss3)
)
)

RobotFramwork中实现oracle数据库的连接(终于解决cx_oracle问题)的更多相关文章

  1. C#中oracle数据库的连接方法

    C#中oracle数据库的连接方法 一.关于数据库的操作 1.数据库连接      有2种:      第一种:古老的方法(较为死板,不利于灵活操作),即用OracleConnection的类来连接 ...

  2. [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了

    [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 本文首发自:博客园 文章地址: https://www.cnblogs.com/yilezhu/p/ ...

  3. .Net 中读写Oracle数据库常用两种方式

    .net中连接Oracle 的两种方式:OracleClient,OleDb转载 2015年04月24日 00:00:24 10820.Net 中读写Oracle数据库常用两种方式:OracleCli ...

  4. ADO访问Oracle数据库,连接异常(Unknown error 0x800a0e7a)

    ADO访问Oracle数据库,连接异常(Unknown error 0x800a0e7a) 代码如下:执行Open过程中出现异常,信息为Unknown error 0x800a0e7a  C++ Co ...

  5. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  6. 在mysql数据库中创建Oracle数据库中的scott用户表

    在mysql数据库中创建Oracle数据库中的scott用户表 作者:Eric 微信:loveoracle11g create table DEPT ( DEPTNO int(2) not null, ...

  7. [整理记录备忘]oracle数据库相关问题与解决

    检查死锁方式 用dba用户执行以下语句,可以查看到被死锁的语句. select sql_text from v$sql where hash_value in (select sql_hash_val ...

  8. windows下oracle数据库报错ORA-12705解决方法

    转自:http://blog.sina.com.cn/s/blog_16eaf6b940102x66q.html 有个朋友,他们那边windows虚拟机重启后,数据库不能起来报错ORA-12705无法 ...

  9. 【Java EE 学习 29 下】【JDBC编程中操作Oracle数据库】【调用存储过程的方法】

    疑问:怎样判断存储过程执行之后返回值是否为空. 一.连接oracle数据库 1.需要的jar包:在安装的oracle中就有,所以不需要到官网下载,我的oracle11g下:D:\app\kdyzm\p ...

随机推荐

  1. ADV-297 快速排序 java

    问题描述 用递归来实现快速排序(quick sort)算法.快速排序算法的基本思路是:假设要对一个数组a进行排序,且a[0] = x.首先对数组中的元素进行调整,使x放在正确的位置上.同时,所有比x小 ...

  2. Day2-L-棋盘问题-POJ1321

    在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. ...

  3. Waiting for table metadata lock 错误

    在 alter table 时,必然出现了 lock 错误,检查 processlist ,全都是 sleep 状态,然后检查 information_schema.innodb_trx 发现一个活跃 ...

  4. 使用JavaScript和Canvas打造真实的雨滴效果

    使用JavaScript和Canvas打造真实的雨滴效果 寸志 · 1 年前 我最近搞了一个有趣的项目——rainyday.js .我认为这个项目并不怎么样,而且,事实上这是我第一次尝试接触一些比弹窗 ...

  5. ubuntu 怎么更新?ubuntu更新命令及方法

    ubuntu 怎么更新?ubuntu更新命令及方法 安装Ubuntu系统后,第一件事就是更新系统源.由于系统安装的默认源地址在英国,作为Ubuntu的主源,国内连接速度非常慢,所以我们要将它换成就近的 ...

  6. hdu 3549 Flow Problem 最大流问题 (模板题)

    Flow Problem Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tota ...

  7. java表单基础

    一.表单  基本语法:   <form method="表单提交方式(post/get)" action="表单提交地址">       </ ...

  8. python2.x 脚本 中文乱码 解决方法

    在python脚本起始位置添加如下代码 # -*- coding: UTF-8 -*

  9. 深入了解memcached

    一.memcached如何支持高并发 Memcached使用多路复用 I/O模型(如epoll.select等).传统阻塞 I/O中,系统可能会因为某个用户连接还没做好 I/O准备而一直等待,直到这个 ...

  10. ffmpeg 学习:002-代码架构

    前言 使用 ffmpeg 库时,最好先理解好ffmpeg的代码结构图. 下面这张图表明了FFmpeg在解码一个视频的时候的函数调用流程,为了保证结构清晰,其中仅列出了最关键的函数,剔除了其它不是特别重 ...