Jmeter接口测试与数据驱动
一. 背景
数据驱动Data Driven Testing(DDT),是一种用于创建自动化测试的方法,或者说是一种架构, 本质是输入数据和用这些数据获取测试结果, 使测试逻辑和测试数据分离.
DDT的优点是测试工程师不必为每一个输入数据创建一个单独的测试用例, 测试在一个实例中创建, 并且输入测试数据和预期结果在表格文件中获取.
二. Jmeter 数据驱动
首先创建url.csv文件作为输入测试数据, 内容如下:

以上内容保存退出后也可以用文本编辑器编辑, 注意标点符号
我是mac os, 保存目录为/Users/louiezhou/home/url.csv
csv数据设置文件中要用到这个路径
被测接口如下:
- get方法: https://postman-echo.com/get?foo1=bar1
- get方法: https://postman-echo.com/get?foo2=bar2
- post方法: https://postman-echo.com/post 入参{"foo1":"bar1","foo2":"bar2"}
API文档来源: https://docs.postman-echo.com/?version=latest#078883ea-ac9e-842e-8f41-784b59a33722
接下来到jmeter里, 首先创建一个线程组

在该线程组下创建一个普通http请求, 命名为postman-echo_header, 用于和数据驱动比较

添加一个循环控制器

循环数量和数据表格文件中用例数量推荐保持一致.
在循环控制器下添加csv 数据文件设置

在循环控制器下添加if 控制器,命名为if_get

jmeter 5.0 + 版本, if控制器和old version 略有不同.
此处添加if主要是判断如果是get方法就走这个if_get控制器, 如果是post方法, 就走if_post控制器.
在if_get控制器下添加一个http请求
命名规则为: ${caseSeq}_${apiSeq}_${apiName}
用例编号_API版本_API名称, 这样命名更为直观,便于理解

${apiType} =https 为API请求协议
${host} =postman-echo.com 在用户自定义变量中定义
${url}=/get
${param}= foo1=bar1
拼接完整的是: https://postman-echo.com/get?foo1=bar1
再来看if控制器的if_post
仍然是在循环控制器下新建一个if控制器,命名为if_post

在if_post下新建一个http请求, 命名规则同if_get下http一致

${param}={“foo1”:”bar1”, “foo2”:”bar2”}
拼接完整的请求是:
https://postman-echo.com/post
POST data:
{"foo1":"bar1","foo2":"bar2"}
因为是post方式, 入参方式与get有所区别, 因此还需要在该http下声明一个http信息管理头

主流程到这里就完成了, 接下来看下零碎的地方
给每个http请求加上断言

虽然他们的预期值都是变量${expectValue}, 但实际值是不同的
用例C001的预期值:${expectValue}: foo1=bar1
用例C002的预期值${expectValue}:foo2=bar2
用例C003的预期值${expectValue}: {“foo1”:”bar1”,”foo2”:”bar2”}
再来看下用户自定义变量

目录层级结构

添加相应的监听即可执行了.
接下来看执行结果







在数据表格文件中还有些参数没有用到, 比如priority字段, 可以根据需求适当添加相应判断, 本篇幅仅为抛砖引玉, 如您有更好的idea, 欢迎抛过来.
最后来一碗鸡汤:
你现在的生活水平,是你三年前的工作状态决定的;而你现在的努力程度,会决定你三年后的生活;软件行业是个逆水行舟,不进则退的行业,既然选择了这个行业,那么就要努力地“敲”下去。
今日精选推荐
咨询工作加微信

扫描二维码
欢迎自荐和推荐, 需要的微信推送简历!
请猛戳下面二维码了解更多

Jmeter接口测试与数据驱动的更多相关文章
- WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试) 接口测试与数据驱动
转载:http://www.cnblogs.com/chengtch/p/6576117.html 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚 ...
- WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试)
接口测试与数据驱动 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程. 2 数据驱动与jmeter接口测试 我们已经简单介绍 ...
- WEB接口测试之Jmeter接口测试自动化 (三)
接口测试与数据驱动 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程. 2 数据驱动与jmeter接口测试 我们已经简单介绍了 ...
- Jmeter接口测试(一) Jmeter简介
一.Jmeter介绍 (一)Jmeter简介 Apache JMeter 是 Apache 组织的开放源代码项目,是一个纯 Java 桌面应用,用于压力测试和性能测试.它最初被设计用于 Web 应用测 ...
- http接口测试——Jmeter接口测试实例讲解
摘要: 最近做的项目需要测试很多接口,上网查一查,发现完整讲述接口测试的资料太少,所以最近自己做完这个项目,把测试的东西整理一下和大家分享一下,希望对看到的人有所帮助 一.测试需求描述 1. ...
- jmeter接口测试教程
一.Jmeter接口测试步骤: 1.添加线程组
- 通过Jenkins跑Jmeter接口测试脚本,我想当有接口跑失败时Jenkins发送邮件通知,这个如何弄呢
通过Jenkins跑Jmeter接口测试脚本,我想当有接口跑失败时Jenkins发送邮件通知,这个如何弄呢
- jenkins+ANT+jmeter 接口测试环境搭建
目的 jmeter很早就接触了,最近又在接触项目的时候整了一下.写这篇博客主要有两个目的 1,为了给自己搭建jmeter做一个总结. 2,在部署过程中遇到过一些坑,在这分享出来,也希望能给需要的人一个 ...
- JMeter接口测试系列:Jmeter+jenkins+ant 的自动化构建
在JMeter接口测试不断深入的过程中,发现可以和jenkins和ant一起搭配进行自动化的构建.下面是jmeter自动化构建的整理笔记. 准备环境 需要本机上确定安装了jmeter.ant和jenk ...
随机推荐
- split("\\,")引起的java.lang.ArrayIndexOutOfBoundsException异常解决方案
由split("\,")引起的指标越界异常 如果字符串最后分隔符里的字段为空,使用split("\\,")进行切割时,最后的空字段不会切割 例如"a, ...
- openssl rsa加密,解密以及X509证书的使用
Openssl的相关使用 生成证书 生成证书见:使用 openssl 生成证书 代码实现 Cert.h #ifndef _CERT_H #define _CERT_H ///header files ...
- CentOS7使用docker搭建Solo博客
一.获取最新镜像 docker pull b3log/solo 二.启动容器 使用 MySQL 先手动建库(库名 solo,字符集使用 utf8mb4,排序规则 utf8mb4_general_ci) ...
- 初识 RESTful API规范
简介 一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. rest是一种 ...
- 961.重复N次的元素
在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次. 返回重复了 N 次的那个元素. 示例 1: 输入:[1,2,3,3]输出:3示例 2: 输入:[2,1,2,5, ...
- 《anchor-based v.s. anchor-free》
作者:青青子衿链接:https://www.zhihu.com/question/356551927/answer/926659692来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- CF92B-Binary Number-(思维)
https://vjudge.net/problem/CodeForces-92B 题意:给一个长度为106的二进制数,有两种操作,第一种是除以2,第二种是末尾+1,以二进制运算,问这个二进制数最少几 ...
- @Component, @Service, @Controller, @Repository区别
@Component, @Service, @Controller, @Repository是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理 @Componen ...
- mongodb创建管理员用户
db.createUser({user: "admin",pwd: "xxx",roles: ["root"]});
- 如何把任意网站制作成RSS
如何把任意网站制作成RSS 参照一下链接,多试几次就掌握了. 参考链接:https://feed43.com/step-by-step.html