公司做项目用到了databaselibaray,刚开始使用时碰到了很多问题,网上也查阅了很多资料终于是可以用了,现在整理记录下来,有需要的同学可随意使用:

另,本文主要是databaselibaray的使用,RF环境搭建可以看我另一篇:robot framework环境搭建

1、databaselibaray环境准备:

  a)     安装cx_Oracle: http://sourceforge.net/projects/cx-oracle/files/

  b)     安装DBlibrary: https://github.com/franz-see/Robotframework-Database-Library

  c)     安装oracle(以下两个选一个即可):

i.          安装oracle客户端:http://www.oracle.com/

ii.          安装instant client: http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html

注意:cx_Oracle的版本要与oracle的版本一致

二、使用DBLibrary

    Connect To Database Using Custom Params    cx_Oracle    'scott','tiger','oral'
@{data} query select * from dept
log many @{data}
log ${data[0][1]}
${row} row count select * from dept
log ${row}
${count} Get length ${data}
log ${count}
Execute Sql String delete from dept d where d.id='1'
Disconnect From Database

说明:

1、 Connect To Database Using Custom Params:

  a)     第一个参数我使用的是cx_Oracle,就写这个

  b)     第二个参数由三部分组成:user,pwd,tns

2、关于tns多说两句:我安装的是oracle客户端,可以在oracle安装目录\network\admin\tnsnames.ora中配置你的TNS,我的如下:

  • oral=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.10)(PORT = 1526)) (connect_data = (sid =oral)))

因为我的tnsnames.ora文件配置了tns所以使用时可以直接使用它的sid即oral。如果没有配置的话,直接使用(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.10)(PORT = 1526)) (connect_data = (sid =oral)))代替上面例子中的oral也是可以的。

三、遇到的阻碍问题及解决办法:

在家里使用DBLibrary时没有任何问题,但是到公司用时出问题了,主要有以下两个问题,折腾了好久:

  1、 ImportError: DLL load failed:这个问题把oci.dll拷贝到python的Lib\site-packages目录下就可以解决。

  2、 InterfaceError: Unable to acquire Oracle environment handle:这个问题需要拷贝另外两个dll: oraocci11.dll和oraociei11.dll

参考:

http://www.51testing.com/html/15/246015-853524.html

http://blog.sina.com.cn/s/blog_654c6ec70100u9fr.html

robot framework-databaselibaray库使用(python)的更多相关文章

  1. Robot Framework: 自定义自己的python库

    利用Robot Framework编写测试用例,往往需要开发自己的关键字,有的关键字需要通过自己编写python代码来实现.这在rf中,就需要自己定义python库.这个过程其实不复杂,本文来介绍下. ...

  2. robotframework的学习笔记(十三)------Robot Framework常用库简介

    标准库 Robot Framework可以直接导入使用的库,包括: Builtin:包含经常需要的关键字.自动导入无需import,因此总是可用的 Dialogs:提供了暂停测试执行和从用户的输入方式 ...

  3. Robot Framework常用库简介

    标准库 Robot Framework可以直接导入使用的库,包括: • Builtin:包含经常需要的关键字.自动导入无需import,因此总是可用的 • Dialogs:提供了暂停测试执行和从用户的 ...

  4. Robot Framework 自定义库

    进入  python安装路径\Lib\site-packages 创建文件夹,库名 创建py文件,myclass.py 创建py文件,__init__.py 导入自定义库 遇到的问题: python版 ...

  5. robot framework添加库注意事项

    添加库 假设你的项目结构是这样: 项目 ..myLib(库目录) ..目录1 ..测试用例套件1 此时你需要在“测试用例套件1”中用相对路径添加库myLib,你应该填:../myLib/ 特别注意后面 ...

  6. robot framework自定义python库

    自定义python库的好处: robot framework填表式,将python的灵活性弄没了,但是不要担心,RF早就想到了解决办法,就是扩充自己的库. 1.在python应用程序包目录下创建一个新 ...

  7. Robot Framework+python的安装,配置,环境搭建(纯白篇)

    弄了大半天 终于把-Robot Framework-弄好了,总是一个发现问题,一个一个去解决的过程,只是时间嘛,咳咳咳咳 言归正传 第一. 记住了 Robot Framework 的库 只支持 pyt ...

  8. Robot Framework - 2 - 创建测试库

    04- 创建测试库--基础概念 Robot Framework 实际的测试能力是由测试库提供的. ***** 支持的编程语言 Robot Framework 自身是用 Python 编写的,能使用 P ...

  9. 用 Python 写 Robot Framework 测试

    Robot Framework 框架是基于 Python 语言开发的,所以,它本质上是 Python 的一个库. 1.你懂 Python 语言. 2.又想使用 Robot Framework 测试框架 ...

  10. Robot Framework(十四) 扩展RobotFramework框架——创建测试库

    4.1创建测试库 Robot Framework的实际测试功能由测试库提供.有许多现有的库,其中一些甚至与核心框架捆绑在一起,但仍然经常需要创建新的库.这个任务并不复杂,因为正如本章所示,Robot ...

随机推荐

  1. Delphi XE2 compiler performance

    原文: http://blog.barrkel.com/2011/10/delphi-xe2-compiler-performance.html Delphi XE2 compiler perform ...

  2. Idea2018激活破解

    原文:https://www.imsxm.com/2018/07/idea-2018-1-5-crack-patcher.html 最近更新了Intellij IDEA到2018.1.5之后,使用之前 ...

  3. WordPress基础:设置后台语言

    菜单-设置-站点语言

  4. 安卓开发(Java)中关于final关键字与线程安全性

    前言 学习新知识固然重要,但是时常往回看看,温故知新是很必要的.回顾一下线程安全性和final关键字. 正文 从Java 5开始,final keyword一个特殊用法是在并发库中一个非常重要且经常被 ...

  5. Nvidia驱动正确安装过程

    找到适合的正确的驱动 去nvidia驱动官网下载 卸载掉原有驱动 sudo apt-get remove –purge nvidia* 安装驱动 进入命令行界面 Ctrl-Alt+F1 给驱动run文 ...

  6. IIS回收后首次访问慢问题

    禁用时间间隔回收 设置为0 然后设置指定时间回收 0:00:00 然后设置脚本 @echo off @echo 正在关掉所有的IE进程(需要设置默认浏览器是IE) taskkill /im iexpl ...

  7. 用layer-list实现图片旋转叠加、错位叠加、阴影、按钮指示灯

    先来看看一个简单的文件: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:a ...

  8. 隐马尔可夫(HMM)、前/后向算法、Viterbi算法

    HMM的模型  图1 如上图所示,白色那一行描述由一个隐藏的马尔科夫链生成不可观测的状态随机序列,蓝紫色那一行是各个状态生成可观测的随机序列 话说,上面也是个贝叶斯网络,而贝叶斯网络中有这么一种,如下 ...

  9. Web用户的身份验证及WebApi权限验证流程的设计和实现 asp.net mvc AllowAnonymous 不起作用, asp.net mvc 匿名访问

    原文地址: https://blog.csdn.net/zjlovety/article/details/17095627 前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个 ...

  10. QT中文乱码与国际化支持

      QT国际化支持 Qt内部采用的全Unicode编码,这从根本上保证了多国语界面实现的正确性和便捷性.Qt本身提供的linguist工具,用来实现翻译过程十分方便.MFC中利用资源DLL切换资源,或 ...