Robot Framework - 使用 PostgreSQL 从数据库中执行 Sql 脚本关键字

Posted

技术标签:

【中文标题】Robot Framework - 使用 PostgreSQL 从数据库中执行 Sql 脚本关键字【英文标题】:Robot Framework - Execute Sql Script Keyword from Data Library with PostgreSQL 【发布时间】:2020-12-28 10:57:03 【问题描述】:

我正在尝试使用机器人框架 (Database Library) 将 PostgreSQL 数据库中的 INSERT 数据放入表中以完成它

Excel 文件中有一个列,它已经有 SQL 脚本,我的想法是针对该列中的每一行,将信息插入数据库。

请在下面找到脚本:

*** Settings ***
Library           SeleniumLibrary
Library           ExcelLibrary
Library           Database Library

*** Test Cases ***
Update DB
Connect To Database    psycopg2    $DBNAME    $USER_NAME    $PASSWORD    localhost    5432
Open Excel    D:\\RPA\\Demo\\FIPEExcelDone.xls
@sqlc=    Get Column Values    Tabela    6
@query=    Query    select * from fipe_price
FOR    $VAR4    IN ZIP    $sqlc
    Run Keyword If    "$VAR4[1]" == "SQL"    Continue For Loop
    LOG    $VAR4[1]
    Execute Sql Script    $VAR4[1]
END

一切正常,然而,当代码执行关键字Execute Sql Script时,出现错误

IOError: [Errno 2] No such file or directory: u"INSERT INTO fipe_price (mes_pe....

为了检查问题是否出在 SQL 脚本上,我手动将 Excel 文件中的 SQL 代码插入 Postgre,并且代码运行良好,因此,当我尝试运行时,我不明白如果机器人框架不起作用。

【问题讨论】:

【参考方案1】:

您使用的关键字Execute Sql Script 期望您传递一个文件,它将打开并执行其中的所有语句。 您正在寻找的是Execute Sql String - 作为参数传递的字符串直接在服务器上执行。

【讨论】:

以上是关于Robot Framework - 使用 PostgreSQL 从数据库中执行 Sql 脚本关键字的主要内容,如果未能解决你的问题,请参考以下文章

Robot Framework -007 RequestsLibrary 复杂json字符串发出http post request

将响应值存储在 ROBOT Framework 中的变量中

Robot Framework - 从带有参数的其他 *.robot 脚本调用 *.robot 脚本

Robot Framework重点

Robot Framework 使用总结

Robot Framework应用——在Virtualenv和Virtualwrapper的虚拟环境中启动Robot Framework的RIDE时报的错误问题的解决