【发布时间】:2019-04-03 07:28:22
【问题描述】:
我有一个问题,关于如何避免在使用测试模板时将测试数据硬编码到 Robot 框架测试用例中。
我有测试用例,例如:
Test template Invalid Login
*** Test Cases *** LOGIN PASSWORD
Login admin admin ${INVALID_PWD}
Login student student ${INVALID_PWD}
Login learner learner ${INVALID_PWD}
Login staff staff ${INVALID_PWD}
等等……
只要我没有 100 个左右的登录名和密码,我就喜欢这种方法。然后我需要在这里对其进行硬编码,这对我来说似乎有点太多了。
我尝试过的另一个方法是:
*** Test Cases ***
Mahara Invalid Login
[Template] Invalid ${login} with ${password}
admin aa
student aa
这使它更简单一些,但我也不喜欢它,因为它只是一个包含多个不同步骤的测试用例,每个步骤使用不同的测试数据。
我想要的是,比如说,登录名和密码列表,或者 Python 中的字典,并让 Robot 框架使用这些来生成这样的测试用例。但是,我不知道这是否可能。
我进行了一些搜索,除其他外,发现了以下帖子:https://stackoverflow.com/a/25206407/10401931,看起来不太乐观。
然后,我找到了几种读取 .csv 的方法。我可以在 Python 中实现这一点,但它没有回答我的问题,即如何将我在 .csv 中读取的内容加载到 Python 中的这种数据驱动方法中。基本上,我认为归结为如何强制测试模板遍历给定的给定列表/字典。由于测试模板基本上是一个 for 循环,因此可能有一种方法可以稍微改变这个循环。还是没有?
另一种方法是将整个 .robot 测试套件生成为 Python 中的文件。再说一次,我知道怎么做,但似乎过度设计了很多,我想找到一种更简单的方法。
我希望能稍微推动一下正确的方向。
谢谢
【问题讨论】:
-
"登录名和密码列表,或 Python 中的 dict 并让 Robot 框架使用这些来生成此类测试用例。但是,我不知道是否可能。 " 这是可能的,但是在我们不知道您的要求后,您必须根据需要进行修改,可能一个测试用例就可以完成您的工作
-
我明白了,所以我可以从 .csv 或其他文件加载测试数据,然后让 Robot 在一个测试用例中循环遍历它。绝对是一种选择,而且可能还不错,因为将许多测试数据编码到单独的测试用例中对我来说似乎是一个更糟糕的选择。另一方面,如果我不想要硬编码和单独的测试用例,你会怎么做?
标签: python testing robotframework