我已经在C#中为Visual Studio Web性能测试编写了一个性能测试框架。
我编写了一个单元测试类来测试基类,但我还想为每个请求添加一个单元测试,这样我就可以通过添加WebTestPlugin来确保WebTests正常工作以获取响应状态代码。
到目前为止,我一直没有成功,在我脱掉头发之前,我想我会问是否有可能,不幸谷歌没有回答我的问题。
如果需要,我可以提供代码,但只是想象一下为webtest yield return结果编写单元测试。
感谢先进的任何帮助。
如同要求,这是我的代码。
单元测试
public void ContentAuthor_GetToken_GetRequest() {
foreach (WebTestRequest myRequest in (new CWebTestExecutor(m_scenarioData))) {
//TODO: Assert Status Code
}
}
WebTestPlugin& WebtTest执行官
using System.Collections.Generic;
using System.Net;
using Builder.Request;
using Data;
using Library;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace PerformanceTest.Requests.Library.UnitTests {
internal class CWebTestExecutor : WebTest {
private readonly CScenarioData m_scenarioData;
public CWebTestExecutorPlugin WebTestExecutorPlugin;
public CWebTestExecutor(CScenarioData scenarioData) : this() {
m_scenarioData = scenarioData;
}
public CWebTestExecutor() {
WebTestExecutorPlugin = new CWebTestExecutorPlugin();
PreAuthenticate = true;
}
public override IEnumerator<WebTestRequest> GetRequestEnumerator() {
PostRequest += WebTestExecutorPlugin.PostRequest;
yield return new CBuildRequest().BuildStructure(new CRequest().GetToken(m_scenarioData));
}
}
public class CWebTestExecutorPlugin : WebTestPlugin {
public HttpStatusCode PageResult { get; private set; }
public override void PostRequest(object sender, PostRequestEventArgs e) {
PageResult = e.Response.StatusCode;
}
}
}
现在,当执行此操作时,执行程序正常工作且插件已关联,但执行yield return不会触发PostRequest事件,因此无法获取响应状态代码。
如果这不能解释问题,请告诉我,我会尝试提供更多详细信息。