伙计们,我正在寻找 Web 测试通用自动化框架,它可用于对各种基于 Web 的应用程序进行自动化测试。正在寻找基于 C# 的框架,因为这是我更熟悉的语言。但任何其他语言框架也可以,并且不应使用任何专有/许可语言。 框架应该有一些开源和免费的许可模型。
我在Google和SO上搜索了基于selenium的框架。但无法提供任何可用的源代码。如果框架封装了 Selenium WebDriver 和/或 Selenium RC 提供的所有功能,并使功能测试人员能够在人类可读的脚本中创建和维护测试,那就太好了。
框架要求:
框架代码应避免测试步骤的硬编码。我的想法是在自动化框架代码之外维护测试脚本,以便在需要时可以轻松修改它们。框架应该通读步骤表和数据表并相应地运行测试。
如果现在没有这样的框架,那么我们可以通过开源社区模式共同构建这样的框架。
附注 我读过一些关于 Hermes Framework 和 Robot Framework 的内容,但尚未尝试过,欢迎任何帮助。
最佳答案
这个问题好的一面是:有很多灵活的工具和方法,您可以聚集在一起构建灵活、可靠和健壮的测试自动化框架。
困难的部分是:是的,没有“开箱即用”的解决方案,您需要找到并组合大量工具才能解决这个测试自动化难题。
我的建议是:
首先您需要选择一个单元测试测试框架。这是一个工具,有助于将代码中的单独方法识别为测试,以便您可以一起或单独运行它们并获取运行结果,例如通过或失败。
我个人的观点是,Visual Studio 2013(以及 Express Edition)附带的测试工具 - MS-Test 已经足够好了。另一种选择是: NUnit 或 Gallio Icarus所有单元测试框架都包含在测试内进行断言的机制。断言类的功能取决于给定的单元测试框架。在这里,我想推荐一个流行的库,它非常适合整个单元测试框架。
这是Fluent Assertions (也可从 NuGet 存储库获取)。那是一个艰难的时刻。您需要决定:是否要使用 PageObject 方法来构建测试自动化框架,或者您是否要选择更简单的方法,而不大量使用面向对象编程。
正确设计的页面对象使您的测试自动化代码更易于维护。利用面向对象编程——您可以在代码中施展魔法:少写多做。不过,这种方法需要更多技巧。
以下是有关此主题的好文章:
Maintainable Automated UI Tests
还有这个:
Tips to Avoid Brittle UI TestsPageObject 的替代方法是脚本化方法。这种方法也可以取得成功,并且启动时间较短。
<强> Coypu 是 Selenium Web Driver 此类框架的一个很好且可用的示例。所有流行的单元测试框架都支持数据驱动测试。最好的支持是在 NUnit 中 – 您可以运行/重新运行并查看为测试树中的各个数据行生成的测试。 MS-Test 支持从不同数据源读取数据:文本文件、excel、mssql 等,但不可能对单个数据行重新运行测试。不过,有一个破解方法 - Ms-Test Rows 。
对于我的数据驱动测试,我使用了一个很棒的库 - Linq to Excel
我还有很多话要说。构建测试自动化框架的方法有很多,但目前还没有现成的解决方案。
我正在尝试根据我的测试方法构建一个 - SWD.Starter 。 该项目仍处于早期开发阶段。但是,至少,您可能会找到一些如何构建和组织测试自动化代码的技巧。
关于selenium - 寻找开源网络测试自动化框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20860148/