0

我有一个测试库来处理基本的响应处理,比如使用 Restsharp 发送和解析请求。所以对于我写的大多数测试,我只需要做类似的事情

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

等,以及用于创建和获取等的正确 API 被拾取和处理

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

4

1 回答 1

0

有两种选择:

(1) 两者中较简单的是在 Visual Studio Unit Tests中使用您现有的代码。这只需要添加一些特定的单元测试代码。单元测试可用于负载测试。要获得请求的时间,您将按如下方式包装每个需要计时的东西,结果将显示在负载测试结果中:

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

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

于 2013-02-25T05:27:03.770 回答