繁体   English   中英

测试ASP.NET webforms应用程序

[英]Testing ASP.NET webforms applications

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

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

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

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

有没有人有类似的经历?

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

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

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

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

  1. 选择一个IOC容器 - 我个人喜欢Ninject
  2. 找到一个方便的位置,将“服务”类注入您的页面(基页面类的构造函数或覆盖加载页面的模块,对您有用)
  3. 选择一个单元测试框架,如果你没有自动构建,那么设置一个; 包括在该构建中运行一整套单元测试
  4. 每次在aspx.cs文件中接近一段逻辑时,看看你是否无法在服务中隔离它并围绕它进行单元测试
  5. 看看MVP模式是否对你有好处 - 我们发现它降低了生产力,同时提高了可测试性(它确实做了很多),但它适用于某些人
  6. 了解如何慢慢将您的应用迁移到MVC, 如有必要一次一页

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

您的应用程序的哪个部分正在破坏? 用户界面还是业务逻辑?

业务逻辑应与用户界面完全分离,并应单独测试。 特别是,对分离的业务逻辑使用自动化单元测试工具比对UI更容易。

如果我很严格,那么您需要一个大型Web表单,并希望每次执行新版本时都运行一些标准的最终用户测试。

我可以为firefox推荐Selenium IDE adon

它将允许您记录您的用户操作,例如填写表单,并允许您随时重播这些操作。 在具有不同数据的表单上运行某些测试的简单方法。

对于内部代码测试,使用NUnit编写一些单元测试

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM