JMeter - 使用jar的输出来加载测试

时间:2013-10-23 13:53:48

标签: java jmeter

我想使用JMeter来测试Java服务。但是,我想要测试的URL必须是动态生成的(时间戳,有效负载哈希等)。我创建了一个自动执行jar,输出一个有效的URL。

java -jar file.jar

http://www.example.com/api?params=...

URL会更改每次迭代。有没有办法我可以配置JMeter来运行Jar来获取它所做的每个HTTP请求的URL?谢谢!

3 个答案:

答案 0 :(得分:1)

您需要结合使用以下内容:

  1. OS Process Sampler(生成实用程序JAR)
  2. Regular Expression Extractor(获取生成的网址)
  3. 详细说明:

    假设系统路径中有java二进制文件,则需要以下内容:

    在Thread Group下添加OS Process Sampler

    • 将命令设置为 java (完全确定类型为java二进制文件的完整路径,即“d:\ apps \ java6 \ bin \ java.exe”)
    • 在命令参数下添加以下内容: -jar * your.jar *每个分离线,同样最好使用jar的完整路径。
    • 在与OS Process Sampler相同的级别添加View Results Tree侦听器

    如果您运行Thead Group,您应该看到以下内容:

    系统调用完成。 流程输出: http://example.com/api?params= ....

    我相信你对“params =”

    之后的某些事情感兴趣

    因此,获取此值会将正则表达式提取器后处理器添加为OS Process sampler的子级,其中包含以下详细信息:

    • 参考名称 - 变量的任何有意义的名称,让它为“params”
    • 正则表达式 - http://www.example.com/(。*)
    • 模板 - $ 1 $

    这将提取api?params = ...因此您将能够将其用作HTTP请求的路径,如$ {params}

答案 1 :(得分:0)

要在JMeter中运行jar文件,请将JAR文件和所有依赖项放在{JMeter_HOME} / lib / ext文件夹中。在线程组中添加BeanShell Sampler以从Java类调用方法。

答案 2 :(得分:0)

您的jar不必位于JMeter的lib / ext文件夹中。适用于任何目录