【问题标题】:Load testing Visual Studio, start up script / setup负载测试 Visual Studio,启动脚本/设置
【发布时间】:2015-09-28 07:19:17
【问题描述】:

我想知道在运行任何负载测试之前是否可以有一个启动脚本?例如,可能是在测试执行之前播种一些数据或清除任何内容。

在我的例子中,我有各种各样的设计师和编码测试。简单地说,我有:

  • 两个coded 测试
  • designer 创建的网络测试指向这些编码测试
  • 运行设计器的load test

我尝试添加一个类并使用属性[TestInitialize()][ClassInitialize()] 进行装饰,但这段代码似乎没有运行。

在实践中展示这一点的一些基本代码(见下文)。有没有一种方法可以让我在测试运行前只运行一次

[TestClass]
public class Setup  : WebTest
{
    [TestInitialize()]
    public static void Hello()
    {
        // Run some code
    }

    public override IEnumerator<WebTestRequest> GetRequestEnumerator()
    {
        return null;
    }
}

可能还应该提到,在我的编码测试中,我添加了这些属性,它们被忽略了。我遇到了一种解决方法,即创建一个Plugin

编辑

在浏览了更多之后,我发现了关于 SO 的 this 文章,其中展示了如何实现 LoadTestPlugin

【问题讨论】:

    标签: c# visual-studio load-testing


    【解决方案1】:

    Visual Studio 提供了一种在测试运行之前和之后运行脚本的方法。它们旨在用于为测试部署数据并在测试后进行清理。这些脚本在“.testsettings”文件的"Setup and cleanup" 页面上指定。

    负载测试插件可以包含在执行任何测试用例之前和之后运行的代码,也可以在测试执行期间的各个阶段运行。该接口是在负载测试执行期间的各个点引发事件。当这些事件发生时,可以调用用户代码。 LoadTestStarting 事件在任何测试用例运行之前引发。请参阅here 了解更多信息。

    【讨论】:

    • 更喜欢插件方法,因为它给了我更多的控制权,我认为它非常简单:)
    【解决方案2】:

    如果您愿意使用 NUnit,您可以为每个测试范围使用 SetUp/TearDown,并为类 (TestFixture) 执行类似操作的 TestFixtureSetUp/TestFixtureTearDown

    【讨论】:

      【解决方案3】:

      可能有点小技巧,但您可以将代码放在测试类的静态构造函数中,因为它会在创建第一个实例或引用任何静态成员之前自动运行一次:

      [TestClass]
      public class Setup  : WebTest
      {
          static Setup()
          {
              // prepare data for test
          }
      
          public override IEnumerator<WebTestRequest> GetRequestEnumerator()
          {
              return null;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多