全局变量 - 机器人框架 - 使用资源文件



我有一个测试文件,用于检查应用程序每个页面上是否存在所有关键元素(每页一个场景(。但是,该应用程序相当复杂,并且具有不同类型的用户(管理员,常规等(,我希望能够与每种类型的用户一起浏览相同的pages.robot文件(并且可能在该pages.robot文件中为每种类型的用户提供一些if语句(,但我不确定我应该怎么做。我猜我应该使用 Resource File 并使用 adminregular 等设置全局 userType 变量并多次运行 pages.robot 文件(每个用户类型一次(,但我不确定如何设置Resource FileuserType变量。

关于Resource File的外观以及如何为每种类型的用户运行相同的文件的任何想法?

您可以将测试用户配置/属性存储在资源文件(例如 test_properties.txt(中,如下所示:

=== test_properties.txt ===

| *** Variables *** |
| ${tp_app_url}  | http://yourapp.com |
| ${tp_browser}  | firefox |
| ###### user roles to test with - admin, non-admin, regular |
| ${tp_user_type} | admin |
| ###### test users   |
| ${tp_admin_user} | admin@app.com |
| ${tp_admin_password} | admin@123 |
| ${tp_regular_user} | regular@app.com |
| ${tp_regular_password} | regular@123 |

在这里,要用于测试应用程序的用户角色/类型定义为:

| ###### user roles to test with - admin, regular |
| ${tp_user_type} | admin |

然后,您的测试套件文件可以导入上述资源文件,如下所示:

=== 测试套件.txt ===

| *** settings *** |
| Library        | Selenium2Library |
| Resource       | test_properties.txt |
| *** test cases *** |
| Validate Page Controls |
|    | Open Browser To Login Page | ${tp_user_type} |
|    | Page Controls Should be Visible | ${tp_user_type} |
| *** keywords *** |
| Open Browser To Login Page |
|    | [Arguments] | ${user_type} |
|    | Open Browser | ${tp_app_url} | ${tp_browser} |
|    | Input Username | ${tp_${user_type}_user} |
|    | Input Password | ${tp_${user_type}_password} |
|    | Submit Credentials |
|    | Title Should Be | Welcome Page |
| Input Username |
|    | [Arguments] | ${username} |
|    | Input Text | username_field | ${username} |
| Input Password |
|    | [Arguments] | ${password} |
|    | Input Text | password_field | ${password} |
| Submit Credentials |
|    | Click Button | login_button |
| Page Controls Should be Visible |
|    | [Arguments] | ${user_type} |

与验证页面控件相关的代码可能驻留在关键字 Page Controls Should be Visible 中,该关键字将基于用户类型参数执行检查。

注意:测试用户的 userId 和密码变量在这里通过嵌入用户类型变量来形成: ${tp_${user_type}_user} 在我们的例子中,这反过来又被评估为 ${tp_admin_user}

在执行期间,可以在命令行上传递 ${tp_user_type} 的值,它会覆盖资源文件中设置的值。

pybot --variable tp_user_type:non-admin path/to/your/testfile

如果要对多个用户类型运行相同的测试,可以创建一个批处理文件,如下所示:

pybot --variable tp_user_type:non-admin path/to/your/testfile
pybot --variable tp_user_type:admin path/to/your/testfile
pybot --variable tp_user_type:regular path/to/your/testfile

我相信对于您的问题,会有比这更好的解决方案。理想情况下,上面在测试套件文件中定义的关键字应驻留在资源文件中。您还可以创建数据驱动测试,为每种用户类型运行模板关键字(用于验证页面控件(。

相关内容

  • 没有找到相关文章

最新更新