我尝试通过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
我跑了但得到了以下错误: 关键字'DatabaseLibrary.Connect To Database'需要4个参数,得到6个。
任何人都可以帮忙解决这个问题。
由于 Sarada
答案 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
这应该适合您