2016-02-05 48 views

回答

2

使用的关键字是什么让机器人框架的权力。它是为验收测试驱动开发而设计的。验收测试通常用用户的语言编写,并且通常由产品所有者或qa专业人员在开发的早期阶段编写。

如果你不写自己的自定义关键字,一个登录页面的验收测试,导致仪表板可能将不得不是这个样子:

| | 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 

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

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

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

1

这是莫名其妙的时间保留和更高效的在以下两种情况下可以创建用户定义的关键字,我会说:

  1. 呼叫关键字不止一次(如在一个循环或东西)也许 也与每次输入不同的变量。
  2. 组织您的测试,使其易于阅读。
0

你用你自己的关键字为完成这是不可能与正常组关键字的任务。你可以用Python编程它们。您也可以结合自定义关键字中的现有关键字来完成更为困难的任务。

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

相关问题