Database 我们如何在robot框架中验证表格数据?

Database 我们如何在robot框架中验证表格数据?,database,bdd,robotframework,cucumber-jvm,gherkin,Database,Bdd,Robotframework,Cucumber Jvm,Gherkin,在Cucumber中,我们可以通过以下格式的值直接验证表格格式的数据库表内容: |类型|代码|金额| |A |高| 27.72| |B |低| 9.28| |C |低| 4.43| 我们是否有类似的机器人框架。我需要在数据库上运行一个查询,输出结果与上面给定的表类似。不,没有任何内置内容可以完全按照您所说的执行。然而,编写一个关键字来获取一个数据表并将其与另一个数据表进行比较是相当简单的 例如,您可以编写一个关键字,该关键字获取查询结果,然后获取信息行(不过,所有行的列数必须完全相同): |

在Cucumber中,我们可以通过以下格式的值直接验证表格格式的数据库表内容:

|类型|代码|金额|
|A |高| 27.72|
|B |低| 9.28|
|C |低| 4.43|

我们是否有类似的机器人框架。我需要在数据库上运行一个查询,输出结果与上面给定的表类似。

不,没有任何内置内容可以完全按照您所说的执行。然而,编写一个关键字来获取一个数据表并将其与另一个数据表进行比较是相当简单的

例如,您可以编写一个关键字,该关键字获取查询结果,然后获取信息行(不过,所有行的列数必须完全相同):

| |${ResultOfQuery}=|
||数据库应包含|${ResultOfQuery}
| | ... | #类型|代码|金额
| | ... | A |高| 27.72
| | ... | B |低| 9.28
| | ... | C |低| 4.43
然后一次迭代三个参数,并检查数据是否具有该值。它看起来像这样:

**** Keywords *** 
| Database should contain
| | [Arguments] | ${actual} | @{expected}
| | :FOR | ${type} | ${code} | ${amount} | IN | @{expected}
| | | <verify that the values are in ${actual}>
****关键字****
|数据库应该包含
||[参数]|${actual}|@{expected}
||:对于|${type}|${code}|${amount}| IN |@{expected}
| | | 

更简单的方法可能是编写一个基于python的关键字,这使得在数据集上进行迭代更加容易

这是行不通的。表格列未标识为标量变量。相反,RF抛出一个错误,声明“预期1到5个参数,得到0”。@DeeptiK:我不知道你的意思。如果看不到您的实际数据,就不可能知道问题出在哪里。最有可能的情况是,您的数据不是您认为的那样,您传递的是一个空字符串,而不是一个包含数据的列表。无论如何,这不是robot的限制,它只是关键字或测试中的一个bug。@Deeptik在案例1中会发生这种情况;当您没有用至少两个空格或适当的制表符分隔参数时,如果robot文件是制表符分隔的case2:如果robot文件是管道分隔的,那么它将按照Bryan提供的上述示例工作
**** Keywords *** 
| Database should contain
| | [Arguments] | ${actual} | @{expected}
| | :FOR | ${type} | ${code} | ${amount} | IN | @{expected}
| | | <verify that the values are in ${actual}>