一. 背景

数据驱动Data Driven Testing(DDT),是一种用于创建自动化测试的方法,或者说是一种架构, 本质是输入数据和用这些数据获取测试结果, 使测试逻辑和测试数据分离.

DDT的优点是测试工程师不必为每一个输入数据创建一个单独的测试用例, 测试在一个实例中创建, 并且输入测试数据和预期结果在表格文件中获取.

二. Jmeter 数据驱动

首先创建url.csv文件作为输入测试数据, 内容如下:

以上内容保存退出后也可以用文本编辑器编辑, 注意标点符号

我是mac os, 保存目录为/Users/louiezhou/home/url.csv

csv数据设置文件中要用到这个路径

被测接口如下:

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接口测试-if控制器

JMeter数据库操作

Jmeter接口测试-正则表达式

JMeter中文返回乱码

Jmeter接口测试-参数化

JMeter接口测试-基础

测试-感想

咨询工作加微信

扫描二维码

欢迎自荐和推荐, 需要的微信推送简历!

请猛戳下面二维码了解更多

Jmeter接口测试与数据驱动的更多相关文章

  1. WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试) 接口测试与数据驱动

    转载:http://www.cnblogs.com/chengtch/p/6576117.html 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚 ...

  2. WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试)

     接口测试与数据驱动 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程. 2 数据驱动与jmeter接口测试 我们已经简单介绍 ...

  3. WEB接口测试之Jmeter接口测试自动化 (三)

    接口测试与数据驱动 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程. 2 数据驱动与jmeter接口测试 我们已经简单介绍了 ...

  4. Jmeter接口测试(一) Jmeter简介

    一.Jmeter介绍 (一)Jmeter简介 Apache JMeter 是 Apache 组织的开放源代码项目,是一个纯 Java 桌面应用,用于压力测试和性能测试.它最初被设计用于 Web 应用测 ...

  5. http接口测试——Jmeter接口测试实例讲解

    摘要: 最近做的项目需要测试很多接口,上网查一查,发现完整讲述接口测试的资料太少,所以最近自己做完这个项目,把测试的东西整理一下和大家分享一下,希望对看到的人有所帮助     一.测试需求描述 1. ...

  6. jmeter接口测试教程

    一.Jmeter接口测试步骤: 1.添加线程组

  7. 通过Jenkins跑Jmeter接口测试脚本,我想当有接口跑失败时Jenkins发送邮件通知,这个如何弄呢

    通过Jenkins跑Jmeter接口测试脚本,我想当有接口跑失败时Jenkins发送邮件通知,这个如何弄呢

  8. jenkins+ANT+jmeter 接口测试环境搭建

    目的 jmeter很早就接触了,最近又在接触项目的时候整了一下.写这篇博客主要有两个目的 1,为了给自己搭建jmeter做一个总结. 2,在部署过程中遇到过一些坑,在这分享出来,也希望能给需要的人一个 ...

  9. JMeter接口测试系列:Jmeter+jenkins+ant 的自动化构建

    在JMeter接口测试不断深入的过程中,发现可以和jenkins和ant一起搭配进行自动化的构建.下面是jmeter自动化构建的整理笔记. 准备环境 需要本机上确定安装了jmeter.ant和jenk ...

随机推荐

  1. [20190515]热备份模式与rman冲突.txt

    [20190515]热备份模式与rman冲突.txt --//别人的系统做dg时打开热备份模式,忘记关闭,做rman备份时报错.做一个记录.--//实际上也怪自己,实施时没有讲清楚.通过例子说明: 1 ...

  2. Oracle EBS如何查找到说明性弹性域Title

    Oracle EBS如何查找到说明性弹性域Title 一.方法一:直接在弹性栏位界面查询 在EBS中,有部分表已经启用说明性弹性域,我们可以直接在界面得到弹性域对话框的标题,如下图所示,在OM-事务处 ...

  3. vue实现点击图标,图标在2s中完成旋转

    <!-- 点击 vue实现点击图标,图标在2s中完成旋转 1==>如何让它在2s内完成旋转 使用动画 transform: rotate(-180deg); 动画的运动状态 transit ...

  4. 13.Java基础_数组内存图

    单个数组内存图 new int[3]: 在堆内存里申请一块空间存储int类型的变量(初始化时值都为0) int[] array: 在栈内存申请一块内存存储堆内存里数组的首地址 array[i]: 通过 ...

  5. 1.Java基础_Java核心机制简介

    Java的两种核心机制 Java虚拟机机制 Java垃圾回收机制 解释名词 J2SDK&JRE: J2SDK=JDK=Software Development Kit(软件开发包) JRE=J ...

  6. [C11] 推荐系统(Recommender Systems)

    推荐系统(Recommender Systems) 问题阐述(Problem Formulation) 将 推荐系统 纳入这门课程来讲有以下两个原因: 第一.仅仅因为它是机器学习中的一个重要的应用.在 ...

  7. [C6] Andrew Ng - Convolutional Neural Networks

    About this Course This course will teach you how to build convolutional neural networks and apply it ...

  8. The Python Debugger Pdb

    Python Debugger pdb The Python Debugger Pdb 可以直接在命令行中启动,调试程序 也可以写在代码中 命令行使用 可以直接在命令行指定要进行调试的程序 pytho ...

  9. 第02组 Beta冲刺(1/5)

    队名:無駄無駄 组长博客 作业博客 组员情况 张越洋 过去两天完成了哪些任务 初步任务分配 提交记录(全组共用) 接下来的计划 完善接口文档 还剩下哪些任务 学习软工的理论课 学习代码评估.测试 燃尽 ...

  10. JAVA基础系列:ThreadLocal

    1. 思路 什么是ThreadLocal?ThreadLocal类顾名思义可以理解为线程本地变量.也就是说如果定义了一个ThreadLocal,每个线程往这个ThreadLocal中读写是线程隔离,互 ...