Jmeter + Ant + Jenkins 接口自动化很细很全!!!

news/2024/7/12 2:25:05 标签: jmeter, ant, jenkins, 持续集成, 接口测试


一、环境准备

1、JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html

2、Jmeter:http://jmeter.apache.org/download_jmeter.cgi

3、Ant:http://ant.apache.org/bindownload.cgi

4、Jenkins:http://jenkins-ci.org/

详细的安装步骤不做介绍

本文使用的是:JDK1.8+apache-jmeter-3.3+apache-ant-1.9.9+Jenkins2.1,需要注意的是除了Jenkins其他工具都需要配置环境变量。

二、jmeter脚本准备

使用Jmeter随便调通一个接口,哪怕没有调通也没有关系,本文使用的msg_eml.jmx


三、build.xml准备

目录结构如下:


build.xml如下:

<?xml version="1.0" encoding="UTF-8"?>    
        
    <project name="ant-jmeter-test" default="run" basedir=".">    
            
        <tstamp>    
            <format property="time" pattern="yyyyMMddHHmm" />    
        </tstamp>    

        <!-- 本地存放报告的路径-->  
        <property name="basedirectory" value="F:\soft_install\apache-jmeter-3.3\Test_msg_eml" />  
        <!-- 本地存放脚本的路径-->  
        <property name="scriptdirectory" value="F:\soft_install\apache-jmeter-3.3\Test_msg_eml" />          
        <!-- 需要改成自己本地的 Jmeter 目录-->      
        <property name="jmeter.home" value="F:\soft_install\apache-jmeter-3.3" />    
        <!-- jmeter生成jtl格式的结果报告的路径-->     
        <property name="jmeter.result.jtl.dir" value="${basedirectory}" />    
        <!-- jmeter生成html格式的结果报告的路径-->    
        <property name="jmeter.result.html.dir" value="${basedirectory}" />    
        <!-- Name of test (without .jmx) -->    
        <property name="test" value="msg_eml"/>    
        <!-- 生成的报告的前缀-->      
        <property name="ReportName" value="TestReport" />    
        <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${test}.jtl" />    
        <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${test}.html" />    
<!-- 修改报告名--> 
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${test}${time}.jtl" />
            
        <path id="xslt.classpath">    
            <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>    
            <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>    
        </path>    
            
        <target name="run">    
            <antcall target="test" />    
            <antcall target="report" />    
        </target>    
            
        <target name="test">    
            <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />    
            
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">    
                 <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->    
                <testplans dir="${scriptdirectory}" includes="${test}.jmx" />    
            </jmeter>    
        </target>    
                
        <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="${basedirectory}/jmeter-results-shanhe-me.xsl">    
                  <param name="dateReport" expression="${report.datestamp}"/>    
            </xslt>    
            <copy todir="${jmeter.result.html.dir}">    
                <fileset dir="${jmeter.home}/extras">    
                    <include name="collapse.png" />    
                    <include name="expand.png" />    
                </fileset>    
            </copy>    
        </target>    
            

    </project>  

Jmeter压缩包如下:

链接: https://pan.baidu.com/s/1H2Z2O6nKSNp-3t0jJuCOKQ 密码: rpua


四、Jenkins配置

指定工作空间:



清空上次构建遗留的报告:


因为要做数据库的检查,通过Jmeter把从数据库获取的数据写入注入文件


通过bat脚本处理注入文件,对job做期望结果检查


生成html报告:


通过邮件反馈执行结果:


四、效果展示:



通过badboy和Jmeter自身的录制功能基本上可以解决80%的http接口的问题。


http://www.niftyadmin.cn/n/1766763.html

相关文章

python找出素数_python找素数

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01; 注意&#xff1a;对正整数n&#xff0c;如果用2到n的平方根之间的所有整数去除&#xff0c;均无法整除&…

python 多线程编程的有趣的现象

今天照着书上的例子练习了一下python的多线程编程&#xff0c;之前就听说过python的多线程编程&#xff0c;有不少对它的评论什么&#xff0c;还有协程什么的&#xff0c;看得云里雾里的。 这是书上的一段源代码&#xff1a;于是就敲下去运行了&#xff1a; 但是运行的结果令我…

style的介绍

“样式”在开发过程中是非常重要的一环&#xff0c;通过样式开发人员可以控制控件的外观以给用户更良好体验。而且&#xff0c;使用样式能够更方便的调整应用了该 样式的控件的外观。本文主要介绍如何在Silverlight的页面代码中增加样式。 Silverlight与传统的Web页面不同&…

python统计运行次数_使用Python快排统计次数的问题

1&#xff0c;刚刚被问懵了。我都害怕。请问如下代码中的count是不是记录了全部的次数。使用了一个全局变量count来记录比较的次数。争论的重点在于两个if是否要算入计数中。我认为这个属于开始执行和结束执行的条件。请教以下。 # -*- coding:utf-8 -*- import logging, copy …

群晖GitLab修改clone(克隆)地址

通过群晖的Docker(ContainerManager)配置好GitLab后&#xff0c;每次clone代码总要修改前面的地址&#xff0c;因此作者找到了修改的办法&#xff0c;实属不易&#xff0c;请给个关注&#xff01; 给出我的群晖配置gitlab的设置&#xff0c;如图1。 图1 Docker中GitLab的配置 按…

xpath的表达式以及用法

接下来为大家分享以下xpath的表达式以及用法。 一.选取节点 Xpath使用路径表达式在XML文档中选取节点。节点是通过沿着路径来选取的,通过路径可以找到我们想要的节点或者节点范围。 表达式 描述 用法 说明 nodename 选取此节点的所有子节点。 xpath(‘span’) 选取span…

妙趣横生算法 6:希尔排序

1、算法原理 http://www.tyut.edu.cn/kecheng1/site01/suanfayanshi/shell_sort.asp 算法演示 2、程序代码 #include <stdio.h> #define MAX 255 int R[MAX]; void ShellPass(int d,int n) {/*希尔排序中的一趟排序&#xff0c;d为当前增量*/int i,j;for(id1;i<n;i){i…

python htmltestrunner报告_Python3和HTMLTestRunner生成html测试报告

1、测试环境&#xff1a; Python3.5unittestHTMLTestRunner 2、下载HTMLTestRunner.py文件 下载地址 http://tungwaiyip.info/software/HTMLTestRunner.html 右键单击保存至本地&#xff0c;放在Python的安装目录Lib文件夹下&#xff08;我本地放在本目录下&#xff1a;D:\setu…