设为首页 收藏本站
查看: 1645|回复: 0

[经验分享] csv+jenkins+ant测试接口

[复制链接]

尚未签到

发表于 2018-1-8 21:36:15 | 显示全部楼层 |阅读模式
  1、文件目录
  jmeter_test
  case  用于存放case,csv或者txt格式,jmeter能读取的
  result_log  用于存放报告
  html  存放html报告
  jtl  存放jtl文件
  script  用于保存jemter的jmx文件,jmeter执行后,就保存在这里
  bulid.xml  ant调用文件

  2、用例设计

  用例格式:
  2.1第一行都是字段,方便jemter调用
  No  用例编号
  name  测试的名称(测试内容)
  host  接口地址的host
  url  接口地址的路径
  method  请求的方法类型
  data  请求的数据
  check_point  检查点
  is_run  是否可运行
  3、jmeter调用csv中的参数

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

  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设置线程

  理解:常规意义上的线程组,即虚拟用户组
  循环次数:读取数据循环,勾选永远,一直循环,否则只读取第一行数据,或者手动填写数据的行数
  3.3、If控制器
  作用:根据给定表达式的值决定是否执行该节点下的子节点


  参数:
  Interpret Condition as Variable Expression?:选中这一项时表示:判断变量值是否等于字符串true(不区分大小写)
  Evaluate for all children:如果选中这一项,在每一个节点执行前都会计算表达式
  "${is_run}"=="YES"
  判断csv中的is_run字段的值,是否和YES相同,相同则为真,执行,否则为假,不执行
  3.4、判断是否为get请求
  if判断

  3.5、添加请求

  可以看到,值都是从csv中读取的
  3.6添加响应

  匹配的内容,读取的是csv中check_point字段
  3.7、增加查看结果树
  在想要的位置,增加查看结果树

  4、保存好后,点击运行

  5、和ant结合起来,上一篇文章已经有此内容
  HTML文件中,修改到指定的case文件
  即:includes=“”字段的值
  

    <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->  <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>
  <!-- 需要改成自己本地的 Jmeter 目录-->
  <property name="jmeter.home" value="D:\jmeter\apache-jmeter-3.0\apache-jmeter-3.0" />
  <!-- jmeter生成jtl格式的结果报告的路径-->
  <property name="jmeter.result.jtl.dir" value="D:\jmeter_test\result_log\jtl" />
  <!-- jmeter生成html格式的结果报告的路径-->
  <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" />
  

  <!-- 解决不显示 Min/Max 统计时间的问题。同时把下面的两个jar文件copy到ant的lib包中-->
  <path>
  <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">  <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
  <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
  <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}" >
  <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执行

  6、结果
  结果在HTML文件中

  7、和jenkins结合起来
  上一篇中已经介绍,构建新job,增加触发器,发送邮件

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-433057-1-1.html 上篇帖子: linux服务器上安装jenkins 下篇帖子: centos上Jenkins搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表