如何在没有安装任何客户端的情况下从Robot Framework连接Oracle数据库

时间:2017-02-01 09:20:51

标签: oracle robotframework jython-2.7

大多数解决方案需要安装一些客户端或使用cx_Oracle模块也不适用 - 因为我必须使用机器人框架的Jython版本

3 个答案:

答案 0 :(得分:1)

我研究过很多帖子只是为了得到一个非常简单的解决方案:

  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
    

    希望它会帮助某人!祝你好运!

答案 1 :(得分:0)

  1. 如果您使用机器人框架和Java,那么机器人官方网站上就有单独的库:http://robotframework.org/#libraries 名称数据库库(Java)

  2. 下载此库并将其放入lib文件夹

  3. 下载oracle所需的驱动程序并将其放入lib文件夹

  4. 在文件中定义以下变量

    ${ORACLE DATABASE URL}           jdbc:oracle:thin:@${DATABASE_IP}:1521:${ORACLE_SYSTEM_ID}
    ${ORACLE DATABASE USER}         ${DATABASE_NAME}
    ${ORACLE DATABASE PASSWORD}     PASSWORD
    ${ORACLE DATABASE DRIVER}       oracle.jdbc.driver.OracleDriver
    

    使用以下关键字连接数据库

    Connect To Database      ${ORACLE DATABASE DRIVER}      ${ORACLE DATABASE URL}  ${ORACLE DATABASE USER}   ${ORACLE DATABASE PASSWORD}
    

答案 2 :(得分:0)

我安装了Library DatabaseLibrary和jaydebeapi,但在代码中它不识别JaydeBeApi并且没有用。

这就是我解决问题的方法。

我必须在http://aka.ms/vcpython27之后安装Microsoft Visual C ++ 9.0,之后我按照这个步骤进行操作

  1. 打开命令窗口(开始 - > cmd)
  2. git clone https://github.com/oracle/python-cx_oracle.git cx_Oracle
  3. cd cx_Oracle
  4. git submodule init
  5. git submodule update
  6. pip install cx_Oracle
  7. pip install robotframework-databaselibrary
  8. pip install JayDeBeApi(可能它适用于某个人)
  9.  *** Settings ***
    Documentation  Basic database related keywords
    Library  DatabaseLibrary
    
    *** Variables ***
    ${DB_CONNECT_STRING} =  'user/mypasswd@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myipaddress)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=mysid)))'
    
    *** Test Cases ***
    Connecting
      connect
    
      @{queryResults}  Query  select * from table t where id_table =1001
    
      log to console  @{queryResults}
    
    *** Keywords ***
    Connect
        connect to database using custom params  cx_Oracle  ${DB_CONNECT_STRING}
    
    Disconnect
        disconnect from database