Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Visual studio 如何每小时运行一次负载测试场景?_Visual Studio_Mstest_Load Testing - Fatal编程技术网

Visual studio 如何每小时运行一次负载测试场景?

Visual studio 如何每小时运行一次负载测试场景?,visual-studio,mstest,load-testing,Visual Studio,Mstest,Load Testing,我有几个场景的负载测试,运行了12个小时。 我想添加另一个场景,由10个虚拟用户每小时运行一次 我使用的丑陋解决方案是增加12个场景,每个场景都有自己的“延迟启动”,间隔1小时。 这是一个丑陋的解决方案 如何让特定场景每小时运行一次。 注意:在这种情况下,我不需要它每小时运行一次。主要思想是让任务每小时运行+/-次。我建议对两种情况进行负载测试,一种是针对主要用户负载,另一种是针对每小时10次的用户情况。然后安排在每小时开始时将10个用户的虚拟用户(VU)数设置为10,并根据需要减少。问题没有说

我有几个场景的负载测试,运行了12个小时。 我想添加另一个场景,由10个虚拟用户每小时运行一次

我使用的丑陋解决方案是增加12个场景,每个场景都有自己的“延迟启动”,间隔1小时。 这是一个丑陋的解决方案

如何让特定场景每小时运行一次。
注意:在这种情况下,我不需要它每小时运行一次。主要思想是让任务每小时运行+/-次。

我建议对两种情况进行负载测试,一种是针对主要用户负载,另一种是针对每小时10次的用户情况。然后安排在每小时开始时将10个用户的虚拟用户(VU)数设置为10,并根据需要减少。问题没有说明10个用户测试每小时运行多长时间

实现这一点的基本方法是在负载测试心跳插件中修改
m_loadTest.Scenarios[N].CurrentLoad
,以获得合适的
N
。正如其名称所示,心跳在测试过程中经常被调用。因此,安排它检查测试的运行时间,并在每小时开始时分配
m_loadTest.Scenarios[N].CurrentLoad=10
,不久后将其设置回
0
(即零)。我认为,将该值设置为比其先前值更小的值,可以让VU执行的单个测试自然结束,但VU不会启动超过该值的新测试

插件代码可能类似于以下内容(未经测试):

public类TenUserLoadtPlugin:ILoadTestPlugin
{
const int durationOf10UserTestInSeconds=…;//未在问题中指定。
const int scenarioNumber=…;//通过实验确定此值。
公共void初始化(LoadTest LoadTest)
{
m_loadTest=负载测试;
//注册以侦听心跳事件
Heartbeat+=新的事件处理程序(loadTest\u Heartbeat);
}
void loadTest_Heartbeat(对象发送方,HeartbeatEventArgs e)
{
int secondsWithinCurrentHour=e.ElapsedSeconds%(60*60);
int loadWanted=secondsWithinCurrentHour>10用户测试秒的持续时间?0:10;
m_loadTest.Scenario[scenarioNumber].CurrentLoad=loadWanted;
}
载荷试验m_载荷试验;
}

有几个关于这个主题的变化的网页。搜索诸如“Visual Studio自定义加载模式”之类的术语。请参见示例。

谢谢。这就是我一直在寻找的。
public class TenUserLoadtPlugin : ILoadTestPlugin
{
    const int durationOf10UserTestInSeconds = ...; // Not specified in question.
    const int scenarioNumber = ...; // Experiment to determine this.

    public void Initialize(LoadTest loadTest)
    {
        m_loadTest = loadTest;

        // Register to listen for the heartbeat event

         loadTest.Heartbeat += new EventHandler<HeartbeatEventArgs>(loadTest_Heartbeat);
    }

    void loadTest_Heartbeat(object sender, HeartbeatEventArgs e)
    {
        int secondsWithinCurrentHour = e.ElapsedSeconds % (60*60);
        int loadWanted = secondsWithinCurrentHour > durationOf10UserTestInSeconds ? 0 : 10;

        m_loadTest.Scenarios[scenarioNumber].CurrentLoad = loadWanted;
    }

    LoadTest m_loadTest;
}