• 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. 上传脚本测试执行
      控制台输出

  • 相关阅读:
    Azure 虚拟机安全加固整理
    AzureARM 使用 powershell 扩容系统磁盘大小
    Azure Linux 云主机使用Root超级用户登录
    Open edX 配置 O365 SMTP
    powershell 根据错误GUID查寻错误详情
    azure 创建redhat镜像帮助
    Azure Powershell blob中指定的vhd创建虚拟机
    Azure Powershell 获取可用镜像 PublisherName,Offer,Skus,Version
    Power BI 连接到 Azure 账单,自动生成报表,可刷新
    Azure powershell 获取 vmSize 可用列表的命令
  • 原文地址:https://www.cnblogs.com/liuyitan/p/13051099.html
Copyright © 2020-2023  润新知