我正在尝试构建一个jmeter测试计划,其中所有测试值都是从csv数据文件发送的。我想在运行时处向我的HTTP请求添加断言(在数据文件中提供)并执行考试。这样做的原因是根据断言的数量保持计划的灵活性。在我的例子中,断言在运行时添加;但他们没有被执行。我是否可以知道如何在同一流程中添加和执行组件? 例如:计划的一部分如下:
XYZ --HTTP采样器 - 响应断言1 - 响应断言2 - JSON Extractor
其中XYZ - >基于关键字的事务控制器(可重用组件) 每次我收到XYZ类型的请求时,都会执行这一部分组件。就我而言,我不想在测试计划中放置断言,前/后处理器,提取器等任何内容。我想在运行时生成这些组件并执行它们(根据我的测试要求)。
问题:这里的问题是我无法以编程方式加载组件并在同一个流程中执行。原因是,编译器事先并不知道它需要执行的所有组件,因此它会绕过新添加的组件。
所以,我需要一些替代解决方案来执行此操作。
答案 0 :(得分:0)
您可以使用Pattern添加Response Assertion(或多个)来测试填充变量// replace apostrophe (') or words without possessive contraction ('s) (Watch, video) with empty string
preg_replace("/(?:'|\s?\b\w+\b\s?)(?!'s)/", "", "Watch Sidney's video") // => Sidney
并将该变量默认设置为空,例如
将${testAssert1}
名称testAssert1放入空值。
您的断言将一直通过,直到您在运行时将变量设置为不同的值,例如使用User Defined Variables
预处理器。