测试ASP.NET webforms应用程序

如果您处于我的位置,那么您将拥有一个大型的WebForms应用程序,这些应用程序已经升级为这种无法维护的东西.当您添加新功能并且需要一种廉价的可维护方式来进行某种自动化测试时,事情就会中断.

现在,根据我的理解,正确的做法是尝试构建ASP.NET WebForms中存在的页面和用户控件模型的抽象布局,但是,因为它需要在现有应用程序中进行大量投资,所以它不是选项.

我正在努力并尽可能地推动类似REST的开发,因为它有一些不错的属性.在这样做的过程中,我编写了一个简单的蜘蛛机器人,可以抓取它可以找到并尝试的所有URL,只需获取它们即可.
这使我能够快速找到导致问题的错误数据并避免让我的最终用户点击破碎的东西,这当然是不够的.

我继续处理我的爬虫,它被开发成一个简单的REST客户端,尝试不同的输入组合,寻找可能的错误或崩溃.它更加智能,只是一个详尽的搜索(因为它了解ASP.NET WebForms应用程序层),我的目标是基本上探索Web应用程序的状态,希望能够在我们的用户之前完成所有角落案例.

有没有人有类似的经历?

另外,为你测试大师.这是完全浪费时间,还是我能够在这里真正说出质量问题?从我的角度来看,它似乎达到了一个最佳点,因为它将尝试潜在的最终用户通过浏览器.

正如我之前所说,我们陷入了困境.我们现在需要一种简单的方法.

我们已经尝试过像Selenium这样的东西,但它要求进行大量的额外工作并且我们一直在改变事物,不可能为50种不同的应用程序维护多个硒测试套装.

解决方法

在要实现的所有类型的测试中,就更少的错误和更易维护的代码而言,单元测试是最容易和最有可能产生结果的.在处理自动化集成测试之前,先解决这个问题

>选择一个IOC容器 – 我个人喜欢Ninject
>找到一个方便的地方将“服务”类注入您的页面(基页面类的构造函数或覆盖加载页面的模块,无论哪种方式适合您)
>选择一个单元测试框架,如果你没有自动构建,那么设置一个;包括在该构建中运行一整套单元测试
>每次在aspx.cs文件中接近逻辑时,看看是否无法在服务中将其隔离并围绕它进行单元测试
>看一下MVP Pattern是否对你有好处 – 我们发现它降低了生产力,同时提高了可测试性(它做了很多),但它适用于某些人
>了解将应用程序缓慢迁移到MVC,a page at a time if necessary

请记住,你不会在一夜之间解决这个问题,你没有时间.只要不断提高测试覆盖率,您就会看到长期的好处.

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...