当前位置: 首页 > 知识库问答 >
问题:

JMeter未在ANT中运行

翟兴邦
2023-03-14

我在努力理解这个问题,但无法解决。这是我的问题。

我有ANT_HOMEJMeterC:drive。当我使用ant运行我的project.jmx文件时,它工作得很好。在这里,我将所有的ANT配置放在\extras文件夹下。然而,如果我将相同的设置复制到Jenkins中,那么在build中的jmeter元素下面。未执行xml

        <jmeter
            jmeterhome="${jmeter.home}"
            testplan ="${testpath}/${test}.jmx"
            resultlog="${logpath}/${test}.xml">
        <!--
            <jvmarg value="-Xincgc"/>
            <jvmarg value="-Xmx128m"/>
            <jvmarg value="-Dproperty=value"/>
            <jmeterarg value="-qextra.properties"/>
        -->
            <!-- Force suitable defaults -->
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
            <property name="jmeter.save.saveservice.assertion_results" value="all"/>
            <property name="jmeter.save.saveservice.bytes" value="true"/>
            <property name="file_format.testlog" value="${format}"/>
            <property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/>
        </jmeter>
    </target>

请查找位置的更多详细信息

ANT_HOME=C:\apache-ant-1.9.11 ANT在JMeter路径(这是运行完美)=C:\Jmete\apache-jmetam-4.0\额外的ANT在Jenkins路径(问题)=C:\程序文件(x86)\Jenkins\workspace\JMeter_Run\apache-jmetam-4.0\额外的

下面是完整的构建。无法工作的xml代码段。

<?xml version="1.0"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at
    
       http://www.apache.org/licenses/LICENSE-2.0
    
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<project name="ant-jmeter" default="all">
    <description>

        Sample build file for use with ant-jmeter.jar
        See http://www.programmerplanet.org/pages/projects/jmeter-ant-task.php

    To run a test and create the output report:
        ant -Dtest=script

    To run a test only:
        ant -Dtest=script run

    To run report on existing test output
        ant -Dtest=script report

    The "script" parameter is the name of the script without the .jmx suffix.

    Additional options:
        -Dshow-data=y - include response data in Failure Details
        -Dtestpath=xyz - path to test file(s) (default user.dir).
                         N.B. Ant interprets relative paths against the build file
        -Djmeter.home=.. - C:/Jmeter/apache-jmeter-4.0
        -Dreport.title="My Report" - title for html report (default is 'Load Test Results')
    </description>
    
	<property name="logdir" value="log"/>
	<property name="logpath" value="${user.dir}/${logdir}"/>
    <property name="testpath" value="${user.dir}"/>
    <property name="jmeter.home" value="${basedir}"/>
    <property name="report.title" value="Load Test Results"/>
    
    <!-- Name of test (without .jmx) -->
    <property name="test" value="MockTrading"/>
    
    <!-- Should report include response data for failures? -->
    <property name="show-data" value="n"/>

    <property name="format" value="2.1"/>
    
    <condition property="style_version" value="_21">
        <equals arg1="${format}" arg2="2.1"/>
    </condition>

    <condition property="funcMode">
        <equals arg1="${show-data}" arg2="y"/>
    </condition>
    
    <condition property="funcMode" value="false">
      <not>
        <equals arg1="${show-data}" arg2="y"/>
      </not>
    </condition>

    <!-- Allow jar to be picked up locally -->
    <path id="jmeter.classpath">
        <fileset dir="${basedir}">
          <include name="ant-jmeter*.jar"/>
        </fileset>
    </path>

    <taskdef
        name="jmeter"
        classpathref="jmeter.classpath"
        classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
    
    <target name="all" depends="run,report"/>

    <target name="run">
        <echo>funcMode = ${funcMode}</echo>		
        <delete file="${logpath}/${test}.html"/>
        <jmeter
            jmeterhome="${jmeter.home}"
            testplan ="${testpath}/${test}.jmx"
            resultlog="${logpath}/${test}.xml">
			<!--
            <jvmarg value="-Xincgc"/>
            <jvmarg value="-Xmx128m"/>
            <jvmarg value="-Dproperty=value"/>
            <jmeterarg value="-qextra.properties"/>
        -->
            <!-- Force suitable defaults -->
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
            <property name="jmeter.save.saveservice.assertion_results" value="all"/>
            <property name="jmeter.save.saveservice.bytes" value="true"/>
            <property name="file_format.testlog" value="${format}"/>
            <property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/>
        </jmeter>
    </target>

    <property name="lib.dir" value="${jmeter.home}/lib"/>

    <!-- Use xalan copy from JMeter lib directory to ensure consistent processing with Java 1.4+ -->
    <path id="xslt.classpath">
        <fileset dir="${lib.dir}" includes="xalan*.jar"/>
        <fileset dir="${lib.dir}" includes="serializer*.jar"/>
    </path>

    <target name="report" depends="xslt-report,copy-images">
        <echo>Report generated at ${report.datestamp}</echo>
    </target>

    <target name="xslt-report" depends="_message_xalan">
        <tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/></tstamp>
        <xslt
            classpathref="xslt.classpath"
            force="true"
            in="${logpath}/${test}.xml"
            out="${logpath}/${test}.html"
            style="${basedir}/jmeter-results-detail-report${style_version}.xsl">
            <param name="showData" expression="${show-data}"/>
            <param name="titleReport" expression="${report.title}"/>
            <param name="dateReport" expression="${report.datestamp}"/>
        </xslt>
    </target>

    <!-- Copy report images if needed -->
    <target name="copy-images" depends="verify-images" unless="samepath">
        <copy file="${basedir}/expand.png" tofile="${logpath}/expand.png"/>
        <copy file="${basedir}/collapse.png" tofile="${logpath}/collapse.png"/>
    </target>

    <target name="verify-images">
        <condition property="samepath">
                <equals arg1="${testpath}" arg2="${basedir}" />
        </condition>
    </target>

    <!-- Check that the xalan libraries are present -->
    <condition property="xalan.present">
          <and>
              <!-- No need to check all jars; just check a few -->
            <available classpathref="xslt.classpath" classname="org.apache.xalan.processor.TransformerFactoryImpl"/>
            <available classpathref="xslt.classpath" classname="org.apache.xml.serializer.ExtendedContentHandler"/>
          </and>
    </condition>

    <target name="_message_xalan" unless="xalan.present">
          <echo>Cannot find all xalan and/or serialiser jars</echo>
        <echo>The XSLT formatting may not work correctly.</echo>
        <echo>Check you have xalan and serializer jars in ${lib.dir}</echo>
    </target>


