2009-09-03 74 views
5

有没有一种模块化JMeter测试的方法。DRY for JMeter测试

我记录了我们的应用程序的几个用例。它们中的每一个都位于同一测试计划中的单独线程组中。为了控制工作流程,我编写了一些在许多这些线程组中使用的基元(例如后处理器元素)。

有没有办法不将这些元素复制到每个线程组中,而是在相同的测试计划中使用某种引用?同样有用的是一种引用来自不同文件的元素的方法。

有没有人有任何解决方法或解决方法。我想我不是唯一一个试图遵循DRY原则的人...

回答

0

你不能用JMeter做到这一点。用户界面不支持它。 Workbench将是存储这些常用元素的理想场所,但它不会保存在JMX中。

但是,您可以参数化几乎任何东西,以便获得类似的效果。例如,我们在几个线程组中使用相同的正则表达式后处理器。尽管我们不能共享处理器,但整个表达式是测试计划中定义的参数,它是共享的。当正则表达式改变时,我们只需要改变一个地方。

他们正在讨论在Jmeter的未来版本中保存Workbench。完成之后,添加一些UI以引用Workbench中的元素是很简单的。

+0

很伤心:-( 在我们的例子中,我们通过webapp的GUI启动了一些异步后台作业,找出作业是否完成的唯一方法是通过jdbc请求轮询数据库。在一个while控制器中,这可能是一个可能导入的参数 – jens 2009-09-03 11:22:39

+0

这就是为什么我们同时使用Grinder和JMeter。JMeter适用于简单的任务,但是Grinder对于这样的事情更加强大。 – 2009-09-03 12:12:13

0

模块控制器是在不同的线程组执行相同的样本非常有用。

可以很容易地在多个线程组中使用相同的断言。

在您的测试计划级别,创建一组名为“Expected_Result_x”的用户定义变量。然后,在您的响应声明中,只需引用变量名称$ {Expected_Result_x}。您仍然需要手动将断言添加到每个需要特定断言的页面,但现在如果断言更改,则只需将其更改为一个位置即可。