csv+jenkins+ant测试接口
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 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}">
<!-- 声明要运行的脚本。"*.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}" 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执行
6、结果
结果在HTML文件中
7、和jenkins结合起来
上一篇中已经介绍,构建新job,增加触发器,发送邮件
最新文章
- Laravel如何优雅的使用Swoole
- C++ 代码换行
- 关于JavaScript中apply与call的用法意义及区别(转)
- wrap device
- php 去除数组中重复元素
- IOS设计模式学习(18)模板方法
- C语言入门(2)——安装VS2013开发环境并编写第一个C语言程序
- adb 卸载android系统程序
- java基础复习1
- 开源视频监控系统:iSpy
- js 父类选择前后差异
- ES5-ES6-ES7_Promise对象详解
- Luogu P1129 [ZJOI2007]矩阵游戏
- Docker(十四)-Docker四种网络模式
- 使用@JsonFormat引起的时间比正常时间慢8小时解决方法
- Go Example--Hello
- PowerShell 获取Site Collection下被签出的文件
- 跑道标识和那些复杂的灯光系统 and 简介、编号、参数、标志及数量 and 飞机跑道标准与参数
- 201621123012《Java程序设计》第13次学习总结
- 表中与当前库的collation不一致的字段
热门文章
- 为什么 java wait/notify 必须与 synchronized 一起使用,jvm究竟做了些什么
- Zabbix二次开发_03api列表
- 【BZOJ2337】[HNOI2011]XOR和路径 期望DP+高斯消元
- HDFS上传机制
- Java编码规范之数据对象命名
- 4.AutowireCapableBeanFactory 自动装配工厂
- ";ORA-01012: not logged on";以及";Connected to an idle instance.";解决思路
- ElasticSearch(二十一)正排和倒排索引
- http 长连接 &; 短连接
- 15.Django添加一个功能模块的步骤(和SpringMVC类比)