Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Robot框架:如何连接到Oracle数据库_Python_Oracle_Robotframework - Fatal编程技术网

Python Robot框架:如何连接到Oracle数据库

Python Robot框架:如何连接到Oracle数据库,python,oracle,robotframework,Python,Oracle,Robotframework,我们正在尝试我们的运气与机器人框架的测试。自动化。此时我被数据库连接卡住了 使用cx_Oracle的数据库连接显示一个错误,显示“No keyword with y name cx_Oracle”。如果您有任何想法,请提供帮助。如果您能提供一个Oracle数据库连接示例,将非常有帮助。请检查RobotFramework提供的数据库库 数据库连接有两个关键字: 连接到数据库 使用自定义参数连接到数据库 “没有名称为cx_Oracle的关键字”表示您正在使用“cx_Oracle”作为关键字。 我

我们正在尝试我们的运气与机器人框架的测试。自动化。此时我被数据库连接卡住了


使用cx_Oracle的数据库连接显示一个错误,显示“No keyword with y name cx_Oracle”。如果您有任何想法,请提供帮助。如果您能提供一个Oracle数据库连接示例,将非常有帮助。

请检查RobotFramework提供的数据库库

数据库连接有两个关键字:

  • 连接到数据库
  • 使用自定义参数连接到数据库
  • “没有名称为cx_Oracle的关键字”表示您正在使用“cx_Oracle”作为关键字。 我没有看到给定库中常用的。 如果您错误地安装了库,并将其正确导入Robot脚本,如下所示:

    *** Settings ***
    Library   MyLibraryName
    
    那么,我希望它在导入时失败

    我同意迪内什的观点。试着先使用数据库库


    或者,如果无法使用数据库库(使用自定义参数连接到数据库有限制),您可以编写自己的Robot库,该库将重用cx_Oracle python库并向Robot公开关键字。通常情况下,我是用pyodbc实现的。

    这确实是一个安装问题。我们必须使用Anaconda3,并且必须在其站点包下安装库。我将此库放在默认python文件夹下。问题现在解决了。

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

    步骤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 ***
    Test Connetion
        [Tags]    DBConnect
        Connect To DB    ${DB_CONNECT_STRING}
        Run Query and log results    SELECT sysdate from Dual
    

    这对您来说应该很好

    您需要安装一个Oracle连接库-。它的安装说明很简单;安装后,连接/查询很简单-按照数据库库的示例进行操作。谢谢。我已经安装了cx或CLE连接库。尝试使用它时,我得到了关键字not found问题。我检查了,我正在用正确的方法编写它。使用PyCharm for IDE。检查库是否安装在Robotframework使用的python环境中-您可能已将其安装在系统的python中,并在virtualenv中使用RF,反之亦然。我认为OP不仅仅是发现DatabaseLibrary,当前的问题是为它运行的Oracle驱动程序。
    *** Test Cases ***
    Test Connetion
        [Tags]    DBConnect
        Connect To DB    ${DB_CONNECT_STRING}
        Run Query and log results    SELECT sysdate from Dual