编写jmeter测试用例_JMeter 编写接口测试用例遇到的问题及解决
一、BeanShell Sampler使用JS函数生成的日期月份小于10时是个位数
开始用的是:
"baseDate": "${__javaScript((new Date()).getFullYear()+'-'+ ((new Date()).getMonth()+1) + '-' + (new Date()).getDate(),)}"
生成的月份和日期小于10时都是个位数,比如2018-9-8
如果接口文档预期返回的格式是2018-09-08,则不匹配
一个办法是,用java.util.Calendar类
import java.text.SimpleDateFormat;
import java.util.Calendar;
public String myDate(){
String res;
Calendar cal = Calendar.getInstance();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
res = simpleDateFormat.format(cal.getTime());
return res;
}
vars.put("baseDate",myDate());
一个办法是,用java.util.Date类
需注意 new Date(myYear-1900,month,day) 实际生成的月份是 month+1
需注意日期转换
SimpleDateFormat("yyyy-MM-dd") 生成的结果日月个位时会在个位数前加0
SimpleDateFormat("yyyy-M-d") 生成的结果日月个位时就是个位数
日月是个位数生成的是两位.png
日月是个位数生成的是一位.png
日月是两位数生成的是两位.png
二、下游接口M发送请求和接口N返回值都用到同一字段A,BeanShell Sampler事先设置好字段A
提前生成需要用的字段A.png
之后接口M请求用到此字段A.png
接口N返回值断言用到字段A
举一反三,只要某字段是唯一固定的,后面有很多地方用到,就可以事先把它设置好(通过获取/新建),之后 ${name} 引用即可.
三、调用格式转换函数,注意函数参数的格式和传参value值原来的格式
这个问题也是在生成日期进行格式转换时遇到的,当时接口返回的createTime是个时间戳一串数字
时间戳是一串数字
时间戳转换成年月日时分秒的函数如下:
import java.text.SimpleDateFormat;
import java.util.Date;
public String stampToDate(String s){
String res;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long lt = new Long(s);
Date date = new Date(lt);
res = simpleDateFormat.format(date);
return res;
}
重点来了,如果用以下这行代码不能成功转换,猜猜是为什么?
vars.put("createDateAndTime", stampToDate(String.valueOf(${createTime})));
1
2
3
想到了吗?
因为 ${createTime} 获取到的是一串数字,此处传参需要是个字符串~
解决方法很简单 加上双引号 变成字符串~即
vars.put("createDateAndTime", stampToDate(String.valueOf("${createTime}")));
四、需求明确返回内容不能包含某字段,校验是否没返回该字段,需事先特别设置
事例接口是获取患者列表,有很多个患者(对象)。截图只截了一部分如下:
接口返回的数组里有多个对象
断言只是其中一个对象
接口运行是通的,没有报错。
因为默认情况下,预期返回内容"obj":[{a}],实际返回内容"obj":[{a},{b},{c}],后面多出的内容不会去校验。
注意a必须是第一个,如果预期返回内容"obj":[{c},{b}],实际返回内容"obj":[{a},{b},{c}],则跑不通过。此时排序不确定只需要校验是否包含在返回值内的话,则可以预期结果勾选“只检查数组中数据是否包含在预期结果中”
如果需求明确是返回内容不能包含某字段,需校验确实没返回该字段,需事先设置。
断言里面设置好预期不存在的字段
编写jmeter测试用例_JMeter 编写接口测试用例遇到的问题及解决相关推荐
- 编写jmeter测试用例_Jmeter | 实现接口自动化设计说明
一.变量定义规则 1.全局变量:各个项目组负责人负责统一规划本项目的全局变量.用"配置元件"中的[用户定义变量]来设置,并置顶在所有线程组的最前方: 2.HTTP消息头:各个项目组 ...
- 测试用例优先级划分_测试用例的重要级别如何划分?
测试用例的优先级别 优先级一般都是和缺陷的严重程度对应的. 一般可以把优先级分为三种: 高(Highs):保证功能性是稳定的,是按照需求的正常使用和实现点进行用例设计的,重要的错误和边界测试的测试用例 ...
- 编写jmeter测试用例_Jmeter性能测试系列篇(十)--批量用例执行结果检查设置
1.在jmeter图形界面中,所有用例的执行可以通过"监听器"中的[察看结果树]来汇总每个接口的测试用例的执行结果.同时可以设置将执行的结果保存到指定的目录上. 2.因为结合ANT ...
- 接口测试用例_【学习】接口测试用例编写和测试关注点
一.为什么要做接口测试 在日常开发过程中,有人做前端开发,有人负责后端开发.接口就是连接前后台,由于前端开发和后端开发的速度可能不一样,例如后端开发好了,但是前端没有开发.那么我们是不是就不需要测试呢 ...
- 数据接口请求异常:parerror_接口测试用例编写和测试关注点
一.为什么要做接口测试 在日常开发过程中,有人做前端开发,有人负责后端开发.接口就是连接前后台,由于前端开发和后端开发的速度可能不一样,例如后端开发好了,但是前端没有开发.那么我们是不是就不需要测试呢 ...
- 接口测试用例编写和接口测试模板
一.简介 接口测试区别于传统意义上的系统测试,下面介绍接口测试用例和接口测试报告. 二.接口测试用例模板 功能测试用例最重要的两个因素是测试步骤和预期结果,接口测试属于功能测试,所以同理.接口测试的步 ...
- 接口测试用例的编写要点有哪些?
接口测试用例的编写要点有哪些? 第一.必填字段,请求参数必填项.可选项 第二.合法性,输入输出合法,非法参数 第三.边界,请求参数边界值等 第四.容错能力,大容量数据.频繁请求.重复请求(如:订单) ...
- 接口测试用例编写规则
一.接口测试基本概念 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统 与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换, 传递和控制管理过程,以及系统间的相 ...
- 接口测试用例编写方法
接口测试用例编写可以从四个方面入手:功能.逻辑业务.异常测试.安全
最新文章
- Mat矩阵基本操作与示例 OpenCV
- cmd mysql_CMD命令操作MySql数据库的方法详解
- 雅虎开源CaffeOnSpark:基于Hadoop/Spark的分布式深度学习
- 机器学习认识聚类(KMeans算法)
- 在RHEL6.2上,将一个分区开机自动挂载
- tyvj 1391 走廊泼水节【最小生成树】By cellur925
- 《Python快速入门》基础知识扫盲课
- php扩展返回字符数组,PHP扩展之数组字符串处理
- Google Protocol Buffers浅析(四)
- 二叉树的链表存储与遍历
- jstack 脚本 自动日志_在 Linux 中使用 Bash 脚本删除早于 “X” 天的文件/文件夹...
- Nginx 500错误总结
- java截取字符串函数
- 最小生成树之普里姆算法
- ElementUI:设置table的背景透明、根据表格情况设置背景色、设置文字颜色、文字左右间距、表头、每一行高度
- Kali-linux:nmap命令
- word小技巧 将图片批量居中
- JWT 的退出登录方法
- python数学符号读法大全_数学符号及读法大全
- FineBI 新增字段后 更新缓慢问题
热门文章
- 通过运行时单步调试弄清楚[(ngModel)]的双向绑定的工作原理
- Angular HTTPClient的使用方法
- Angular的property binding一个例子
- The compiler compliance specified is 11 but a JRE 1.8 is used
- SAP Hybris Commerce里类似ABAP里的透明表设计
- 本人使用abapgit遇到的一些错误
- difference between JSON Model and client model
- 如何在Hybris commerce里创建一个media对象
- 阮一峰react demo代码研究的学习笔记 - demo 6 debug - how check works
- Element.prototype.addDependent will call addAggregation