Jmeter - Ant - NoHttpResponseException

时间:2014-06-09 14:33:43

标签: ant jmeter

我有一个JMeter测试,我已经使用超过6个月。 目前我一直在非GUI模式下通过命令行(无ANT)运行它。

这是我通过命令行运行时所做的事情

"%JMETER_HOME%\bin\jmeter.bat" -n -t %TESTNAME% -p %PROPPATH% -l %RESULTPATH% -j %LOGPATH% -Djmeter.save.saveservice.output_format=xml -Djmeter.save.saveservice.thread_counts=true

我最近想过使用Ant。每当我运行相同的测试时(当然测试同一个应用程序) - 我得到以下错误。

Non HTTP response code: org.apache.http.NoHttpResponseException - Non HTTP response message: The target server failed to respond

应用程序没有问题,应用程序运行正常 - 日志中没有例外。 如果我不使用Ant - 错误就会消失。我一次又一次地尝试 - w / Ant&没有蚂蚁 - 5次。 当我使用Ant时,我会始终得到错误。

我总是以XML格式保存结果,传递相同的属性文件。没有其他差异。

这是来自我的Ant构建文件。

    <jmeter
        jmeterhome="${jmeter.home}"
        testplan ="${test.path}/${test.name}.jmx"
        resultlog="${test.result.path}/${test.name}.jtl"
        jmeterproperties="${test.properties}/${property.file.name}.properties"
        jmeterlogfile="${test.result.log}/jmeter.log"
        >
        <property name="jmeter.save.saveservice.output_format" value="xml"/>
        <property name="jmeter.save.saveservice.assertion_results" value="all"/>
        <property name="jmeter.save.saveservice.thread_counts" value="true"/>
        <property name="jmeter.save.saveservice.bytes" value="true"/>
        <property name="file_format.testlog" value="2.1"/>
        <property name="jmeter.save.saveservice.response_data.on_error" value="false"/>
        <property name="includecontroller.prefix" value="${basedir}/test/modules/"/>
    </jmeter>

我不知道这里有什么问题。

此外,我在Ant面临的问题仅在运行15分钟后才会发生。不是马上。看起来像记忆相关的东西......不确定。

修改::

正如迪米特里所说,这是我有的可用记忆

命令行= 499Mb

Ant = 247Mb

机器中的环境变量

ANT_OPTS = -Xmx1024m -Xms512m 这是我用200个用户运行测试的机器细节。 enter image description here

1 个答案:

答案 0 :(得分:1)

我的期望是你在命令行模式中缺少以下节:

jmeterproperties="${test.properties}/${property.file.name}.properties"

我敢打赌主机是在“.properties”文件下定义的,而命令行模式下的JMeter不会读取此文件。

等效命令行将是-p-q选项。

    -p, --propfile <argument>
            the jmeter property file to use
    -q, --addprop <argument>
            additional JMeter property file(s)

或者,您可以通过-J命令行参数将属性设置为

jmeter -Jproperty1name=property1value -Jproperty2name=property2value -n -t ...

第三个选项是将所有内容放在jmeter.propertiesuser.properties文件中,该文件位于JMeter安装的/ bin文件夹下。

有关详细信息,请参阅Apache JMeter Properties Customization Guide