命令行下使用JMeter测试

非GUI模式:

-n 制定JMeter运行在non-gui模式下

-t 包含测试计划的JMX文件的名称

-l 用于记录简单结果的JTL文件名称

./ApacheJMeter -n -t test.jmx -l log.jtl

测试计划文件可以使用图形界面下设置的计划,保存的jmx文件,
可以修改文件中的参数,改变测试计划


多个jmeter命令行实例需要注意的 收藏

如果用jmeter通过命令行(无图形界面)执行测试脚本,可参见jmeter最简单使用,并且启动多个jmeter实例,肯定会报地址端口已占用:

    Waiting for possible shutdown message on port 4445
    java.net.BindException: Address already in use
            at java.net.PlainDatagramSocketImpl.bind0(Native Method)

这个配置在jmeter的bin目录下,找到jmeter.properties这部分:

    # If running non-GUI, then JMeter listens on the following port for a shutdown message.

    # To disable, set the port to 0.

    #jmeterengine.nongui.port=4445

是用于监听shutdown message的,如果不需要,可以直接设置为0即可。

另外,说一下为什么要启动多个jmeter实例,而不是一个实例跑全部的并发线程。这是因为JVM性能上考虑,跑一个的话,垃圾回收和对象处理都比多个要慢一些。

在linux下,jmeter对虚拟机的配置在bin/jmeter文件中,见:

    HEAP="-Xms512m -Xmx512m"

建议可以改小一些,比如我们当前的一个测试,可以改到128即可。但是要注意,初始和最大堆内存要设置一样了。因为是测试,要一家伙把内存申请足了,否则可能导致频繁的垃圾回收以及申请新内存。

你可能感兴趣的:(jvm,linux,虚拟机,.net,脚本)