如何将熊猫与机器人框架集成并运行查询



我正在使用机器人框架和Pandas为产品开发数据验证框架。我通过从文件中读取配置,使用如下所示的机器人框架建立数据库连接sample.robot-

*** Settings ***
Variables  ./sample.yaml
*** Variables ***
${DB1Host}          ${db1host}
${DB1Name}          ${db1name}
${DB1Pass}          ${db1pwd}
${DB1Port}          ${db1port}
${DB1User}          ${db1user}
${DB2Host}          ${db2host}
${DB2Name}          ${db2name}
${DB2Pass}          ${db2pwd}
${DB2Port}          ${db2port}
${DB2User}          ${db2user}
***Keywords***
Connect To DataBase
[Documentation]  Establish Connection On DataBase1
${data_base1}=    Get Library Instance    DB1
log to console  Data_Base1 Instance : ${data_base1}
DB1.Connect To Database    pymysql  ${DB1Name}  ${DB1User}   ${DB1Pass}   
${DB1Host}   ${DB1Port}
log to console  Connected to Data_Base1
[Return]  ${data_base1}

类似地连接到第二个数据库

现在我想使用 pandas 调用另一个 python 库并执行 select query 和 dropduplicates((;

import pandas as pd
SHARING_DATA = dict()
def get_data(conn_rd,conn_sc):
global SHARING_DATA
df1= pd.read_sql("""<DB1 inner joint query>""", con=conn_rd).drop_duplicates
print(df1)
df2 = pd.read_sql("""<DB2 inner joint query> """, con=conn_sc).drop_duplicates()
print(df2)
SHARING_DATA[SUITE_NAME] = dict()
SHARING_DATA[SUITE_NAME]["df1"] = df1
SHARING_DATA[SUITE_NAME]["df2"] = df2

这样我就可以表演

1. .drop_duplicates()
2. if SHARING_DATA[SUITE_NAME]["df1"].count().equals(SHARING_DATA[SUITE_NAME]["df2"].count()):
And
3. db1-db2 = SHARING_DATA[SUITE_NAME]["df1"] .merge(SHARING_DATA[SUITE_NAME]["df2"], how='left', indicator=True)
db1-db2 = db1-db2[(db1-db2['_merge'] == 'left_only')].copy()
db1-db2 = db1-db2.drop(columns='_merge').copy()
print('STATUS    : FAIL, Records missing in targetn')
print(db1-db2.head())

比较两个数据库之间的数据。如何在机器人框架中做出非常自适应的相同,或者如何在机器人框架中重用上述比较

通过将以下内容添加到测试套件的设置部分,您可以将任何 Python 库包含在机器人框架测试用例中(希望脚本与测试文件位于同一文件夹中(:

*** Settings ***
Library    ${CURDIR}${/}python_script.py

如果您提供的 python 脚本以这种方式包含在内,则可以通过以下方式调用 Robot 测试用例中的任何已实现函数:

*** Test Cases ***
Call a function from the Python script
Get Data  ${CONNECTION_1}  ${CONNECTION_2}

您可以向 Python 函数添加更多参数,然后向Get Data关键字添加更多关键字参数以添加功能。

如果你在Python中实现了任何东西,那么只需以解释的方式调用python函数,就可以很容易地将其转移到机器人测试套件中。我希望这个答案对您有所帮助,因为我不完全确定您正在寻找的最终结果,但它绝对有助于使 python 库适应机器人框架:)

最新更新