Robot Framework下DataBaseLibrary的使用(3)

发表于:2012-03-27来源:新浪博客作者:lxg0618点击数: 标签:Robot Framew
这样我们就完成了第一个选择table1的操作。 需要说明的是Connect To Database Using Costom Params的参数:由于我使用了cx_Oracle这个库,所以第一个参数指定它;第二

  这样我们就完成了第一个选择table1的操作。

  需要说明的是Connect To Database Using Costom Params的参数:由于我使用了cx_Oracle这个库,所以第一个参数指定它;第二个参数是连接串用户名,密码,和要连接的Oracle数据库的本地服务命名(与你oracle目录\network\admin\tnsnames.ora文件中的描述相对应)。cx_Oracle依赖Oracle的客户端环境,这点需要注意。

  运行,得到Pass:)

  中文显示问题

  运行后查看Log,傻眼了。表中的中文全部变成了一串乱码。翻阅资料,原来是cx_Oracle的默认编码不是Utf-8。需要人工转换一下。而DataBaseLibrary又没有提供转换函数,为了解决这个问题,我们得对DataBaseLibrary进行扩展了。打开安装目录下的query.py文件,在后面加一个函数

  def decode(self,customstr):

  return customstr.decode('utf-8')

  对所有需要变成中文的地方执行Decode关键字,就能得到中文了:


${a}
decode ${rs[0][2]}

  这样还是有些麻烦,其实我们可以重写query关键字,让它把所有的值都做一下decode。

  扩展问题

  DatabaseLibrary提供的关键字挺少,有时候不够用(例如不能insert),这时候我们就需要对它进行扩展了。扩展原理同上,可以按需扩展:)

原文转自:http://www.ltesting.net