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 ...
随机推荐
- TypeScript 学习笔记(二)
块级作用域变量: 1.不能在被声明前读或写 console.log(num); let num: number = 0; // 报错 2.仍然可以在一个拥有块级作用域的变量声明前通过函数捕获它,但不能 ...
- SRDC - ORA-30036: Checklist of Evidence to Supply (Doc ID 1682700.1)
SRDC - ORA-30036: Checklist of Evidence to Supply (Doc ID 1682700.1) Action Plan 1. Execute srdc_db_ ...
- Visual Studio Code 配置 EasyLESS,如果想用less,但又不想在组件中直接添加 style 时可以参考
在用 vue 画页面时,如果想用less,但又不想在组件中直接添加 style ,可以使用 vs code 的插件:EasyLess EasyLess 安装好后必须在 setting.json 中对它 ...
- Ubuntu16.04初始配置
Ubuntu16.04初始化 清理系统 删除libreoffice:sudo apt-get remove libreoffice-common 删除Amazon链接:sudo apt-get rem ...
- react中antd的表格自定义展开
antd的表格官方案例中给出的都是固定的图表展开,在做需求的时候,需要使用点击最后一列,然后出现展开内容,实现效果图如下 在最开始设置一个全局变量 const keys = [];在设置列参数的函数中 ...
- luoguP4103 [HEOI2014]大工程
题意 建出虚树DP. 设\(f[i]\)表示i的子树的第一问答案,\(minn[i]\)表示\(i\)的子树中到\(i\)最近的关键点,\(maxx[i]\)表示\(i\)的子树中到i距离最远的关键点 ...
- 解决静态方法调用注入的service
在使用jpa的复杂查询时,声明了specification时声明为静态方法,导致注入的service无法使用,故想到俩种方式,一种手动注入,一种注解注入,此文使用的时注解注入: 解决静态方法调用注入的 ...
- spring 注解AOP
aspectAnnotation的切面信息,加到了AnnotationAwareAspectJAutoProxyCreator的advisorsCache属性里面去了. 解析annotationSe ...
- SpringDataRedis入门Demo
步骤: 约定>配置>代码 在pom.xml中导入依赖(redis和jedis以及其他所需的依赖) > 配置相关配置文件(redis-config.properties 和applic ...
- 【Oracle】RMAN duplicate复制库
基础环境: 172.17.4.60 操作系统:Linux 6.4 数据库:Oracle11gR2 (源数据库) 172.17.4.61 操作系统:Linux 6.4 数据库:Oracle11gR2 ( ...