我有一个问题,在使用测试模板时如何避免将测试数据硬编码到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文件。同样,我知道如何做到这一点,但是似乎对它进行了过多的设计,我想找到一种更简单的方法。
我希望能在正确的方向上稍加推动。
谢谢
答案 0 :(得分:0)
只需在这里完成此操作,我会回答我的问题。
以下测试用例完成了我想要的工作:
/etc/apache2/sites-available/000-default.conf
在这种情况下,我正在从Python词典中加载测试数据,其中的键是登录名,值是密码。
或者我可以使用.csv文件并执行以下操作:
*** Test Cases ***
Mahara Invalid Login
[Template] Invalid ${login} with ${password}
:FOR ${login} IN @{invalid_logins.keys()}
\ ${login} ${invalid_logins['${login}']}
获取所有行是我用来从.csv文件加载数据的自定义关键字。
在两个示例中,我不需要写太多,只需准备测试数据并在Python中编写一个for循环即可。