Robot Framework 提供了多种Library。其中Database Library可用来连接操作数据库。

1.安装Database Library

打开Robot Framework官网,找到Database Library,官网提供了Java 和Python两个版本的Database Library,这里我使用的是Python版,地址为

http://franz-see.github.io/Robotframework-Database-Library/

其中的软件Requirement一节是Database Library的运行环境需求,具体需求包括

Python/Jython/IronPython

Robotframework

A Database API Specification 2.0 Python Module that you will use to connect to the database.

其中的Python与Robot Framework我们已经安装过,现在需要安装一个Database API Specification 2.0 Python Module,也就是用于连接数据库的Python模块。

这里的逻辑是这个样子的,Database Library实际上是一个处在Robot Framework和Database Interfaces 中间的代理模块,Robot Framework 通过Database Library 所提供的接口,间接的调用Database Interfaces,从而实现操作数据库的目的。

打开Database Interfaces页面,找到Oracle的API驱动及下载地址,找到你对目前python环境对应版本的安装文件,下载安装

http://sourceforge.net/projects/cx-oracle/files/

之后,下载安装DatabaseLibrary。

安装完成后,在你的 \Python27\Lib\site-packages目录下,可以看到Database Library文件夹和cx_Oracle.pyd文件

2.编写测试脚本

运行RIDE,按F5查看Database Library的关键字。

我们编写一个数据库查询的测试用例,脚本如下:

Connect To Database Using Custom Params    cx_Oracle    'bpm','bpm','orcl'
@{data}    query    select * from sys_user
log many    @{data}
log    ${data[0][1]}
${count}    Get length    ${data}
log    ${count}
Disconnect From Database

运行脚本,结果如下

运行后查看Log,表中的中文全部变成了乱码。cx_Oracle的默认编码不是Utf-8,需要人工转换一下。DataBaseLibrary自身没有提供转换函数,为了解决这个问题,我们需要对DataBaseLibrary进行扩展。

3.解决Database Library中文乱码问题

打开安装目录下的 query.py文件,添加一个decode函数,用于对字符串进行解码

def decode(self,customstr,mode):
       return customstr.decode(mode)

更改测试脚本,增加转码过程

再次运行,得到系统输出,测试通过

总结:

至此,完成了Robot Framework连接数据库并进行操作的过程。具体在使用过程中,还需要针对业务逻辑设计TestCase、编写sql来实现。

下一篇文章,我们将会对Robot Framework在编写测试脚本时,如何使用IF条件表达式做过程控制做说明。

Robot Framework 教程 (5) - 连接Oracel数据库的更多相关文章

  1. Robot FrameWork 教程链接

    1.  Robot Framework 教程: http://cgmblog.sinaapp.com/html/category/robot-framework 2.  Robot Framework ...

  2. Robot Framework 教程 (3) - Resource及关键字 的使用

    From:http://www.cnblogs.com/buaawp/p/4754399.html Robot Framework 教程 (3) - Resource及关键字 的使用 在进行软件自动化 ...

  3. Robot Framework 教程 (7) - 使用For循环

    在自动化测试过程中,使用For循环来对某个动作进行重复操作是很普遍的行为.在Robot Framework中,各种测试库中均提供了多种方式的For循环结构,在其中覆盖了大部分类型的循环类型.而Robo ...

  4. Robot Framework 教程 (6) - 使用条件表达式

    本篇文章,主要对如何在Robot Framework中使用条件表达式做过程控制作说明. 按照Robot Framework的官方文档介绍,Robot Framework并不建议在TestCase或Ke ...

  5. Robot Framework 教程 (2) - 页面元素定位

    上一篇文章中,简单模拟了一个baidu搜索并截图的过程,在搜索过程中,我们需要对搜索框.搜索按钮进行定位.本篇文章主要介绍一下具体的定位方法. 我们的脚本如下: *** Settings *** Li ...

  6. Robot Framework 教程 (1) - 环境配置及简单网站兼容性测试

    0.Robot Framework 简介 Robot Framework 是一个通用的自动化测试框架,主要用于“验收测试”和“验收测试驱动开发(ATDD)” (会其它文章中会详细介绍ATDD).它使用 ...

  7. Arcgis10.1 Arcobject连接Oracel数据库

    原来使用Arcgis9.3的版本,现在升级到了10.1遇到不少问题,原来初始化工作空间的代码无法正常运行了,修改后的代码如下: static void Test() { IPropertySet sd ...

  8. robot framework教程-------虫师

    http://www.testclass.net/2017/09/28/happy-holidays/

  9. Robot Framework 教程 (4) - 自定义Library

    RobotFrame Work为我们提供了包括OS.Android.XML.FTP.HTTP.DataBase.Appium.AutoIt.Selenium.Watir等大量的库.在使用过程中,除这些 ...

随机推荐

  1. 基于Keras的imdb数据集电影评论情感二分类

    IMDB数据集下载速度慢,可以在我的repo库中找到下载,下载后放到~/.keras/datasets/目录下,即可正常运行.)中找到下载,下载后放到~/.keras/datasets/目录下,即可正 ...

  2. 19-[模块]-xml

    1.xml协议 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融 ...

  3. 14 [网络编程]-socket

    1.互联网协议 博客:http://www.cnblogs.com/linhaifeng/articles/6129246.html 2.socket层 Socket是应用层与TCP/IP协议族通信的 ...

  4. 2-[HTML]--介绍

    1.HTML简介 HTML,全称是超文本标记语言(HyperText Markup Language),它是一种用于创建网页的标记语言.标记语言是一种将文本(Text)以及文本相关的其他信息结合起来, ...

  5. 12 stark组件之pop,按钮,url,页面

    1.Window open() 方法 http://www.runoob.com/jsref/met-win-open.html 效果图   2.admin的pop添加按钮 3.stark之pop功能 ...

  6. 1444: [Jsoi2009]有趣的游戏

    1444: [Jsoi2009]有趣的游戏 链接 分析: 如果一个点回到0号点,那么会使0号点的概率增加,而0号点的概率本来是1,不能增加,所以这题用期望做. 设$x_i$表示经过i的期望次数,然后初 ...

  7. SSIS 容器

    容器(Container)是控制流的特殊的任务(Task),它为一个或多个Task提供逻辑组合,可以实现工作流的重复执行和顺序执行,还可以把变量和事件处理程序的作用域缩小到容器中.不能在容器内的Tas ...

  8. TCP/IP 协议簇 端口 三次握手 四次挥手 11种状态集

    第1章 概念介绍 1.1 VLAN 1.1.1 什么是VLAN VLAN(Virtual LAN),翻译成中文是“虚拟局域网”.LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成 ...

  9. Linux shell 编写(1)

    shell脚本的编写步骤 1.创建以.sh为扩展名的文件           touch 2.编辑脚本文件                              vim 3.增加脚本文件执行权限 ...

  10. [C++]值传递和引用传递

    概念 在定义函数时函数括号中的变量名成为形式参数,简称形参或虚拟参数: 在主调函数中调用一个函数时,该函数括号中的参数名称为实际参数,简称实参,实参可以是常量.变量或表达式. 注意: C语言中实参和形 ...