使用Screenplay模式而不是Page对象有什么优点/缺点?

时间:2017-04-05 12:31:34

标签: selenium automated-tests cucumber pageobjects serenity-bdd

我在youtube观看了一个视频,建议使用剧本模式作为使用常用网页对象的替代方案。我看到的唯一优势是页面对象类没有那么大。还有其他我想念的东西吗?我一直在搜索,所有网站都在使用serenity bdd在youtube讲座上引用示例。有人可以解释为什么它比使用页面对象更好(或者更糟)?

一个不使用宁静bdd的例子真的很有帮助。

1 个答案:

答案 0 :(得分:6)

简而言之,ScreenPlay鼓励更好的软件工程实践,从而使测试编写更快,更容易维护,但需要更好地了解OOP才能产生全部效益(尽管它的确能够很好地扩展)只要有几位高级工程师了解这种模式,就有初级工程师。

页面对象只是作为踏脚石来帮助引入自动化测试人员以更好地测试自动化实践,但它仍然可能导致难以维护的代码。看看这篇文章的原始故事:https://ideas.riverglide.com/page-objects-refactored-12ec3541990

还有其他一些Screenplay实现,包括:   - JNarrate:https://bitbucket.org/testingreflections/jnarrate/wiki/Examples   - 叙述:https://github.com/tim-group/narrative

ScreenPlay是一个actor或以用户为中心的模型,在许多情况下,它比步骤库更容易扩展,更易于重用。编写任务后,您很少需要更改它(遵循开放原则)。以演员为中心的模型还可以更轻松地模拟多个用户在场景中交互的情况(例如,使用不同的浏览器)。 Jan Molak在本文中讨论了剧本中以演员为中心的一面:https://janmolak.com/user-centred-design-how-a-50-year-old-technique-became-the-key-to-scalable-test-automation-66a658a36555