我有一个用于压力测试的功能,我想强调测试多个功能。我在这里进行压力测试的功能是GetParameters(reportUri, SessionContext);
如何添加辅助函数,我可以在其中传递一个参数,如动作体或委托(这很好,但我有多个函数与不同的参数)。它只是动态地替换this.RemoteReportingServiceFactory.CreateReportParameterProvider().GetParameters(reportUri, SessionContext);
来执行所有步骤。除了上面提到的行
public void GetParameters()
{
for (int i = 0; i < 100; i++)
{
Log.Message(TraceEventType.Information, "Start of {0} sequential iteration with 5 parallel stress runs".InvariantFormat(i));
Parallel.For(0, 2, parameterIteration =>
{
Log.Message(TraceEventType.Information, "Stress run count : {0}".InvariantFormat(parameterIteration + 1));
string reportUrl = TeamFoundationTestConfig.TeamFoundationReportPath("TaskGroupStatus");
ReportUri reportUri = ReportUri.Create(reportUrl);
Log.Message(TraceEventType.Information, "ReportUri = {0}".InvariantFormat(reportUri.UriString));
IList<Parameter> parameters = this.RemoteReportingServiceFactory.CreateReportParameterProvider().GetParameters(reportUri, SessionContext);
});
}
}
如果不够清楚,请告诉我。我可以根据请求编辑我的问题
答案 0 :(得分:0)
如何将方法更改为
public void GetParameters(Func<ReportUri, SessionContext, IList<Parameter>> returnStuff)
{
for (int i = 0; i < 100; i++)
{
Log.Message(TraceEventType.Information, "Start of {0} sequential iteration with 5 parallel stress runs".InvariantFormat(i));
Parallel.For(0, 2, parameterIteration =>
{
Log.Message(TraceEventType.Information, "Stress run count : {0}".InvariantFormat(parameterIteration + 1));
string reportUrl = TeamFoundationTestConfig.TeamFoundationReportPath("TaskGroupStatus");
ReportUri reportUri = ReportUri.Create(reportUrl);
Log.Message(TraceEventType.Information, "ReportUri = {0}".InvariantFormat(reportUri.UriString));
IList<Parameter> parameters = returnStuff(reportUri, SessionContext);
});
}
}