首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找一个开放源码的web测试自动化框架

寻找一个开放源码的web测试自动化框架
EN

Stack Overflow用户
提问于 2013-12-31 16:18:15
回答 3查看 3.7K关注 0票数 2

伙计们,我正在寻找Web测试通用自动化框架,它可以用于对各种基于web的应用程序进行自动化测试,基于.Looking的C#框架,因为这是我更熟悉的语言。但是,任何其他语言框架也可以使用,而且不应该使用任何专有/许可语言。框架应该有一些开源和免费的许可模型。

我在Google上搜索了基于selenium的框架等等。但无法提供任何有源代码可用的。如果框架封装Selenium WebDriver和/或Selenium提供的所有功能,并授权功能测试人员在人类可读的脚本中创建和维护测试,那就太好了。

框架的需求:

框架代码应避免对测试步骤进行硬编码。我的想法是在自动化框架代码之外维护测试脚本,以便在需要时可以轻松地修改它们。框架应该读取步骤表和数据表,并相应地运行测试。

如果现在没有这样的框架,那么我们可以在开源社区模型中共同构建这样一个框架。

我读过一些关于Hermes框架和机器人框架的文章,但是还没有试过,任何帮助都是受欢迎的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-31 19:47:36

这个问题的好处是:有很多灵活的工具和方法,您可以一起构建一个灵活、可靠和健壮的测试自动化框架。

困难之处在于:是的,没有“开箱即用”的解决方案,您需要找到并组装许多工具来解决这个测试自动化难题。

我要建议的是:

  1. 首先,您需要选择一个单元测试框架。这是一个工具,可以帮助识别代码中的单独方法作为测试,因此您可以一起或单独运行它们,并获得运行结果,如pass或fail。 我个人的观点是,Visual 2013附带的测试工具MS-Test已经足够好了。另一种选择是:NUnit伊卡洛斯
  2. 所有单元测试框架都包含一种在测试中执行断言的机制。断言类的能力取决于给定的单元测试框架。在这里,我想推荐一个对整个单元测试框架非常有用的流行库。 这是流利断言 (也可以从NuGet存储库获得)。
  3. 那是个艰难的时刻。您需要决定:您是要使用PageObject方法来构建您的测试自动化框架,还是选择更简单的方法,而不大量使用面向对象的编程。 正确设计的Page对象使您的测试自动化代码更易于维护。利用OOP -你可以在你的代码中做一个魔术:少写多做。尽管如此,这种方法需要更多的技能。 这里有一篇关于这个主题的好文章: 可维护的自动UI测试 而这个: 避免脆性UI测试的技巧
  4. PageObject的替代方案是一种脚本化的方法。这种方法也可能是成功的,并且需要较少的时间开始。 对于Selenium驱动程序来说,共形是这样的框架的一个很好的和可用的例子。
  5. 所有流行的单元测试框架都支持数据驱动的测试。最好的支持是在NUnit中--您可以运行/重新运行,并在测试树中看到为单个数据行生成的测试。MS支持从不同的数据源读取数据:文本文件、excel、mssql等,但无法对单个数据行重新运行测试。尽管,这是一个黑客- Ms-测试行。 对于我的数据驱动测试,我使用的是一个很好的库- Linq到Excel。 我还有很多话要说。构建测试自动化框架的方法太多了,而且还没有现成的解决方案。

我正试图根据我的测试方法- SWD.Starter构建一个。这一项目仍处于早期发展阶段。但是,至少,您可能会发现一些如何构建和组织测试自动化代码的技巧。

票数 2
EN

Stack Overflow用户

发布于 2014-01-01 18:30:49

我根据我以前在大型项目中的经验实现了https://github.com/leblancmeneses/RobustHaven.IntegrationTests,“试图”实现完整的端到端测试。

我一直在使用它,并且对一般selenium、angularjs和kendo工作有很多有用的扩展。由于这个框架并不引人注目,所以您可以只使用这些扩展而不使用任何其他的扩展。

我在我的最新项目中使用这个,每个人都很喜欢它。

有很多bdd/spec框架(specflow、mspec、nspec、storyq)来帮助将系统的行为连接到测试中。

我学到的是:

  • 使任何.net开发人员/测试人员开始编写/运行测试时都没有摩擦。
代码语言:javascript
复制
- Most fail here because it requires installing additional pluggins into visual studio.
- mine uses the standard nunit
- Logically you would think that a feature is a class file and scenarios are [Test] methods - to support some of these frameworks they make each scenario a class file.

  • 使用原始规范来创建测试的存根希望是可读的代码。
代码语言:javascript
复制
- I used spec flow back in 2010 - so things might have changed.  I generated my tests from my bdd document. A year later when I went to add more tests and update existing tests,  I felt I wasted a lot of time with ceremony than writing code I really wanted - I stopped using it.
- My approach uses t4 to generate stubs - developer has a choice to generate from feature file, for a specific scenario or don't use generated code at all. 

  • 如何在步骤/嵌套步骤之间共享状态
代码语言:javascript
复制
- most use `dictionary<string,object>` to help you separate data from being hardcoded in your tests accessed from a context object.
- mine uses viewmodels and pointers to those viewmodels - if your using something like angularjs you are using viewmodels in your server side display/editor templates and in angularjs controller so why not reuse these in your tests!

  • 尽早从CI开始--使开发透明化
代码语言:javascript
复制
- My project has ResultDiff that given the nunit testresult.xml file, folder location to your gherkin feature files, and output json file;   Read description on why this is important on the screenshot: [https://github.com/leblancmeneses/RobustHaven.IntegrationTests#step-5-ci-setup-resultdiff](https://github.com/leblancmeneses/RobustHaven.IntegrationTests#step-5-ci-setup-resultdiff)

例如:修改意味着业务和开发人员之间的Gherkin语句不匹配--我们需要讨论什么变化吗?

少了什么?用于呈现由.json创建的ResultDiff文件的仪表板。在我的积压中..。有了一个支持多个环境(代码分支)的集中式仪表板,这个仪表板将为所有涉众(业务、开发人员)提供服务,正在开发的特性的状态如何。

票数 1
EN

Stack Overflow用户

发布于 2014-12-10 08:48:53

在selenium的testng之上,有一个名为"omelet“的框架,它是在java中构建的,用于跨浏览器的多并行测试,它很容易与您的CI工具混合,并且具有一些与步骤级报告相结合的酷报告特性。

在BrowserStack和Grid上运行您的测试用例从来没有像在配置更改很少的煎蛋卷上那样容易。

如果您想试一试,那么请按照网站上提供的5分钟教程,在maven central +上有可用的原型,还有更多可用的功能

稳定的版本是1.0.4,我们目前正在寻找对项目作出贡献的人。

这里上的文档

Github 链接

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20860148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档