繁体   English   中英

在Robot Framework数据驱动方法中生成测试用例

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM