【发布时间】:2021-04-21 10:08:31
【问题描述】:
我有一个非常具体的场景,我将一些数据插入到数据库中(例如,假设 3 个插入,每个插入都返回一些 ID)并基于返回值,我想为那些创建动态测试用例返回值 例如
*** Variables ***
@{result} ${EMPTY}
*** Test Cases ***
Some dummy sql inserts
${result} Insert sql statements dt1 dt2 dt3 #e.g. return ['123', '456', '789']
Verify some ids
# NOPE, sorry i can't use [Template] because each iteration is not marked on a report as a "TEST" but as a "VAR"
Verify if ids exist somewhere ${result} #This keyword execution should create another 3 test cases, one for each item from ${result} list
*** Keywords ***
Insert sql statement
[Arguments] @{data}
Create List ${result}
FOR ${elem} IN @{data}
${return_id} SomeLib.Execute SQL INSERT INTO some_table(some_id) VALUES (${elem})
Append To List ${result} ${return_id}
END
[Return] ${result}
Verify if ids exist somewhere
[Arguments] ${some_list_of_ids}
FOR ${id} IN @{some_list_of_ids}
So some stuff on ${id}
END
我试图通过参考robot API documentation 来弄清楚如何做到这一点,但没有任何成功。
您能否告诉/建议它是否可行,如果可行,我该如何实现。
到目前为止,我发现可能有两种方法可以做到这一点:
- 通过创建监听器
- 通过创建自己的关键字
在这两种情况下,我都必须把逻辑放在那里,但不知道如何即时创建测试用例。
请帮忙? :)
附:一些例子非常受欢迎。提前致谢
【问题讨论】:
-
看看这个:stackoverflow.com/a/65961081/3820025。请注意,它在 Robot Framework 4.0 下工作。我将为 Robot Framework 4.0 更新它。
标签: python robotframework