【问题标题】:Robot Framework : Error while connecting Oracle Database through DatabaseLibrary机器人框架:通过 DatabaseLibrary 连接 Oracle 数据库时出错
【发布时间】:2017-04-06 03:24:27
【问题描述】:

我尝试通过机器人框架连接到 Oracle 数据库,但出现错误。

在数据库库文档中给出如下语法:

# explicitly specifies all db property values                       
Connect To Database     psycopg2    my_db   postgres    s3cr3t  tiger.foobar.com    5432

Link to DatabaseLibrary

我在下面的代码中使用了相同的:

*** Settings ***
Documentation  Trouble Ticket Test Cases
Library     Selenium2Library
Library     DatabaseLibrary

*** Test Cases ***
Connect To Database

*** Keywords ***
Connect To Database
    Connect To Database cx_Oracle    MTNIODC48    ABL_DBOBJECTS    abill_2808_prod    172.20.22.48    1521  

我跑了,得到以下错误: 关键字“DatabaseLibrary.Connect To Database”需要 4 个参数,得到 6 个。

谁能帮忙解决这个问题。

谢谢 萨拉达

【问题讨论】:

    标签: robotframework


    【解决方案1】:

    你可以尝试使用 -

    Connect to Database using Custom Params  cx_Oracle  '${ABL_DBOBJECTS}/${abill_2808_prod}@172.20.22.48:1521/${MTNIODC48}'
    

    另外,你可以像这样添加依赖项

    *** Settings ***
    Library           ..${/}..${/}lib${/}databaselibrary-0.6${/}DatabaseLibrary${/}
    

    & 下载数据库库Here

    【讨论】:

    • 嗨 Hemant,我收到以下错误“找不到名为“使用自定义参数连接到数据库”的关键字。”
    • 请在此处查看文档。franz-see.github.io/Robotframework-Database-Library/api/0.5/… 还要确保您使用的是正确的缩进。
    • @SaradaAkurathi 那是因为您复制了关键字的名称。它在每个单词中都使用大写,例如Connect To Database Using Custom Params查看相应的文档:franz-see.github.io/Robotframework-Database-Library/api/0.5/…
    • 感谢 Hemanth 和 Richard,它成功了。我还需要一个小帮助,将这个 DatabaseLibrary 作为 Eclipse Maven 项目中的依赖项,你能告诉我如何给予,否则如何让它在 maven 下工作。我搜索了这个 DatabaseLibrary(Python) 没有 Maven 依赖项。
    • 那是我拥有的库的相对路径。您可以根据您的计算机路径相应地拥有它。我的完整文件看起来像 - *** 设置 *** 库 ..${/}..${/}lib${/}databaselibrary-0.6${/}DatabaseLibrary${/} *** 变量 *** *** 关键字 *** 查询数据库 [参数] ${sql} 使用自定义参数连接到数据库 cx_Oracle '${lsuser}/${lspasswd}@172.16.225.40:1521/${dbschema}' @{result} =查询 ${sql} 断开与数据库的连接 [返回] ${result}
    【解决方案2】:

    我遇到了同样的问题,这是我找到的解决方案

    第一步:安装Oracle Instant Client(32位)(我用的是instantclient_18_3,你不用单独安装cx_oracle)

    第 2 步:为 Robot 安装操作系统 Literary 和数据库库并导入它

    *** Settings ***
    Library           DatabaseLibrary
    Library           OperatingSystem
    

    然后在您的机器人脚本中,添加以下变量并确保它与测试用例一起使用(不在外部资源文件中)

    *** Variables ***
    ${DB_CONNECT_STRING}    'DB_USERNAME/DB_PASSWORD@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=YOUR_DB_OR_HOST)(PORT=YOUR_PORT))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=YOUR_SID)))'
    

    然后您可以使用以下关键字来设置环境变量并运行查询

    *** Keywords ***
    Connect To DB
        [Arguments]    ${DB_CONNECT_STRING_VALUE}
        Set Environment Variable    PATH    PATH_TO_YOUR_INSTANT_CLIENT\\instantclient_18_3
        Set Global Variable    ${DB_CONNECT_STRING_VALUE}
        #Connect to DB
        connect to database using custom params    cx_Oracle    ${DB_CONNECT_STRING_VALUE}
    
    Run Query and log results
        [Arguments]    ${QUERY_TO_EXECUTE}
        Set Global Variable    ${QUERY_TO_EXECUTE}
        ${queryResults}    Query    ${QUERY_TO_EXECUTE}
        log to console    ${queryResults}
    
    Disconnect From DB
        #Disconnect from DB
        disconnect from database
    

    最后,在你的测试用例中像这样运行它

    *** Test Cases ***
    Get Sysdate Test
        [Tags]    DBConnect
        Connect To DB    ${DB_CONNECT_STRING}
        Run Query and log results    SELECT sysdate from Dual
    

    这应该适合你

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-19
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多