美文网首页编程技术类过程测试升华
Jenkins+ant+jmeter小白入门篇(一)

Jenkins+ant+jmeter小白入门篇(一)

作者: 古佛青灯度流年 | 来源:发表于2016-06-29 19:22 被阅读3369次

    本次在windows版本中进行研究
    书写本文目的是为了跟我一样的小白们少走一些弯路,把我现在摸索出来的正确打开方式总结一下,望共勉,此外里面内容还有好多我不太懂的地方还请路过的大神们多多提出宝贵意见,3Q!

    • 首先了解下什么是接口测试:

    一、什么是接口测试?

    接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
      接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。
      接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比,接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。
      基于接口测试的重要性,以及它比较容易自动化的特性,通过持续集成的接口监控能够及时的发现项目中存在的问题,这对持续运营的项目来说,非常重要。

    二、接口测试的流程

    1、 项目启动后,测试人员要尽早找到开发人员拿到接口测试文档
      2、 获取接口测试文档后,就可以进行接口用例的编写和调试
      3、 接口用例编写调试完成后,部署到持续集成的测试环境中,
      4、 设定脚本运行频率,告警方式等基本参数,进行接口的日常监控
      5、 每日进行接口脚本的维护更新,接口异常的处理

    • 然后准备好测试脚本

      1. 那个不知道jmeter怎么用的可以先学习一下jmeter的 基本用法
      2. 这里我提前准备好了一个jmx文件(提取码:a446)
      3. 这里是我们使用非 GUI 模式运行测试脚本时可以使用的一些命令:
        -h 帮助 -> 打印出有用的信息并退出
        -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
        -t 测试文件 -> 要运行的 JMeter 测试脚本文件
        -l 日志文件 -> 记录结果的文件
        -r 远程执行 -> 启动远程服务
        -H 代理主机 -> 设置 JMeter 使用的代理主机
        -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
        例如:
        jmeter -n -t test.jmx -l logfile1.jtl -H 192.168.1.1 -P 8080
        其中可以给jmx文件指定路径,也可以给输入日志文件指定输出路径
    执行结果.png
    • 如果要在windows机器上执行这个命令行,有两
      第一种方法:通过cmd 进入到 *\apache-jmeter-2.13\bin(也就是jmeter所在的目录)中执行
      第二种方法:通过给jmeter配置环境变量,
      1. JMETER_HOME:E:\workplace-jenkins\apache-jmeter-2.13\bin
      2. PATH: %JMETER_HOME%bin
      3. CLASS_PATH: %JMETER_HOME%lib
      注:这里有的时候用%JMETER_HOME%不好用,可以换成绝对路径;如果用第二种方法配置以后,则在任何路径下都可以执行jmeter命令了,我比较推荐这个;在这里最好能实现通过命令行执行jmx以后再往下进行

    • Jenkins for windows 的安装

      1. 首先需要下载Jenkins的安装包,或者根据自己需要Jenkins官网下载
      2. 下载好windows版以后,直接解压打开msi


        安装包.png
      3. 安装的过程中选择好路径,然后就是傻瓜式的下一步,完成后会自动打开Jenkins的网站:
        http://localhost:8080
        即${安装机器的ip}:8080
      4. 首次进入会有个密码,根据红色提示信息 ,复制到 在文件管理器中找到密码
    Paste_Image.png
    1. 选择推荐插件就行,运气好能少失败几个,然后就等着吧 ,等到进度条到头的时候(这时候Jenkins不一直在那不动,我也不知道为啥,欢迎指教),可以手动刷新页面再次进入Jenkins,选择continue就可以
    主页.png
    可以先去修改个密码省的下次登录还得找 “系统管理->管理用户”
    • 安装好了以后还需要准备一个build.xml文件

    直接手动建立一个build.xml文件放在你认为合适的地方,因为一会建job还要用呢!
        <?xml version="1.0" encoding="utf-8"?>
        <project name="JmeterTest" default="all" basedir=".">
            <tstamp>
                  <format property="time" pattern="yyyyMMddhhmm" />
            </tstamp>
        <!-- 需要改成自己本地的 Jmeter 目录-->
        <property name="jmeter.home" value="E:\workplace-jenkins\apache-jmeter-2.13\" />
        <!-- jmeter生成jtl格式的结果报告的路径-->
        <property name="jmeter.result.jtl.dir" value="E:\workplace-jenkins\jmeter-restult\jtl" />
        <!-- jmeter生成html格式的结果报告的路径-->
        <property name="jmeter.result.html.dir" value="E:\workplace-jenkins\jmeter-restult\html" />
        <!-- 生成的报告的前缀 -->
        <property name="ReportName" value="TestReport" />
        <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />
        <property name="jmeter.result.htmlName"         value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
        <!-- 接收测试报告的邮箱 -->
        <property name="mail_to" value="XX@gmail.com" />
        <!-- 电脑地址 -->
        <property name="ComputerName" value="andre" />
        <target name="all">
            <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="E:\workplace-jenkins\test_case" includes="*.jmx" />
            </jmeter>
        </target>
        <target name="report">
            <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl" />
            <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
            <copy todir="${jmeter.result.html.dir}">
                <fileset dir="${jmeter.home}/extras">
                    <include name="collapse.png" />
                    <include name="expand.png" />
                </fileset>
            </copy>
        </target>
        <!-- 发送邮件 -->
        </project>
    

    查阅了大量的文章,写法都差不多,但是我还不能自己优化,故直接拿来,记录下待他日有深刻体会时再次修改,特别说明一个地方:${jmeter.home}/extras/jmeter.results.shanhe.me.xsl这个是我下载的一个第三方模板(提取码:d982),有兴趣你也可以下个试试,不过jmter自带了4个模板

    • 准备差不多了,现在就建个job体验一下

    新建.png

    然后:

    job名字.png

    别的不用管直接到增加构建步骤:

    构建.png Paste_Image.png

    添加参数:
    Targets:参数你研究一下build.xml文件就知道了
    build file : build.xml路径

    Paste_Image.png

    点击保存即可。

    然后点击构建,我这里成功了。

    Paste_Image.png Paste_Image.png

    还可以去看一下生成的报告:

    Paste_Image.png
    • 到现在为止一个Jenkins+jmeter+ant自动化的框架基本搭建完事了,剩下的就是看你怎样发挥你的想象力去创造了,后续还会更新一些创建report,以及发送报警邮件等等的其它功能,待续!

    相关文章

      网友评论

      • dumplingrole:答主你好,我这边在构建项目的时候都没成功过,一直报
        Unable to find build script at <xml路径>
        我在系统管理/全局工具配置里设置了ant的,但依旧报错
        古佛青灯度流年:@dumplingrole 你的xml文件配置信息搞错了吧
      • 郑钱钱的小笔记:请问我构造的时候添加了构建好步骤,HTMLreport添加了,但是,构建的时候还是没有报告呢
      • 郑钱钱的小笔记:请问这里我在jenkins构建的时候没有invoke ant呢?
      • Lily_girl:report:
        [xslt] Processing /Users/lily/Work/performanceTest/apache-jmeter-3.2/jmeter-restult/jtl/TestReport.jtl to /Users/lily/Work/performanceTest/apache-jmeter-3.2/jmeter-restult/html/TestReport201801031134.html
        [xslt] Loading stylesheet /Users/lily/Work/performanceTest/apache-jmeter-3.2/extras/jmeter.results.shanhe.me.xsl
        [xslt] : Error! 前言中不允许有内容。
        [xslt] : Error! com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: 前言中不允许有内容。
        [xslt] Failed to process /Users/lily/Work/performanceTest/apache-jmeter-3.2/jmeter-restult/jtl/TestReport.jtl

        你好,麻烦问下这个是怎么回事
        柳叹淡:应该是在jmeter\bin\jmeter.properties文件里面,jmeter.save.saveservice.output_format=xml这句之前有个#没有去掉。你可以试一下
      • a71680be3cfc:楼主你好,使用html report插件打开报告与jmeter+ant生成的测试报告,为什么样式不一样?我Html report插件的路径,取的是jmeter+ant生成的测试报告的路径,说明使用的是同一套数据,为什么我使用插件的时候会进行二次渲染?对使用插件形成的报告可以进行样式的修改吗?
        古佛青灯度流年:@云之谜 2个插件就是又不同的处理方式,数据源一致,不代表页面布局、以及样式信息要一致
      • 璀璨的永远:下次怎么启动jenkins呢
        古佛青灯度流年:@璀璨的永远 http://m.blog.csdn.net/article/details?id=51557731
      • 3837f9e032f4:楼主:您好,为什么我一直报[jmeter-restult] $ cmd.exe /C "ant.bat -file build.xml all && exit %%ERRORLEVEL%%"
        'ant.bat' 不是内部或外部命令,也不是可运行的程序
        或批处理文件。
        Build step 'Invoke Ant' marked build as failure
        Finished: FAILURE
        这样的错误
        古佛青灯度流年:@Felixni 检查下你在invoke ant 中的路径,命令有没有搞错
      • 吉家鸿钧2015:楼主你好,这里的ant怎么安装到jenkins呢?
        古佛青灯度流年:@吉家鸿钧2015 这里用到的ant不需要单独安装的,Jenkins自带构建插件:Invoke ant

      本文标题:Jenkins+ant+jmeter小白入门篇(一)

      本文链接:https://www.haomeiwen.com/subject/hlexjttx.html