如何在.NET中自动执行Web代理以进行单元测试(包括设置和拆卸)?

时间:2020-03-06 14:45:45  来源:igfitidea点击:

遵循乔纳森·霍兰德(Jonathan Holland)在对我先前的问题的评论中的建议:.NET中是否可以通过任何方式以编程方式侦听HTTP流量?对于我真正想知道的内容,我做了一个单独的问题(但并非完全重复):

如何在.NET中自动化Web代理进行单元测试(包括设置和拆除),以监视来自浏览器的HTTP流量(特别是请求页面上的图像,脚本和XmlHttpRequests)?

我更喜欢设置为零(因此Windows上没有安装Fiddler),可以将所有内容从程序集中解包,部署,然后无痕地删除,可以这么说。

解决方案

滚动我们自己的传递代理,然后在代理的管理端口上让测试工具发布配置命令。代理将以最小的"设置"尽职地将任何普通连接路由到指定的ip:port。

如果要控制类似浏览器的请求,并查看从受刺激的Web浏览器到本地主机的请求和标头,则可以使用System.Net.WebClient

如果要使用完整的代理检测的.NET解决方案,请查看以下MSDN文章:http://msdn.microsoft.com/zh-cn/magazine/cc300743.aspx。它说明了如何与Fiddler之类的代理集成

在使用任何这些解决方案之前,我强烈建议我们检查单元测试以及要完成的工作。完整的代理解决方案通常超出了单元测试的范围,我们可能需要缩小测试范围。

但是,如果我们正在编写集成测试,那么这些解决方案应该可以为我们提供良好的服务。

我不确定这是否是我们要寻找的东西,但这是使用硒的ASP.NET单元测试的示例。
http://www.stevetrefethen.com/blog/AutomatedTestingOfASPNETWebApplicationsUsingSelenium.aspx

WebAii 2.0具有内置的HTTP代理:

http://www.artoftest.com/community/blogs/09-03-25/WebAii_2_0_Beta_Released.aspx