Robot Framework:通过DatabaseLibrary

时间:2016-11-22 12:38:42

标签: robotframework

我尝试通过Robot框架连接到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个。

任何人都可以帮忙解决这个问题。

由于 Sarada

2 个答案:

答案 0 :(得分:2)

您可以尝试使用 -

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${/}

&安培;下载DatabaseLibrary Here

答案 1 :(得分:1)

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

第1步:安装Oracle Instant Client(32位)(我使用的是Instantclient_18_3,您不必分别安装cx_oracle)

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

*** 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

这应该适合您