Jmeter接口测试案例实践(一)
1.1. 接口介绍
本次测试的接口采用内网中的通讯录查询接口进行测试,接口参数如下:
1.2. 使用Jmeter进行接口测试
1.2.1. 打开Jmeter
下载好Jmeter后,双击bin目录下的jmeter.bat文件:
1.2.2. 添加线程组
在“测试计划”上鼠标右键添加-->threads(Users)-->线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”
1.2.3. 添加Http请求默认值
组件,在上步的线程组上右键添加-->配置元件-->HTTP请求默认值
当所有的接口测试的访问域名和端口都一样时,可以使用该元件,一旦服务器地址变更,只需要修改请求默认值即可。
1.2.4. HTTP请求构造
在“线程组”右键-->添加-->samlper-->“HTTP 请求”
在HTTP请求设置页面,录入被测接口的详细信息,包括请求路径,对应的请求方法,以及随请求一起发送的参数列表,配置如下:
1.2.5. 测试报告配置
在“线程组”右键-->添加-->监听器->查看结果树、用表格查看结果、Summary Report三种结果的报告展示
点击运行后,即可看到运行结果,结果如下:
从上述结果返回可以看出,使用【xx】测试,返回的结果有两个,另外在返回数据展示方面,除了上述默认的Text形式外,还可以选择HTML形式,更直观,如下:
另外的表格查看结果,选取一个展示,如下
1.2.6. 输入部分参数化
在实际测试中,不可能查询值测试一个输入值,还有其他测试数据,故引入参数化的概念,让一条用例循环执行,直到所有测试数据均测试完成,如下示例:
Jmeter参数化有4种方法,本例仅介绍最普遍及简单的1个方法,csv文件导入配置
1、准备参数文件
2、配置CSV数据设置配置项:在线程组右键添加-->配置元件-->CSV Data Set Config
3、修改3.2.4中构造的HTTP请求:username修改为参数,从csv文件中引用
4、修改测试计划,使得脚本重复
5、运行后,即可看到结果如下:
1.2.7. 从响应结果提取内容,进行断言
上述结果,永远都会执行正确,只要请求发送成功,并没有对返回结果进行断言判断,本例介绍断言设置
1、正则表达式提取内容:从响应内容中提取内容与文件提取内容进行对比,本例采用对比的结果为:员工号
在通讯录查询的HTTP请求上右键添加-->后置处理器-->正则表达式提取器,配置如下:
关于正则表达式的规则,请自行查找文档学习,此处提取返回聂荣的员工号后,以test参数引用。
2、增加断言:以提取的员工号test和csv文件中读取的员工号进行对比,判断结果是否正确
在通讯录查询的HTTP请求上右键添加-->断言-->响应断言,配置如下:
在线程组右键添加-->sampler-->Debug Sampler:用于查看正则表达式提取的内容
3、运行后,查看结果
发现第二条参数用例执行结果失败,展开后,查看响应断言的详细信息,发现test并不匹配T123451,也就是说第二个测试人员的员工号不是T123451。
接下来我们查看详细的响应数据,看看问题到底在哪里
从上图可以看出,第二个测试人员的员工号为T12345,而不是T123451,所以断言不通过。
其实,此错误是csv文档中故意设置错误的,以验证断言的正确性。
Jmeter接口测试案例实践(一)的更多相关文章
- Jenkins+ANT+Jmeter 接口测试的实践(转载)
转载地址:https://testerhome.com/topics/5262 1.前言 最近感觉大家都在讲Jenkins+jmeter+ant或maven的使用,但没有说到具体怎么投入到项目使用,只 ...
- 对 Jenkins+ANT+Jmeter 接口测试的实践
转载地址:https://testerhome.com/topics/5262 1.前言 最近感觉大家都在讲Jenkins+jmeter+ant或maven的使用,但没有说到具体怎么投入到项目使用,只 ...
- jMeter接口测试案例
- Jmeter接口测试加解密及Bean Shell使用案例
Jmeter接口测试加解密及Bean Shell使用案例 https://blog.csdn.net/russ44/article/details/56009084 本文以base64加解密为例: 一 ...
- jmeter 创建接口测试案例
1 怎么做接口测试? 一般情况下,由于我们项目前后调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送和接收.所以我们下面整理了一下使用Jmeter工具进行htt ...
- jmeter接口测试实战-创建用户
jmeter接口测试实战-创建用户 相信大多数看到标题的同学都会有疑问, 创建用户不是很简单吗, 调用一下创建用户接口, 传入指定入参, 用户即可创建成功, 今天我们的实战来讲讲创建场景.通过接口创建 ...
- TOP100summit 2017:小米唐沐等大咖精心挑选的100个年度研发案例实践
2017年,机器学习.大数据.人工智能等词汇成为软件研发行业的主流,大前端.DevOps.区块链等技术方式成为热点方向:2017年,智能硬件开始成为新的焦点,这一年更被称为智能音箱井喷的一年:2017 ...
- Jmeter接口测试(八)cookie设置
HTTP Cookie 管理器 如果你有一个 HTTP 请求,其返回结果里包含一个 cookie,那么 使用 JmeterCookie 管理器会自动将该 cookie保存起来,而且以后所有对该网站的请 ...
- CSS典型案例实践
CSS案例实践 一.层布局:定位元素重叠 在CSS中可以通过z-index属性来确定定位元素的层叠等级.需要注意的是: z-index属性只有在元素的position属性取值为relative.abs ...
随机推荐
- JavaScript网页制作特效
一.什么是JavaScript? 网页交互特效的脚本语言. 特效 二.BOM对象 能够使得JavaScript和浏览器进行对话. 主要是使用Window对象进行操作. History对象:历史,可以实 ...
- 腾讯云升级到PHP7
1.删除之前安装的PHP yum remove php* php-common 2.安装yum源 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel ...
- foreach遍历原理(一)
前言 要使用foreach的遍历的类首先要满足的条件 1. 类要实现公共方法 public IEnumerator GetEnumerator(){},还可以继承IEnumerable接口来实现这个方 ...
- 《Linux内核分析》 week8作业-Linux加载和启动一个可执行程序
一.ELF文件格式 ELF(Executable and Linking Format)是x86 Linux系统下常用的目标文件格式,有三种主要类型: 适于连接的可重定位文件,可与其他目标文件一起创建 ...
- javascript 关于闭包的知识点
javascript 关于闭包的认识 概念:闭包(closure)是函数对象与变量作用域链在某种形式上的关联,是一种对变量的获取机制. 所以要大致搞清三个东西:函数对象(function object ...
- jq实现鼠标经过图片翻滚效果
短短的十多行代码就实现了一个酷炫的图片翻滚代码,要实现这个效果并不难,只要思路对了,一切都好办,不多说了,直接上代码看效果! html结构: <ul class="list" ...
- part3
我就不刁旭概念什么的问题了哈~直接进入工作中所通用的一些有关object的方法和属性 1).for/in 属性的遍历~他遍历的对象没有特定的顺序,而且只能枚举出所有用户自定义的属性,不能枚举出某些预定 ...
- JQuery+Js 获取浏览器高度和宽度
JQuery-------做手机Web开发做浏览器兼容用到了,所以在网上找了些汇总下. alert($(window).height()); //浏览器当前窗口可视区域高度 alert($(docum ...
- 【结构型】Flyweight模式
享元模式的主要目的.意图是为对象的大量使用提供一种共享机制.该模式的思想重在复用.共享复用.像文字.列表中的格子等这类多数都是需要考虑复用技术,否则必将大量耗费内存空间而使资源以及性能等大量耗费.该模 ...
- 关于Cococs中的CCActionEase(中)
相比之前的速度正弦变化动作(这个东西叫什么更好一些?渐变动画?)与速度指数级变化动作,CCEaseIn/CCEaseOut/CCEaseInOut更具灵活性.你可以设置运动的速率,甚至是在运动的过程中 ...