RobotFramework-将查询结果与另一个文件的结果进行比较

问题描述 投票:0回答:1

我有一个使用RobotFramework的脚本,该脚本进行了大量的数据库测试。当前,我正在尝试添加一个新的测试用例,以从另一个Python脚本(称为raw_data.py)执行查询测试。 raw_data.py非常简单,仅包含以下代码:

query_begin = """SELECT *  
          FROM my_Table"""

def get_queries_list(query):
    result = query.replace('\n','').strip()
    return result

query_result = get_queries_list(query_begin)
print(query_result)

因此,我想使用robotframework从上一个脚本执行结果(查询):

*** Settings ***
Library     DatabaseLibrary
Library     OperatingSystem
Library     raw_data.py

Suite Setup         Connect To Database       pymysql  ${DBName}   ${DBUser}   ${DBPass}   ${DBHost}   ${DBPort}
Suite Teardown      Disconnect From Database

*** Variables ***
${DBName}   myDB
${DBUser}   user
${DBPass}   pass
${DBHost}   hostname
${DBPort}   port
${Query}    'SELECT * FROM DEV.personal_tasks'

*** Test Cases ***
Compare the target data with the source data
    ${output}=  Execute SQL String get_queries_list(query) 
    log to console  ${output}
    should be equal as strings  ${output}   10

但是它给了我以下错误:

No keyword with name 'Execute SQL String get_queries_list(${Query})' found.

但是,关键字“ Execute SQL String”已经存在...我在做什么错?

提前感谢!

python selenium robotframework
1个回答
0
投票

[我认为您在Execute SQL Stringget_queries_list(query)之间缺少至少2个空格,因此它对它进行整体评估,然后将失败并返回不存在此类关键字的错误。

编辑:

您还需要将查询保存到一个变量中,然后将其传递给Execute SQL String

${query}=    get_queries_list(query)
Execute SQL String    ${query}
© www.soinside.com 2019 - 2024. All rights reserved.