2016-06-21 72 views
1

我是前端开发人员,目前我在一家公司工作,我们正在自动化我们的多语言网站。我们实施了句子来模拟使用平台的服务,代表用户行为的句子以及其他句子,以根据行动来检查内容。黄瓜+硒:功能测试和测试内容

我会问这些最后提到的句子。我们的架构团队已决定使用以下语句做功能: '在页面中必须显示文本“acme city sample”'

如果你看,这个句子不会讨论页面的任何元素。如果该文本存在于页面的任何位置,则测试将成立。架构师不喜欢使用任何类型的CSS选择器来定位元素,因为他们说这是一个功能测试,我们只测试我们能够在浏览器的输出中看到的元素。所以,所有类型的选择器的引用都是禁止的。我们只使用xpath来查找包含所需文本的元素,然后检查是否显示了这些元素。捍卫这一观点的另一个原因是,这样可以减少网站项目和自动化项目之间的耦合。

但是,这个决定对我来说似乎太严格了。例如,检查按某些标准排序的内容很困难。

但是我想知道您对此有何看法,如果您有其他经验,他们是如何使用测试网站内容的?但是,如果您认为这是一个很好的决定,我会有兴趣阅读一些参考或文章来理解,因为这是测试内容的最佳方式。

+0

如果您必须测试结果集中的排序,则必须能够用英文对其进行验证。在这种情况下,您应该能够使用备用语言进行验证,该备用语言具有可排序的枚举类型字段(如状态字段)的备用术语。 –

回答

0

所以这里有几个问题需要解决。

工具语言

在它必须显示在网页德文本“极致城市样本”

我想这意味着你的黄瓜脚本equivilent看起来是这样的:

Then In the page it must displayed de text "acme city sample" 

(如果情况并非如此,请告诉我,我会更正它 这不是编写BDD语句的正确方法。在BDD中,您希望将一般行为映射为与具体的“实现语言”相对立。一个更好的书写方式是:

Then I should receive information relevant to "acme city sample" 

这样你就可以从任何实现中解耦你的预期输出。以这种方式,如果预期的输出从文本变为,可以说,一个图像。你的最终用户的总体行为没有改变,只是他们如何消费信息。所以我会建议先删除所有的实现语言。实现语言的

的例子是:

  • 点击
  • 类型
  • 选择
  • 移动

有可能是,你仍然需要使用这些情况,但在一般避免它们。

避免了XPath

我已经看到了很多人的喜好都选择某种原因做到这一点,我永远无法真正理解为什么。首先使用CSS选择器,您可以像xpath一样执行,并且效率更高。如果可能,我会考虑这样做。

我们只测试我们能够在浏览器的输出中看到。

-

另一个原因捍卫这种观点是,这样你 降低了网站项目及自动化项目 之间的耦合。

这不是不使用选择器的原因。 XPath仍然是一个选择器。我假设你正在这样做,以快速找到页面上的文字。假设你知道100%,你永远不会得到误报,那么我可以理解你为什么这样做,但明白这不会减少耦合。如果您的验收标准从文本更改为图片,会发生什么情况?您的测试将始终与该项目相结合,这是没有办法的。你需要问自己的是,使用xpath只会给我一个我亲身感受的结果,并且根据需要很容易实现或更改。它是否覆盖了我们之前编写的验收标准?