2011-03-22 80 views
5

我们正在考虑将我们的测试框架迁移到JMeter。我们有50多个测试用例,每个用例都有重复的操作,例如登录和注销。我怎样才能模块化我的方法?模块化JMeter测试?

我在找什么具体是“从文件添加测试项目”,以便我可以例如添加登录代码。

我们还有类似connectionID的事情需要在每个请求上传递。无论如何,jMeter是否可以用Jmeter变量自动替换它的所有出现? Atm代理记录器记录了实际的连接字符串,我们必须手动将其替换为$ {connectionID}。有没有更好的办法?

回答

6

这工作对我很好。

在测试计划底部创建一个新的线程组,并在其中放置一个简单的控制器。在简单的控制器里面放置你想要重复的代码。我使用了两个简单的控制器,但其中一个实际上是一个DB测试用例套件在保持线程组启用的内容的同时,确保将线程组本身设置为禁用,否则将自行重新执行。

现在,在任何特定的测试案例中,添加用户参数并添加模块控制器。模块控制器可以指向您之前制作的简单控制器部分。使用$ {variables}集合来设置简单的控制器,然后通过将变量放在用户参数中,在您正在运行的特定测试内部覆盖它们。因此,您可以使用同一个套件获得不同的变量和测试。

我把一个简单的控制器里面的简单控制器添加冗长的数据库测试。这结束为

线程组>简单控制器>简单控制器> JDBC请求。所有都重新命名。

您可以在测试中的模块控制器中选择不同的模块。我现在有大约六个,但这个重复了几十次。

这是所有与股票Jmeter 2.3。如果你处于一个不能安装插件的环境中,这可以正常工作。我从来没有尝试过

HTH

+1

最近版本(> 2.5)添加了[Test Fragment](http://jmeter.apache.org/usermanual/test_plan.html#test_fragments)控制器来覆盖那些用于模块化的虚拟简单控制器。 – laffuste 2015-08-10 02:09:43

0

我在找什么具体是“从文件中添加测试项目”,以便我可以例如添加登录代码。

听起来像你可能想要在自己的自定义采样器或配置元素中封装一些重复的逻辑。有一个指南writing plugins to JMeter on the project page

这是我们当前的团队处理JMeter模拟自定义RPC格式请求的方法。

+0

可能。我发现“选择另存为”按钮,它可以与“合并”(这只是从中加载选择)一起使用。 – 2011-03-23 01:36:26

0

有一件事是你可以在“noGUI”模型下运行jmeter脚本。您可以指定要运行的jmeter测试脚本,并将它们批量放入.bat文件中。像:

@echo

JMeter的-n -t MyTestPlan1.jmx

JMeter的-n -t MyTestPlan2.jmx

我@马特同意另一种方法是,你可以编写插件以获得您的需求。

1

我知道你2种选择:

  1. 模块控制器
  2. 设定的控制器
2

至于自动更换连接ID,没有,就我所知,一个办法做到这一点通过GUI。但是,测试脚本是简单的XML文件,因此编写sed或awk脚本来替代您可能非常容易。

至于“从这里添加测试文件”部分,在2.6版(不确定其他版本,不使用它们)中,有一个名为“包含控制器”的逻辑控制器,可以加载测试片段。还有能够将称为“测试片段”的测试代码片段保存到他们自己的.jmx文件中。

如果你开始一个新的测试计划,右键点击测试计划,然后添加 - >测试片段 - >测试片段这将添加容器,然后你可以添加你的其他请求,并使用这个块内的上述包含元素。

如果您能够使用最新版本,或者以前的版本支持这个版本,这可能比编写自己的插件更简单。