使用restsharp调用在VS中运行编码的Web测试

时间:2012-11-12 21:32:35

标签: c# visual-studio-2010 web-testing

我有一个测试库,可以处理基本的响应处理,例如使用Restsharp发送和解析请求。因此,对于我编写的大多数测试,我只需要执行类似

的操作
ServiceClient client = ServiceProvider.GetClient();
IRestResponse r = client.createItem(item);
Item i = r.data;

等,并且拾取并处理了用于创建和获取等的正确API

我想创建一个Web测试来运行性能测试,并想知道我是否可以使用相同的库来处理对我的请求,并让visual studio知道请求。或者我是否必须使用WebTestRequest类进行调用,以便VS可以拦截它们并适当地返回结果?

1 个答案:

答案 0 :(得分:0)

有两种选择:

(1)两者中较简单的方法是在Visual Studio中使用现有代码单元测试。这只需要添加一些特定的单元测试代码。单元测试可用于负载测试。要获取请求的时间,您可以将每个需要定时的事物换行,如下所示,结果将显示在负载测试结果中:

TestContext.BeginTimer("createItem");
IRestResponse r = client.createItem(item);
TestContext.EndTimer("createItem");

(2)将测试代码转换为Visual Studio 编码Web测试。正如您所猜测的那样,这将是更多的工作,因为Restsharp不是很好地隐藏和处理所有请求细节,您将不得不使用WebTestRequest类。换句话说,你会失去Restsharp的所有好处。 Web测试确实具有更好的性能,因为执行引擎使用线程池进行异步处理,但除非您因负载生成而受硬件限制,否则这不是真正的问题。