我们希望将部分应用程序外包给外部公司。这些组件向外部网站发出异步请求,并使用html解析器或正则表达式处理内容。
async Task Do()
{
var webContent = await Get("http://...");
var match = Regex.Match(webContent);
if (IsXXX(match))
{
webContent = await Get("http://other...");
}
}
每个组件都不同,有些只做一个请求,有些则做得更多。我们希望确保CPU密集型部件(Regex,Parsing)不会超过100毫秒,并希望在质量保证管道中作为第一步自动测试它。有没有办法在没有等待Web请求的情况下测量性能?
我目前只看到两种解决方案,但想知道是否有更好的方法:
是否有一些内置解决方案?
答案 0 :(得分:1)
模拟IO绑定的Web请求,以立即返回一个HTML字符串,该字符串将采用类似的CPU进行处理。例如。使用return Task.FromResult(XXX)
来获取已完成的任务。然后测量整个方法。
请注意,您可以使用Microsoft Fakes用您自己的方法替换任何内部呼叫。