有关如何为 ASP.NET 创建 Web 测试的参考
我从事 .net 单元测试等工作已经有一段时间了。 现在我需要为 ascx 和 ascx.cs 页面创建测试(但 aspx 和 aspx.cs 引用也可能有帮助)。 我对网络测试不太熟悉。 任何人都可以提供可能有帮助的提示或参考(教程、有关最佳实践的博客文章等)吗?
它可以是有关使用 VS2008 工具进行测试或使用文本编辑器编写测试代码的参考。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
首先,让我们退后一步,明确您想要通过测试 UI 页面和控件来完成的任务。 您是否只是想看看您的应用程序数据可以在页面/控件中呈现?
根据我的经验,测试 Web UI 层所需的工作量比测试完全分离的业务层和数据层所需的工作量要多一个数量级。 如果您按照可靠的 MVC 模式设计应用程序,则可以轻松地自动测试控制器和模型层,其中包括所有数据访问和业务规则。 这应该使用 MSTest、NUnit 或 XUnit 等来完成。
您的 Web 表示层(即 Web .ASPX 页面和 .ASCX 用户控件)应该通过控制器连接到相同的业务逻辑......这将是已经测试过了。
如果您相信 80/20 规则,在这种情况下,这意味着您的应用程序的 80% 将通过您 20% 的努力进行测试。 对于大多数项目来说,加倍努力对各个页面和控件进行自动化测试是多余的; 相反,我建议仅在 Visual Studio 中创建负载测试,记录基本用例,例如登录、加载几个页面以及与一些页面控件交互。
运行此负载测试以验证应用程序在开发和测试环境中是否正常运行,一旦投入生产,您将需要实际用户来验证一切是否正常工作。
查看有关 ASP.NET MVC2 框架的文档,请单击此处
要 MVC 模式的一般描述单击此处
First, lets take a step back and get clear on what you're trying to accomplish by testing the UI page and controls. Are you just trying to see that your application data can be rendered in a page/control?
In my experience it takes an order of magnitude more work to test the web UI layer than it does to test your nicely separated business and data layers. If you design your application following a solid MVC pattern you can easily automate testing of the Controller and Model layers which include all the data access and business rules. This should be done using MSTest, NUnit, or XUnit, etc.
Your web presentation layer (i.e. web .ASPX pages and .ASCX user controls) should just be hooked in to the same business logic via the controllers...which will have been already tested.
If you believe in the 80/20 rule, in this case it means 80% of your application will be tested with 20% of your effort. Going the extra mile to automate testing of individual pages and controls is overkill for most projects; instead, I recommend just creating a load test in Visual Studio, recording basic use cases such as logging in, loading a few pages and interacting with a few page controls.
Run this load test to verify the application is behaving correctly in your development and test environments, and once in production you'll need actual users to verify that everything is working correctly anyway.
To see documentation on the ASP.NET MVC2 framework click here
To see a general description of the MVC pattern click here
我建议不要测试“ascx 和 ascx.cs”,而是测试向用户显示的 UI 并测试服务/存储库/模块(如果您使用一些良好的模块化架构并且没有在代码隐藏页面中编写所有代码)。 要测试 UI,您可以使用 Selenium RC。 它有很多使用示例:
http ://thetestingblog.com/2009/09/10/selenium-rc-in-c-using-nunit-an-end-to-end-example/
http://www.stevetrefethen.com/blog/AutomatedtestingofASPNETwebapplicationsusingSelenium.aspx
http://codebetter.com/blogs/jeremy。米勒/archive/2006/05/14/144666.aspx
还有一个特殊的.net 工具包。
I recommend not to test "ascx and ascx.cs" but to test the UI that's displayed to user and to test services/repositories/modules (if you are using some good modular architecture and aren't writing all code in codebehind pages). To test the UI you can use Selenium RC. There are a lot of usage samples for it:
http://www.lostechies.com/blogs/agilecruz/archive/2009/02/10/how-to-configure-selenium-rc-for-use-in-c-nunit-tests.aspx
http://thetestingblog.com/2009/09/10/selenium-rc-in-c-using-nunit-an-end-to-end-example/
http://www.stevetrefethen.com/blog/AutomatedtestingofASPNETwebapplicationsusingSelenium.aspx
http://codebetter.com/blogs/jeremy.miller/archive/2006/05/14/144666.aspx
And also there is a special .net toolkit for it.
获取 Fiddler2 的副本。 运行时,它将“记录”您与 ASP.NET 服务器的会话(请求和响应 - 也是由 Visual Studio 在“记录”新的 Web 测试时完成)。 然后,您可以选择请求并将其保存为 Visual Studion Web 测试。
剩下的就是了解 ASP.NET 如何创建和使用请求和响应来控制应用程序。
将您的 Web 测试转换为编码的 Web 测试,并在 microsoft 中搜索 Web 测试使用的每个对象的详细信息以获得额外的积分。
Grab a copy of Fiddler2. When run it will "record" your session with the ASP.NET server (requests and responses - also done by Visual Studio when "recording" a new web test). You can then select the requests and save them as a visual studion web test.
The rest is all about understanding how ASP.NET creates and uses Requests and responses to control the application.
Turn your web tests into coded webtests and search microsoft for details on each object the webtest uses for extra credit.