Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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# 如何根据某个比率执行代码?_C#_Asp.net_Visual Studio_Performance - Fatal编程技术网

C# 如何根据某个比率执行代码?

C# 如何根据某个比率执行代码?,c#,asp.net,visual-studio,performance,C#,Asp.net,Visual Studio,Performance,我知道标题可能不会让你明白。让我在这里解释一下 我在visual studio中有一个测试用例(负载测试)。要求是,它必须根据web.config文件中给出的分配访问不同的url 在web.config中,我有一组值 <appSettings> <add key="Allocation1" value="20"/> <add key="Allocation2" value="80"/> </appSettings> 运行测试时,我希望访问第一

我知道标题可能不会让你明白。让我在这里解释一下

我在visual studio中有一个测试用例(负载测试)。要求是,它必须根据web.config文件中给出的分配访问不同的url

在web.config中,我有一组值

<appSettings>
<add key="Allocation1" value="20"/>
<add key="Allocation2" value="80"/>
</appSettings>

运行测试时,我希望访问第一个url 20%和第二个url 80%。表示如果第一个url选择了2次,则应选择下一个8次的第二个url


有人能提供一个线索,这是可以实现的吗?有线索吗

如果有大量迭代,我将基于随机值实现它。基本上

  • 生成一个介于0和100之间的随机数:

    var rnd = new Random();
    var number = rnd.Next(0, 100);
    
  • 检查数字是否高于或低于您的第一个阈值

    if(number <= allocation1)
        [[call URL 1]];
    else
        [[call URL 2]];
    
    编辑: 对于两个以上的百分比,请使用更多条件

    if(number <= allocation1)
        [[call URL 1]];
    else if(number <= allocation1 + allocation2)
        [[call URL 2]];
    else
        [[call URL 3]];
    

    if(数字
    意味着如果第一个url选择了2次,那么接下来的8次第二个url应该被选择。
    之后会发生什么?之后我有一个代码可以完成其余的功能。现在随机选择url和rest功能工作正常。具体来说,你有什么问题吗?从配置f读取ile?运行一些代码X次(但这只是循环的
    for
    对吗?)还有什么?虽然我同意大数定律,但这里似乎没有什么理由引入随机化。OP试图执行一个特定的分布。随机化最多不会显著改变分布。但它有机会这样做,最坏的情况是。@leonard_deutsch,好的,如果我是givi,结果会是什么ng 3值而不是2..30%、30%、40%
    if(number <= allocation1)
        [[call URL 1]];
    else if(number <= allocation1 + allocation2)
        [[call URL 2]];
    else
        [[call URL 3]];