模块化JMeter测试?

时间:2011-03-22 23:38:25

标签: java jmeter load-testing

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

我正在寻找的是“从文件添加测试项目”,以便我可以添加登录代码。

我们还有像connectionID这样的东西,需要在每次请求时传递。有没有jMeter可以自动用Jmeter变量替换它的所有出现? Atm代理记录器记录实际的连接字符串,我们必须用$ {connectionID}手动替换它。还有更好的方法吗?

6 个答案:

答案 0 :(得分:6)

这对我来说很好。

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

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

我在Simple Controller中放了一个Simple Controller来添加冗长的db测试。这最终成为

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

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

这都是股票Jmeter 2.3。如果您所处的环境无法安装插件,则可以正常工作。我从未尝试过它们

HTH

答案 1 :(得分:2)

就自动替换连接ID而言,据我所知,还没有一种方法可以通过GUI实现。但是,测试脚本是简单的XML文件,因此编写一个sed或awk脚本来替换它是非常容易的。

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

如果您开始新的测试计划,请右键单击测试计划,然后添加 - >测试片段 - >测试片段这将添加容器,然后您可以添加其他请求并在上述Include元素中使用此块。

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

答案 2 :(得分:2)

通过使用以下Jmeter元素,我们可以模块化测试脚本。

  1. 测试片段
  2. 模块控制器
  3. 参数化控制器
  4. 包含控制器
  5. 请查看此内容以了解更多详情&实例

    http://www.testautomationguru.com/jmeter-modularizing-test-scripts/

答案 3 :(得分:1)

我知道2个选项:

  1. 模块控制器
  2. 参数化控制器

答案 4 :(得分:0)

  

我正在寻找的是“从文件添加测试项目”,以便我可以添加登录代码。

听起来您可能希望在自己的自定义Samplers或Config Elements中封装一些重复的逻辑。有writing plugins to JMeter on the project page的指南。

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

答案 5 :(得分:0)

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

  

@echo

     

JMeter -n -t MyTestPlan1.jmx

     

JMeter -n -t MyTestPlan2.jmx

我同意@matt的另一种方式是你可以编写插件来满足你的需求。