Visual studio 2013 可以将Specflow场景与Visual Studio 2013负载测试一起使用

Visual studio 2013 可以将Specflow场景与Visual Studio 2013负载测试一起使用,visual-studio-2013,load-testing,specflow,Visual Studio 2013,Load Testing,Specflow,我计划将现有的Specflow场景(目前用于验收和自动测试)也用于VS负载测试,以避免重复和额外的工作。Specflow对于这些测试工作得很好,因为它只运行一次,但在负载测试的上下文中,当它多次执行每个Specflow场景并并行运行时,它会遇到问题和错误,并且随着用户数量的增加,它会得到更多 这些错误可能会导致某些测试失败,最终会产生错误的测试结果,例如,使用一个Specflow场景作为测试场景,负载测试为20个用户,时间段为2分钟,可能会导致50个错误,类似于下面所述。所以测试结果显示,特定场

我计划将现有的Specflow场景(目前用于验收和自动测试)也用于VS负载测试,以避免重复和额外的工作。Specflow对于这些测试工作得很好,因为它只运行一次,但在负载测试的上下文中,当它多次执行每个Specflow场景并并行运行时,它会遇到问题和错误,并且随着用户数量的增加,它会得到更多

这些错误可能会导致某些测试失败,最终会产生错误的测试结果,例如,使用一个Specflow场景作为测试场景,负载测试为20个用户,时间段为2分钟,可能会导致50个错误,类似于下面所述。所以测试结果显示,特定场景执行了200次,其中150次通过测试,50次失败,失败是由Specflow错误引起的。在负载测试中,由于测试本身存在问题,因此该结果是完全错误和不正确的

错误消息:

ScenarioTearDown threw exception. System.NullReferenceException: System.NullReferenceException: Object reference not set to an instance of an object.
TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.HandleBlockSwitch(ScenarioBlock block)
TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.Step(StepDefinitionKeyword stepDefinitionKeyword, String keyword, String text, String multilineTextArg, Table tableArg)
TechTalk.SpecFlow.TestRunner.Then(String text, String multilineTextArg, Table tableArg, String keyword)

经过一些调查,似乎Specflow无法生成和运行相同的场景并行,这导致了冲突,并导致一些测试失败,但我对此也有一些疑问,并试图看看是否有任何解决方法,或者我是否遗漏了什么,并想知道Specflow场景是否可以用于负载测试

我理解您希望重用您的测试进行负载测试(不要重复您自己的测试),但是负载测试的目的与验收测试截然不同。负载测试应该采取现实的日常使用场景,并向它们抛出越来越多的用户。因此,我敦促您将负载测试与验收测试和自动测试分开。他们真的在测试不同的东西

负载测试应该在每天高使用率的情况下测试应用程序的性能,验收和自动测试确保应用程序按照规范运行

负载测试是对系统或设备提出要求并测量其响应的过程。负载测试用于确定系统在正常和预期峰值负载条件下的行为。它有助于确定应用程序的最大操作容量以及任何瓶颈,并确定导致降级的元素

资料来源:

验收测试是对软件产品行为的正式描述,通常表示为示例或使用场景。。。对于许多敏捷团队来说,验收测试是功能规范的主要形式;有时业务需求的唯一正式表达。在其他情况下,它们仅仅是对不太具体的敏捷技术或形式主义(如用例或更多叙述性文档)产生的规范文档的补充

资料来源:

它们是不同的东西,所以测试和测试框架也应该不同。通过为负载测试保留单独的套件,您并不是真正的“重复您自己”


至于失败的技术原因是什么?SpecFlow在使用普通Visual Studio测试运行程序运行时,不是为并行运行测试而构建的。也有类似的测试运行程序,但大多数都是付费软件。

你问题的标题没有多大意义。你所说的“未分类”是什么意思?另外,你能发布错误消息和完整的堆栈跟踪吗?你能更详细地描述一下你的SpecFlow测试是如何运行的吗?@GregBurghardt,很抱歉让你感到困惑。我试图缩小这个问题的范围。我还把所有关于错误和堆栈的信息都放进去了。不幸的是,它没有给我更多的信息。干杯,我看标题已经更正了。我想我理解你现在的要求。谢谢。我想他这样问是因为VS负载测试由.webtest类型组成,它基本上是一个HTTP请求流(非常类似于SOAPUI),可以用作功能/验收测试,然后用于直接从功能套件构建负载测试。