Robotframework Robot Framework:通过DatabaseLibrary连接Oracle数据库时出错

Robotframework Robot Framework:通过DatabaseLibrary连接Oracle数据库时出错,robotframework,Robotframework,我试图通过Robot框架连接到Oracle数据库,但出现了错误 在数据库库文档中,给定以下语法: # explicitly specifies all db property values Connect To Database psycopg2 my_db postgres s3cr3t tiger.foobar.com 5432 *** Settings *** Documentation Trouble Ti

我试图通过Robot框架连接到Oracle数据库,但出现了错误

在数据库库文档中,给定以下语法:

# explicitly specifies all db property values                       
Connect To Database     psycopg2    my_db   postgres    s3cr3t  tiger.foobar.com    5432
*** 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  

我在我的代码中使用了相同的代码,如下所示:

# explicitly specifies all db property values                       
Connect To Database     psycopg2    my_db   postgres    s3cr3t  tiger.foobar.com    5432
*** 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个

有人能帮忙吗

谢谢 萨拉达

你能试着用-

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

&下载数据库库

我也有同样的问题,这就是我找到的解决方案

步骤1:安装Oracle即时客户端(32位)(我使用的是instantclient_18_3,您不必单独安装cx_Oracle)

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

*** Settings ***
Library           DatabaseLibrary
Library           OperatingSystem
然后在robot脚本中,添加以下变量,并确保它与测试用例一起使用(不在外部资源文件中)

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

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

这对您来说应该很好

Hi Hemant,我收到以下错误“找不到名称为的关键字”使用自定义参数连接到数据库。请检查此处的文档。。还要确保使用了正确的缩进。@SaradaAkurathi这是因为您复制了关键字的名称。它在每个单词中都使用大写字母,比如
使用自定义参数连接到数据库
检查相应的文档:感谢Hemanth和Richard,它成功了。我还需要一个小的帮助,在EclipseMaven项目中作为依赖性提供这个数据库库,您能告诉我如何提供,否则如何使它也在Maven下工作吗。我搜索到这个数据库库(Python)没有Maven依赖项。这是我所拥有的库的相对路径。您可以根据您的计算机路径相应地拥有它。我的完整文件看起来像-***设置***库..${/}..${/}库${/}数据库库-0.6${/}数据库库${/}***变量******关键字***查询数据库[参数]${sql}使用自定义参数cx_Oracle'${lsuser}/${lspasswd}@172.16.225.40:1521/${dbschema}'@{result}=Query sql}连接到数据库断开与数据库的连接[Return]${result}