![](/img/trans.png)
[英]Confuse about Robot Framework data-driven sample? What is “C${}=”?
[英]Generating test cases in Robot framework data-driven approach
我有一个问题,在使用测试模板时如何避免将测试数据硬编码到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文件。 同样,我知道如何做到这一点,但是似乎对它进行了过度设计,我想找到一种更简单的方法。
我希望能朝正确的方向稍加推动。
谢谢
只是为了在这里完成,我会回答我的问题。
以下测试用例完成了我想要的工作:
*** Test Cases ***
Mahara Invalid Login
[Template] Invalid ${login} with ${password}
:FOR ${login} IN @{invalid_logins.keys()}
\ ${login} ${invalid_logins['${login}']}
在这种情况下,我正在从Python字典加载测试数据,其中的键是登录名,值是密码。
或者,我可以使用.csv文件并执行以下操作:
Mahara Invalid Login
${all_rows}= Get All Rows ${invalid_login_file} ${DELIMITER} ${HEADER}
:FOR ${row} IN @{all_rows}
\ ${login}= Set Variable ${row[0]}
\ ${password}= Set Variable ${row[1]}
\ Invalid ${login} with ${password}
“获取所有行”将是一个自定义关键字,用于从.csv文件加载数据。
在这两个示例中,我不需要写太多,只需准备测试数据并在Python中编写一个for循环即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.