zoukankan      html  css  js  c++  java
  • JMeter 系列之—-05 支持CI扩展

    思路

    1. 配置Jenkins,设置入参(jmx_name,JthreadNum,JtestTime),设置ant触发测试执行
    2. 新建build.xml文件,组织测试执行,其中用到步骤1中设置的参数;
    3. Jmeter脚本中配置使用这些外部变量
    4. 将Jmeter脚本文件上传到svn对应目录,Jenkins触发测试执行

    实现

    1. Jenkins配置

    设置入参
    -jmx_name
    -thread_num=50
    -test_time=120

    设置ant触发测试执行

    2. Ant配置--build.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <project name="jmeter_test" default="run" basedir="."> 
    	<tstamp> 
    		<format property="time" pattern="yyyyMMddhhmm"/> 
    	</tstamp>  
    	<!-- 需要改成自己本地的 Jmeter 目录-->  
    	<property name="jmeter.home" value="D:javaapache-jmeter-5.2.1"/>  
    	<!-- 生成的报告的前缀 -->  
    	<property name="JobName" value="${jobName}"/>
    	<!-- jmeter生成jtl格式的结果报告的路径-->  
    	<property name="jmeter.space.dir" value="D:javaapache-jmeter-space/${JobName}_${time}/"/>  
    	<property name="jmeter.result.jtlName"  value="${jmeter.space.dir}/${JobName}.jtl"/>  
    	<property name="jmeter.result.htmlName" value="${jmeter.space.dir}/${JobName}.html"/> 
    	<target name="run" depends="test,report"/>
    
    	<target name="test"> 
    		<copy todir="${jmeter.space.dir}/script"> 
    			<fileset dir="script"> 
    				<include name="${JobName}.jmx"/>  
    			</fileset> 
    		</copy> 
    		<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>  
    		<jmeter 
    			jmeterhome ="${jmeter.home}" 
    			testplan ="${jmeter.space.dir}/script/${JobName}.jmx"  
    			resultlog ="${jmeter.result.jtlName}"> 
    			<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->  
    			<property name="jmeter.save.saveservice.output_format" value="xml"/> 
    			<jmeterarg value="-JthreadCount=${threadNum}" />
    			<jmeterarg value="-Jduration=${randmpUp}" />
    			<!-- 加入jmeter的参数,这样可以根据需要生成jmeter的CSV报告,需要设置 jmeter.save.saveservice.output_format的value=csv
          <jmeterarg value="-e" />
          <jmeterarg value="-o${jmeter.space.dir}" />
          -->
    		</jmeter> 
    	</target>  
    	<path id="xslt.classpath"> 
    		<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>  
    		<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/> 
    	</path>  
    	<target name="report"> 
    		<tstamp>
    			<format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/>
    		</tstamp>  
    		<xslt classpathref="xslt.classpath" 
    			force="true" 
    			in="${jmeter.result.jtlName}" 
    			out="${jmeter.result.htmlName}" 
    			style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"> 
    			<param name="dateReport" expression="${report.datestamp}"/> 
    		</xslt>
    
    		<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->  
    		<copy todir="${jmeter.space.dir}/"> 
    			<fileset dir="${jmeter.home}/extras"> 
    				<include name="collapse.png"/>  
    				<include name="expand.png"/> 
    			</fileset> 
    		</copy> 
    				<!-- 手动拷贝 -->  
    		<copy todir=""> 
    			<fileset dir="${jmeter.space.dir}"> 
    				<exclude name="script"/>  
    			</fileset> 
    		</copy> 
    	</target> 
    </project>
    

    3. Jmeter配置--脚本中使用外部变量

    {__P(,)}函数用于接收系统传递的参数,格式为:{__P(外部变量名,默认值)}。

    1. 上传脚本测试执行
      控制台输出

  • 相关阅读:
    cmake安装配置及入门指南
    【算法篇】栈和队列专题之广度优先遍历和深度优先遍历
    【算法篇】链表专题
    【Android】JDK8标准下计算两个日期的时间差
    【MatLab】图片的拼接、滤色
    【C#】Winform开发笔记(持续更新)
    【Java】解决中文在post/get请求乱码的问题
    【C#】基于TCP的简单通信系统
    【Java】IDEA创建Web项目以及Tomcat配置
    【Java】模拟登录教务网并获取数据
  • 原文地址:https://www.cnblogs.com/liuyitan/p/13051099.html
Copyright © 2011-2022 走看看