</project>

下面是输出

C:\Program Files (x86)\Jenkins\workspace\JMeter_Run\apache-jmeter-4.0\extras>ant
Buildfile: C:\Program Files (x86)\Jenkins\workspace\JMeter_Run\apache-jmeter-4.0\extras\build.xml

run:
     [echo] funcMode = false
   [delete] Deleting: C:\Program Files (x86)\Jenkins\workspace\JMeter_Run\apache-jmeter-4.0\extras\log\MockTrading.html
   [jmeter] Executing test plan: C:\Program Files (x86)\Jenkins\workspace\JMeter_Run\apache-jmeter-4.0\extras\MockTrading.jmx ==> C:\Program Files (x86)\Jenkins\workspace\JMeter_Run\apache-jmeter-4.0\extras\log\MockTrading.xml

_message_xalan:

xslt-report:
     [xslt] Processing C:\Program Files (x86)\Jenkins\workspace\JMeter_Run\apache-jmeter-4.0\extras\log\MockTrading.xml to C:\Program Files (x86)\Jenkins\workspace\JMeter_Run\apache-jmeter-4.0\extras\log\MockTrading.html
     [xslt] Loading stylesheet C:\Program Files (x86)\Jenkins\workspace\JMeter_Run\apache-jmeter-4.0\extras\jmeter-results-detail-report_21.xsl

共有1个答案

苏边浩
2023-03-14

最后我发现了这个问题。这是我找到的解决办法。

詹金斯将负责建造。而不是任何子文件夹。应在Jenkins中配置相同的路径-

所有支持的lib和bin文件夹都应该在工作区中,而不创建任何子文件

 类似资料:
  • 我已经有一个名为ant-jmeter-1.1.1的文件,位于路径 。 但是,当我从同一根目录运行ant命令时,出现了一个错误: BUILD 失败的 C:\apache-jmeter-2.13\apache-jmeter-2.13\extras\build.xml:87: 参考 C:\apache-jmeter-2.13\apache-jmeter-2.13\extras\ant-jmeter-1.

  • 我想通过html显示Jmeter结果。html仪表板信息不够丰富,所以我想使用ant解决方案。 < li >我按预期安装了ant < li >我将testplan.jmx复制到C:\ Jmeter _ 4.0 \ Apache-Jmeter-4.0 \ extras < li >我将testplan.jmx更改为Test.jtl < li >我进入了cmd CD C:\ Jmeter _ 4.0

  • 很长一段时间以来,我一直面临一个问题。我想用完整的Jmeter报告创建html。唯一的解决方案是使用蚂蚁,根据一些站点运行jmeter。 我安装了ant 导航到C:\Jmeter_4.0\apache-Jmeter-4.0\extras并复制所有文件(使用ctrl A)(ctrl C) 导航到C:\ant\ant\bin并粘贴所有文件(Ctrl-v) 创建一个新的文本文件并将其命名为Test。文本

  • 我的蚂蚁模型最近某个时候停止工作了。我不知道确切的时间,因为我只是偶尔在这个项目中进行ant构建。我得到以下弹出窗口: 错误仅适用于此项目。我可以从另一个项目运行构建没有问题。 build.xml文件可能非常简单,但仍然会导致错误: 我检查了Eclipse的日志,发现了以下错误: 我使用的是Eclipse 2020-06。我尝试升级到Eclipse 2020-09来解决这个问题,但没有成功。 根据

  • 我是一名承包商,他们正在使用MyEclipse 10.0和Ant进行构建。自从我使用Ant作为构建工具以来已经有很长时间了,因为我主要在Maven上已经有一段时间了。 它们的源代码被分解为多个项目,每个项目都链接回一个具有公共构建的公共项目。由每个项目的构建导入的xml。xml。ant脚本用于与应用程序作战,并使用WebLogic基于java的部署工具在本地和测试环境上进行部署。他们使用的是Web

  • 我需要使用存储在jar文件中的build.xml文件运行ANT构建。这个jar文件在类路径上可用。有没有可能做到这一点,而不爆炸的jar文件,并保存build.xml到本地目录?如果是这样,我该怎么做。 更新: jar文件是一个ant构建项目,其中类路径中的build.xml是通过使用ant库的java程序运行的。前端是一个web应用程序,它作为依赖项加载这个构建项目jar。用户将单击构建应用程序