【问题标题】:automated functional web GUI testing frameworks (asp.net)自动化功能 Web GUI 测试框架 (asp.net)
【发布时间】:2012-10-12 22:07:58
【问题描述】:

我们混合了 ASP.NET 网络表单和即将推出的 MVC 项目;我追求可靠且可维护的 Web GUI 测试工具/框架;目前我们进行了一些 Watin 测试,并且看到 Watin 超过 15 个月没有得到积极的工作,我有点不愿意在这方面进行更多投资,或者我应该这样做吗?

有哪些选择,什么是最好的选择。

- 虽然有限的 Visual Studio 集成似乎是一个不错的选择。

沃廷 - 似乎已经过时并且似乎不能很好地应对现代 JQuery 网站。

Telerik 测试工作室 - 看起来很有前途,有人试过吗?值得吗?

对于 ASP.NET 和可能的 Visual Studio 集成还有其他可行的选择吗?

我知道这个Web testing frameworks for ASP.NET web application 存在一个现有问题,但它并没有真正回答任何问题。

对于绿色领域项目,人们使用什么进行自动化功能 UI 测试。

【问题讨论】:

  • 您想针对多种不同的浏览器运行测试吗?
  • 理想情况下是的,但只要我可以进行全功能测试,就可以只使用一两个浏览器
  • 我们使用 selenium + Nunit。与 Visual Studio 集成的方式并不多,但它似乎是一种广泛使用且支持良好的组合,可运行所有主流浏览器。

标签: asp.net asp.net-mvc testing web-applications user-interface


【解决方案1】:

如果你只想在 IE 中测试,你可以试试IBM Rational Functional Tester。它不支持最新的 Firefox 版本(仅最高 10.6)

您可以从该网站下载 30 天免费试用版。我已经在这里发布了https://sqa.stackexchange.com/questions/4995/reviews-feedback-on-rft

另一个软件是QA Wizard,但我没有直接的经验。

【讨论】:

    【解决方案2】:

    我们还在研究测试我们的网络应用前端的方法。

    目前我们有一些使用无头浏览器 phantomJS 的测试。测试是用 JavaScript 编写的,如下所示:

    (function () {
    
       // require is part of phantom API
       var userName,
           page = require('webpage').create();
    
        page.open("http://<url of page to test>", function (status) {
    
            if (status !== 'success') {
                phantom.exit(1);
            } else {
                // get the text of the DOM element that displays the user name
                userName = page.evaluate(function() {
                    return document.getElementById('userName').innerText;
                });
    
                if (userName !=== 'Guest') {
                    phantom.exit(1);
                }
                phantom.exit();  // Success!
            }
        });
    
    })();
    

    我们在 Jenkins 中使用这样的命令调用它(其中 assert_Username_EqualsGuest.js 包含上面的 JavaScript):

    phantomJS.exe assert_Username_EqualsGuest.js 
    

    我们也有类似的用 powerscript 编写的测试,它使用 System.Net.WebClient 类从 Web 服务器下载动态资源,断言返回的内容,并记录响应时间以跟踪服务器性能随时间的变化。也被 Jenkins 解雇了。

    所以这个答案只是为了让你知道我们目前在做什么,但我们也在研究更好的方法。我很想听听其他人在做什么。

    【讨论】:

      【解决方案3】:

      如果您愿意付费,Telerik Test Studio 是一款非常不错的产品。这是一个很棒的工具,适用于不同的浏览器。它有一个非常易于使用的记录功能,允许您在页面内指向和单击并选择要测试的元素。另一个工具(付费)是Test Complete,它的工作原理非常相似。查看两个产品的视频,文档非常好。

      这些工具的特点是它们无需手动编码,但如果 UI 无法满足您的需求,您也可以编写测试代码。

      【讨论】:

        【解决方案4】:

        这并不能真正直接回答您的问题,但您应该查看 Martin Fowler 的 test pyramid article

        测试金字塔是 Mike Cohn 提出的一个概念,在他的《Succeeding with Agile》一书中进行了描述。其要点是,您应该拥有比通过 GUI 运行的高级端到端测试更多的低级单元测试。

        在我从事的项目中,我们使用各种测试实用程序(NUnit、MBUnit、xUnit 等)实现了单元测试,使用FitNesse 进行了服务(集成)测试,并将 GUI 测试保留为手动任务(尽管如果需要,FitNesse 可以非常接近表示层)。这对我们来说效果很好。

        【讨论】:

          【解决方案5】:

          您使用的是什么版本的 Visual Studio?可能是你有一个高端的,这意味着你可以在 CodedUI 中编写测试脚本,这相对不错,并且可以使用你习惯的类似语言/工具集进行测试。 http://msdn.microsoft.com/en-us/magazine/hh875174.aspx

          如果不是,我会选择使用 .net 绑定的 selenium,它确实是功能最齐全的 Web 自动化工具,您很可能能够以最简单的方式获得帮助。以下网页告诉您如何让 selenium 在 Visual Studio http://www.joecolantonio.com/2012/07/31/getting-started-using-selenium-2-0-webdriver-for-ie-in-visual-studio-c/ 中工作

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-02-25
            • 1970-01-01
            • 1970-01-01
            • 2016-07-09
            • 1970-01-01
            • 1970-01-01
            • 2011-06-11
            • 2010-09-12
            相关资源
            最近更新 更多