使用jybot运行连接到Oracle数据库时,找不到错误cx_Oracle

时间:2017-01-31 09:20:40

标签: robotframework

我尝试使用jybot选项从Oracle数据库运行查询,因为我有一些java自定义代码,需要在我的测试脚本中以及来自oracle数据库的查询。

我收到错误cx_Oracle is not found

当使用pybot(删除java自定义代码)运行相同时,我没有得到任何错误。

如果我使用jybot单独运行java自定义代码,那么也没有错误。

我安装数据库的步骤如下:

安装Visual C ++编译器

  1. 下载并安装VCForPython27.msi(如果没有可执行文件,请查看重要网址部分以获取下载链接)

  2. 设置环境变量ORACLE_HOME,TNS_ADMIN(如果尚未设置)。

  3. 安装数据库库

    打开命令提示符并运行以下命令

      

    pip install robotframework-databaselibrary

    安装cx_Oracle

    打开命令提示符并运行以下命令

      

    pip install cx_Oracle

    连接到Oracle数据库代码:

    Connect To Database Using Custom Params    cx_Oracle    '${Username}/${Password}@${Host}:${Port}/${DatabaseName}'
    
    @{Numbers}    Query    SELECT NUMBER_V from MASTER_DB WHERE STATUS_V='F' and ROWNUM <= 10
    
    Log    ${Numbers[0]}
    

    任何一个,请帮助我如何使用jybot从oracle数据库运行查询。

    由于 Sarada

1 个答案:

答案 0 :(得分:1)

cx_Oracle无法在jybot

下成功使用

这是我的解决方案:

  1. 安装DatabaseLibrary模块
    pip install robotframework-databaselibrary
    
  2. 安装JayDeBeApi模块
    pip install JayDeBeApi
    
    • 现在您可以将这些库放在任何您喜欢的地方 - 只需从Python \ Lib \ site-packages中复制它们
  3. 这就是诀窍! DatabaseLibrary用法包含以下jaydebeapi连接示例:

    Connect To Database Using Custom Params | JayDeBeApi | 'oracle.jdbc.driver.OracleDriver', 'my_db_test', 'system', 's3cr3t'
    
  4. 然而,这是错误!您必须在username-pass对上使用括号!像这样:

    Connect To Database Using Custom Params | JayDeBeApi | 'oracle.jdbc.driver.OracleDriver', 'my_db_test', ['system', 's3cr3t']
    

    请不要忘记使用URL连接而不是my_db_test!它应该是这样的:

    jdbc:oracle:thin:@//127.0.0.1:1521/my_db_test
    

    此致