Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MS负载测试项目中的条件逻辑_C#_Asp.net_Visual Studio_Asp.net Web Api_Load Testing - Fatal编程技术网

C# MS负载测试项目中的条件逻辑

C# MS负载测试项目中的条件逻辑,c#,asp.net,visual-studio,asp.net-web-api,load-testing,C#,Asp.net,Visual Studio,Asp.net Web Api,Load Testing,好吧,我卡住了。我有一个Web API,我使用VS集成负载测试项目对其进行基准测试。不过有一个问题,我需要条件逻辑。例如: 如果Svc1返回param1,则下一个请求应转到Svc2 我使用ExtractionRule从web API调用中提取参数,如果存在,则将其添加到Context和LoadTestUserContext中。代码如下: public override void Extract(object sender, ExtractionEventArgs e) {

好吧,我卡住了。我有一个Web API,我使用VS集成负载测试项目对其进行基准测试。不过有一个问题,我需要条件逻辑。例如:

如果Svc1返回param1,则下一个请求应转到Svc2

我使用ExtractionRule从web API调用中提取参数,如果存在,则将其添加到Context和LoadTestUserContext中。代码如下:

    public override void Extract(object sender, ExtractionEventArgs e)
    {
        var serializer = new JsonNetSerializer();
        var str = e.Response.BodyString;
        var result = serializer.Deserialize<SpinResult>(str);
        if (result.BonusRemainingTrials > 0)
        {
            e.WebTest.Context.Add("bonus", result.BonusRemainingTrials);
            var userContext = (LoadTestUserContext)e.WebTest.Context["$LoadTestUserContext"];
            userContext["bonus"] = result.BonusRemainingTrials;
            e.Success = true;
        }
    }
下面是测试条件逻辑:

一切正常,直到服务器返回参数,在此之后,负载测试应该调用第二个服务Svc2,这不会发生。无论是否分配了奖金参数,测试都会调用Svc1。有人帮我解释为什么这么顽固吗


非常感谢。

您是否使用单元测试进行负载测试?或者在哪里检查您放入TestLoadContext的参数?如果使用单元测试,是否将负载测试上下文参数适当地传递给单元测试@这不是标准的单元测试。这是负载测试。该参数正在webtest中检查,请参见上图。因此,该参数由服务器返回。为什么不为webtest生成代码并对其进行调试?您知道如何在不转移到外部项目的情况下调试生成的代码吗。。?谢谢:刚刚找到,右键单击->运行编码的Web性能测试