我们正在尝试运行机器人框架进行测试。自动化。此时我仍然处于数据库连接状态。
使用cx_Oracle的数据库连接显示错误,上面写着“没有名称为cx_Oracle的关键字”。如果您有任何想法请帮助。如果您能够提供Oracle dB连接示例的示例,将会很有帮助。
答案 0 :(得分:0)
检查RobotFramework提供的 DatabaseLibrary 。
DatabaseLibrary Keyword Documentation
数据库连接有两个关键字:
答案 1 :(得分:0)
"没有名称为cx_Oracle的关键字"意味着你正在使用' cx_Oracle'作为关键字。 我没有在常用的Robot Extended libraries中看到给定的库。 如果情况是您错误地安装了库并将其正确导入到Robot脚本中:
*** Settings ***
Library MyLibraryName
然后我希望它在导入时失败。
我同意Dinesh。首先尝试使用数据库库。
或者,如果您不能使用数据库库(使用自定义参数连接到数据库有限制),则可以编写自己的机器人库,该库将重用cx_Oracle python库并将关键字暴露给机器人。它通常是not that complicated,我用pyodbc做到了。
答案 2 :(得分:0)
这确实是一个安装问题。我们不得不使用Anaconda3,并且必须在其site-packages下安装库。我在默认的Python文件夹下有这个。问题现在已经解决了。
答案 3 :(得分:0)
我遇到了同样的问题,这是我找到的解决方法
第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 ***
Test Connetion
[Tags] DBConnect
Connect To DB ${DB_CONNECT_STRING}
Run Query and log results SELECT sysdate from Dual
这应该适合您