csv+jenkins+ant测试接口

1、文件目录

jmeter_test

  case  用于存放case,csv或者txt格式,jmeter能读取的

  result_log  用于存放报告

    html  存放html报告

    jtl  存放jtl文件

  script  用于保存jemter的jmx文件,jmeter执行后,就保存在这里

  bulid.xml  ant调用文件

csv+jenkins+ant测试接口_第1张图片

2、用例设计

  csv+jenkins+ant测试接口_第2张图片

  用例格式:

  2.1第一行都是字段,方便jemter调用

    No  用例编号

    name  测试的名称(测试内容)

    host  接口地址的host

    url  接口地址的路径

    method  请求的方法类型

    data  请求的数据

    check_point  检查点

    is_run  是否可运行

3、jmeter调用csv中的参数

  csv+jenkins+ant测试接口_第3张图片

  3.1从csv文件中读取数据,测试计划中,添加 - 配置元件 - CSV Data Set Config

    csv+jenkins+ant测试接口_第4张图片

    CSV Data Set Config各个参数的简要说明:

    Filename:csv文件和或txt文件路径,可以用相对路径

    File Encoding:文件编码格式设置

    Varible Names:定义文本文件中的参数名,可设置多个参数,参数之间逗号分隔,定义后可在脚本中引用,引用方式${name}

    Delimiter(use "\t" for tab):指定参数分隔符号

    Allow Quoated data:是否允许引用数据

    Recycle on EOF:是否循环取值

    Stop Thread on EOF:当Recycle on EOF为false并且Stop Thread on EOF为ture,则读完csv文件中的记录后,停止运行

    Sharing Mode:设置是否线程共享

这里设置的是:可以引用数据,读完CSV文件中的记录后,停止运行

    Allow Quoated data:True

    Recycle on EOF:False

    Stop Thread on EOF:True

  3.2设置线程

    csv+jenkins+ant测试接口_第5张图片

    理解:常规意义上的线程组,即虚拟用户组

    循环次数:读取数据循环,勾选永远,一直循环,否则只读取第一行数据,或者手动填写数据的行数

  3.3、If控制器

      作用:根据给定表达式的值决定是否执行该节点下的子节点

    csv+jenkins+ant测试接口_第6张图片

    csv+jenkins+ant测试接口_第7张图片

    参数:

      Interpret Condition as Variable Expression?:选中这一项时表示:判断变量值是否等于字符串true(不区分大小写)

      Evaluate for all children:如果选中这一项,在每一个节点执行前都会计算表达式

    "${is_run}"=="YES"

    判断csv中的is_run字段的值,是否和YES相同,相同则为真,执行,否则为假,不执行

  3.4、判断是否为get请求

    if判断

    csv+jenkins+ant测试接口_第8张图片

  3.5、添加请求

    csv+jenkins+ant测试接口_第9张图片

  可以看到,值都是从csv中读取的

  3.6添加响应

    csv+jenkins+ant测试接口_第10张图片

    匹配的内容,读取的是csv中check_point字段

  3.7、增加查看结果树

    在想要的位置,增加查看结果树

    csv+jenkins+ant测试接口_第11张图片

4、保存好后,点击运行

    csv+jenkins+ant测试接口_第12张图片

5、和ant结合起来,上一篇文章已经有此内容

    HTML文件中,修改到指定的case文件

    即:includes=“”字段的值

     
    <testplans dir="D:\jmeter_test\script" includes="laohuangli_csv.jmx" />
xml version="1.0" encoding="utf-8"?>
<project name="jmeter_test" default="all" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    tstamp>
    
    <property name="jmeter.home" value="D:\jmeter\apache-jmeter-3.0\apache-jmeter-3.0" />
    
    <property name="jmeter.result.jtl.dir" value="D:\jmeter_test\result_log\jtl" />
    
    <property name="jmeter.result.html.dir" value="D:\jmeter_test\result_log\html" />
    
    <property name="ReportName" value="接口测试测试报告" />
    
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />

    
    <path id="xslt.classpath">
    <fileset dir="${jmeter.home}/lib" includes="xalan-2.7.2.jar"/>
    <fileset dir="${jmeter.home}/lib" includes="serializer-2.7.2.jar"/>
    path>

    <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}">
            
            <testplans dir="D:\jmeter_test\script" includes="laohuangli_csv.jmx" />
        jmeter>
    target>
    
    <target name="report">
        
        <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" />tstamp>
        
        <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21s.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>

    ant执行

    csv+jenkins+ant测试接口_第13张图片

 

6、结果

    结果在HTML文件中

    csv+jenkins+ant测试接口_第14张图片

 

7、和jenkins结合起来

  上一篇中已经介绍,构建新job,增加触发器,发送邮件

 

转载于:https://www.cnblogs.com/R-bear/p/7462899.html

你可能感兴趣的:(csv+jenkins+ant测试接口)