9.1  安装和介绍

JMeter 安装文件路径:https://pan.baidu.com/s/1kVJdnuv。

JMeter 是轻量级的开源且稳定的自动化测试工具。

思路:在接口说明文档中整理出接口测试案例,其中需要包括详细的入参和出参 数据,以及明确的格式和检查点,做到接口用例 100%覆盖,并和开发人员一起对接 口测试案例进行评审。

9.1.1  安装 JDK 并配置环境变量 

安装 JDK,配置 JDK 环境变量。在系统 cmd 命令提示符下输入 java -version, 如果能够看到 Java 版本信息,说明 JDK 安装成功。解压缩 Apache-jmeter-2.12.zip 到 E 盘目录下 E:\apiauto\apache-jmeter-2.12,如图 9.1 所示。

▲图 9.1

设置 JMeter 环境变量,运行 JMeter,直接打开 E:\apache-jmeter-2.12\bin\jmeter.bat 就可以了。

9.3  结合 Ant 持续集成到 Jenkins 

-----------------------

把 Ant 及 9.4 节中的接口测试结果报告结合起来。

Jenkins的安装配置集成,请参见第11节。

xml 文件中一一对应配置文件 名、文件路径和各字段。

Build.xml:

<?xml version="1.0"?>

<project name="ant-jmeter" default="all">
<description>

</description>

<property name="testpath" value="${user.dir}"/>

<!—构建路径设置-->

<property name="resultpath" value="/Users/zouhui/Documents/workspace"/>

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

<property name="report.title" value="接口测试结果:"/>

<!-- Name of test (without .jmx) -->
<property name="test" value="Backapp"/>

<!-- Should report include response data for failures? -->
<property name="show-data" value="n"/>

<property name="format" value="2.1"/>

<condition property="style_version" value="">

<equals arg1="${format}" arg2="2.0"/>

</condition>

<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}/extras">

<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="${testpath}/extras/${test}.html"/>

<delete file="${testpath}/extras/${test}.jtl"/>
<jmeter

jmeterhome="${jmeter.home}/apiTest"
testplan ="${testpath}/extras/${test}.jmx"

resultlog="${testpath}/extras/${test}.jtl">

<!--
<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}/apiTest/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="${testpath}/extras/${test}.jtl"
out="${testpath}/extras/${test}.html"

style="${basedir}/extras/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}/extras/expand.png" tofile="${testpath}/extras/expand.png"/>

<copy file="${basedir}/extras/collapse.png" tofile="${testpath}/extras/collapse.png"/>
</target>

<target name="verify-images">
<condition property="samepath">

<equals arg1="${testpath}/extras" arg2="${basedir}/extras" />
</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>

9.4  接口测试结果

接口测试结果如图 9.36 所示。

本篇选自:《软件自动化测试开发-Java和Python测试开发指南》

获取源码后台回复:jmeter

- To Be Continued -


????戳【阅读原文】加入星球,即刻同行!

