为什么我们要在机器人框架中创建用户关键字?

Why do we create user keywords in robot framework?

在什么情况下需要定义用户关键字?是否需要创建自定义库才能创建用户关键字。

我会说在以下两种情况下创建用户定义的关键字在某种程度上节省时间并且更有效:

  1. 可能不止一次调用一个关键字(比如在循环中或其他什么) 每次也有不同的输入变量。
  2. 组织您的测试以易于人类阅读。

您可以使用自己的关键字来完成使用普通关键字集无法完成的任务。您可以在 Python 中对它们进行编程。您还可以在自定义关键字中组合现有关键字来完成更困难的任务。

您不需要自定义库。只需将您的关键字放在 *** Keywords *** 行后面。

关键字的使用赋予了机器人框架强大的力量。它专为验收测试驱动的开发而设计。验收测试通常以用户的语言编写,并且通常由产品所有者或质量保证专业人员在开发的早期阶段编写。

如果您不编写自己的自定义关键字,则指向仪表板的登录页面的验收测试可能必须如下所示:

| | open browser | http://www.example.com | chrome
| | go to | http://www.example.com/login
| | input string | xpath=//form/input[@name='username'] | ${username}
| | input string | xpath=//form/input[@name='password'] | ${password}
| | submit form
| | wait until page contains element | xpath=//div[@id='dashboard_frame']
| | page should contain | welcome to Example.com!

以上测试与实现紧密耦合,如果页面的实现发生变化,则必须进行更改。这种类型的测试对于客户或产品所有者来说很难阅读——他们不关心元素的名称,甚至不关心登录所需的内容。他们唯一关心的是是否有足够的测试来覆盖行为的新功能。

通过使用自定义关键字(写成机器人关键字或可能实现为页面对象),测试可能如下所示:

| | Go to the login page
| | Log in with valid credentials
| | Verify we are on the dashboard page

这个例子更好地表达了测试的意图,不管它是如何实现的。这测试的是 功能 而不是 实现 。这是产品所有者或客户可以轻松阅读以验证是否执行了正确测试的测试类型。

结合页面对象的使用,这将成为一个非常强大的机制。您的产品所有者和测试专业人​​员可以专注于要测试的功能,而不必担心实施。

实现细节可以放在页面对象定义中,这些定义可以与页面本身的实现存在于相同的代码存储库中。当开发人员更改页面时,他们可以更改关键字的实现以匹配,而无需更改任何实际测试用例。