【问题标题】:fiddlercore to mock responses for testingfiddlercore 模拟响应以进行测试
【发布时间】:2014-03-06 16:04:21
【问题描述】:

我需要在某些测试期间模拟 Web 请求的 Web 响应。我打算为此使用提琴手核心。所以提琴手就像一个代理,我能够为我喜欢的每个请求设置响应。但我需要运行控制台应用程序或独立应用程序之类的东西,以使提琴手核心能够拦截请求。而且我需要在我的 asp.net mvc 测试应用程序中以某种方式对其进行初始化,以便测试人员可以访问这些虚假数据,只需使用 url,而无需运行 fiddler 或任何其他应用程序。

现在我尝试在 Controller 操作方法中运行我的提琴手应用程序,但它没有拦截任何东西。 我也试过加URLMonInterop.SetProxyInProcess("127.0.0.1:"+ myPort, ""),但也没用。

有没有办法自托管 fiddler 核心应用程序并使其拦截请求?

更新: 最后,我设法在 asp.net mvc 应用程序中托管 fiddler 核心。我在静态类的静态方法中进行了初始化,它成功了。另外,由于某种原因,在调用关闭然后再次执行初始化之后,我无法代理任何内容。我什至 cal GC.Collect,没有任何帮助,但刷新主机进程,在我的情况下是 IIS express。

【问题讨论】:

    标签: asp.net asp.net-mvc fiddler fiddlercore


    【解决方案1】:

    如文档所述,SetProxyInProcess 仅影响 URLMon 客户端,而 .NET 不使用 URLMon 进行联网。

    .NET 客户端通常会自动获取当前代理设置,但是如果您在不同的用户帐户中运行 FiddlerCore,那将无法正常工作(并且您可能不希望您的模拟程序弄乱任何流量,除了您的测试应用程序)。因此,您应该明确配置您的应用程序以通过您的 FiddlerCore 实例代理其流量;请参阅 http://fiddlerbook.com/fiddler/help/hookup.asp#Q-DOTNEThttp://fiddlerbook.com/fiddler/help/hookup.asp#Q-IIS 以及您的服务是否在本地 http://fiddlerbook.com/fiddler/help/hookup.asp#Q-LocalTraffic

    【讨论】:

    • 检查链接。感谢您的快速回复,看起来正是我想要的。
    • Eric,是否可以从自身挂钩 asp.net mvc 应用程序?我的意思是在控制器操作方法中添加FiddlerApplication.BeforeRequest 处理程序和FiddlerApplication.Startup。然后在这个应用的其他操作方法中捕获请求?
    • 您的 ASP.NET 应用程序可能可以直接托管 FiddlerCore,但我猜测它可能无法正常工作,因为 ASP.NET 生命周期的方式作品;您可能最终会在每次响应后拆除 FiddlerCore。但这确实是 ASP.NET 大师的问题。
    • 如果我将它保存在会话对象或其他地方怎么办?问题仅在于每次响应后都会清除动作方法中的对象吗?同样,将所有内容创建为静态对象就足够了,因为它们不是按请求处理的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    相关资源
    最近更新 更多