jmeter+ant+jenkins 接口自动化测试持续集成(送源码)的更多相关文章

  1. Jmeter+Ant+Jenkins接口自动化持续集成环境搭建(Linux)

    一.安装说明 系统环境:CentOS release 6.4 JDK版本:jdk1.8.0_181 Jmeter版本:apache-jmeter-3.0 Ant版本:apache-ant-1.9.13 ...

  2. jmeter+ant+jenkins接口自动化测试框架

    大致思路:Jmeter可以做接口测试,也能做压力测试,而且是开源软件:Ant是基于Java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台,Jenkins是持续集成工具.将这三者结合起来可以搭建 ...

  3. Jmeter+ant+jenkins接口自动化测试 平台搭建(一)

    平台简介 一个完整的接口自动化测试平台需要支持接口的自动执行,自动生成测试报告,以及持续集成.Jmeter 支持接口的测试,Ant 支持自动构建,而 Jenkins 支持持续集成,所以三者组合在一起可 ...

  4. Jmeter+Ant+Jenkins接口自动化测试框架搭建

    前言 软件开发的V模型大家都不陌生,其中测试阶段分为单元测试→功能测试→系统测试→验收测试.其中单元测试一般由开发同学们自己完成,大部分测试具体实施(这里不包括用例设计)是从单体功能测试开始着手的. ...

  5. Jmeter+Ant+Jenkins接口自动化测试(一)_环境部署

    前言: 2017年最后一个月份,今天抽出时间把之前的一些记录分享出来,也为今年画上个简单的句号吧,无论好与坏,无论成功与失败,简单的记忆,不要留下点点空白. 特别提示: 知识是用来分享的,但是也要尊重 ...

  6. Jmeter+Ant+Jenkins接口自动化测试(二)_测试方案设计及jmeter脚本开发

    前言 根据之前部署好的测试环境,进行接口自动化测试的方案设计及Jmeter脚本开发.测试方案设计过程中采用了数据分离和对象分离等思路,因此直接通过特定的测试用例文档来驱动整个自动化接口测试的执行,相关 ...

  7. Jmeter+ant+jenkins接口自动化测试 平台搭建(三)

    四.报告优化 Jmeter 默认生成报告不是很详细,因此我们需要进行优化.这里我们使用新的报告模板:默认的报告模板是 jmeter-results-detail-report_21.xsl 先上效果图 ...

  8. Jmeter+ant+jenkins接口自动化测试 平台搭建(二)

    一.依赖文件配置 1.在ant目录C:\apache-ant-1.10.5下新建一个demo文件夹,并将jmeter测试脚本放在该文件夹中 2.将\apache-jmeter-3.3\extras下面 ...

  9. Jmeter+ant+Jenkins接口自动化框架搭建

    摘自:https://testerhome.com/topics/13389 一.背景  上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接 ...

随机推荐

  1. 放贷额度相关的ROI计算

    违约模型得到概率估计, 将概率值划分5档, 每一档确定一个授信系数 新的授信 = 每月收入* 授信系数 - 老的授信 计算新增授信额度 计算余额损失

  2. PAT甲级——1077.Kuchiguse(20分)

    The Japanese language is notorious for its sentence ending particles. Personal preference of such pa ...

  3. scala编程(九)——控制抽象

    减少代码重复 所有的函数都被分割成通用部分,它们在每次函数调用中都相同,以及非通用部分,在不同的函 数调用中可能会变化.通用部分是函数体,而非通用部分必须由参数提供.当你把函数值用做参数时,算法的非通 ...

  4. Equal Cut

    Equal Cut 题目描述 Snuke has an integer sequence A of length N. He will make three cuts in A and divide ...

  5. 2019-2020-1 20199324《Linux内核原理与分析》第七周作业

    第六章 进程的描述和进程的创建 知识点总结 进程的描述 操作系统内核实现操作系统的三大管理功能以及对应的抽象概念: 进程管理(最核心)-- 进程 内存管理 -- 虚拟内存 文件系统 -- 文件 进程是 ...

  6. java 计算一个月有多少天和多少周

    import java.util.Calendar; /** * 功能概述:计算指定年月的天数和周数<br> */ public class Test{ public static voi ...

  7. Python练习五-函数

    1.简述普通参数.指定参数.默认参数.动态参数的区别1)普通参数中,有形参和实参,其中形参是定义函数时写的参数,实参是调用函数时传给函数的参数:2)默认参数是在定义函数时,参数设定一个默认值:3)指定 ...

  8. Apsara Clouder专项技能认证:实现调用API接口

    一.API 简介 1.API 的概念 API(Application Programming Interface应用程序编程接口)是一些预定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访 ...

  9. vue实现tab选项卡切换

    上代码: <template>   <div class="push">     //点击按钮     <div class="tab&qu ...

  10. vue_webpack初始化项目

    整体架构:此处npm安装过于缓慢,因此使用的是淘宝的镜像cnpm vue+webpack 初始化项目:1.安装vue: cnpm install vue 检验版本: vue -V2.创建一个vue项目 ...