之前我们的用例数据都是配置在 Jmeter Http 请求中,每次需要增加,修改用例都需要打开 jmeter 重新编辑,当用例越来越多的时候,用例维护起来就越来越麻烦,有没有好的方法来解决这种情况呢?
  其实我们可以将用例的数据存放在 csv 文件中,然后通过 csv 文件配置来读取用例中的数据,执行测试。用例数据如下图所示:
  用例设计
  这里以 httpbin 接口为例,创建用例文件:jmeter-testcase.csv
  用例名称变量含义:
  ${caseSeq}:用例编号
  ${apiType}:api 类型
  ${apiSeq} :api 版本号
  ${apiName}:api 名称
  ${priority}:优先级
  ${url}:api 路径
  ${methods}:请求方法
  ${parameter}: 请求参数
  ${expectValue}:期望值,用于断言
  Jmeter 设置步骤:
  1.新建一个线程组,命名为:数据驱动
  2.创建一个 http 请求默认值,设置如下:
  3.添加一个循环控制器 步骤为:线程组——添加——逻辑控制器——循环控制器。 循环控制器的作用可以控制整个用例循环执行的次数。默认值是 1 根据用例数量可以修改为 4
  4.在循环控制器节点下创建 CSV 文件设置,具体配置内容如下:
  5.创建一个 if 控制器,步骤为:线程组——添加——逻辑控制器——if 控制器
  if 控制器的作用为根据不同条件执行不同的用例,例如这里根据不同的接口请求类型,分别创建了 GET 和 POST 两个控制器。
  GET 设置的条件语句如下:
  条件语句为:"${methods}"=="GET"其中 ${methods}表示引用 csv 中的 methods 中的值。
  参数:
  Interpret Condition as Variable Expression?:如果这个选项被选中,将不会使用 js 解析;条件表达式的值必须是 true(忽略大小写),这里我们取消勾选状态。
  Evaluate for all children:如果选中这一项,在每个子结点执行前都会计算表达式
  POST 条件语句设置为:"${methods}"=="POST"
  6.创建 GET 请求类型的用例如下
  用例名称格式:${caseSeq}_ ${apiSeq}_${apiName}
  断言设置如下:${expectValue}引用 csv 中对应的值。
  最后添加查看结果树,然后运行可以看到如下运行结果:
  7.POST 用例设置和 GET 类似,不过参数请求不一样,是在 body 中,如果发送的是json格式的参数,需要添加http信息头管理器。另外请求方式为:POST
  运行结果如下:
  8.最后在线程组添加一个查看结果树,执行可以查看全部用例执行情况。
  小结
  通过这样的数据驱动,当面对大量用例时在 jmeter 设置就非常方便,后续的用例维护也非常高效,因为不用在jmeter 一个个去单独修改用例了。

Jmeter接口测试之用例数据分离的更多相关文章

  1. Jmeter接口测试之用户自定义变量(九)

    在使用Jmeter做接口自动化测试中,经常会使用到公共的数据,那么就需要对这些公共的数据分离出来,不管是基于测试框架的思想,还是使用工具来进行做自动化测试,公共数据的分离首先是需要思考的.这里就以获取 ...

  2. Jmeter接口测试之案例实战

    Jmeter是apacheg公司基于Java开发的一款开源的压力测试工具,安装Jmeter之前先安装Jdk,具体JDK安装和环境变量配置自行百度.这里不概述. 1.添加线程组 测试计划->添加- ...

  3. Jmeter接口测试之参数传递(十三)

    在接口自动化测试中,经常会遇到的一种场景就是参数的场景,比如在用户列表中获取所有的用户列表,然后获取到某一个用户的ID,查看该用户的详细信息.首先在这里理清思路,它的流程是,首先获取到数据,然后在Jm ...

  4. Jmeter接口测试之案例实战(十一)

    在前面的知识体系中详细的介绍了Jmeter测试工具在接口自动化测试中的基础知识,那么今天更新的文章主要是对昨晚的上课内容做个总结. 首先来看Jmeter测试工具在图片上传中的案例应用.首先结合互联网产 ...

  5. Jmeter接口测试之参数化(十)

    在接口测试中,某些时候一些场景会使用到参数化的场景,参数化简单的说就是同一个请求需要不同的数据,比如在性能测试中需要并发多个用户的场景,这样的目的是为了模拟真实的用户场景,需要模拟不同的账号,这里就需 ...

  6. jmeter接口测试之登录测试

    注册登录_登陆接口文档 1.登录 请求地址: POST   xxxxxx/Home/Login 请求参数: args={ LoginName:"mtest", // 登录名,可以为 ...

  7. Jmeter接口测试之Get请求

    [一] 在测试计划下面添加一个线程组---------->在线程组下面分别添加HTTP请求.响应断言.BeanShellPreProcessor.察看结果树.聚合报告等内容. [二] 将使用的协 ...

  8. Jmeter 接口测试之MD5加密函数(函数助手篇)

    转自:https://blog.csdn.net/hhyangel372/article/details/81571058 本文给大家介绍一下如何使用Jmeter自带的函数对常量和变量进行简单的加密处 ...

  9. 老李分享:接口测试之jmeter

    老李分享:接口测试之jmeter   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.移动端自动化测试很多人把他仅仅理解成appu ...

随机推荐

  1. django channels

    django channels django channels 是django支持websocket的一个模块. 1. 安装 `pip3 install channels` 2. 快速上手 2.1 在 ...

  2. Codeforces 1236B. Alice and the List of Presents

    传送门 显然每种礼物是互相独立的,一个礼物的分配不会影响另一个礼物 对于某个礼物 $x$ , 对于每个盒子来说,要么选要么不选,那么可以看成长度为 $m$ 的二进制序列 这个序列第 $i$ 位的数就代 ...

  3. Spring 容器中 Bean 的生命周期

    Spring 容器中 Bean 的生命周期 1. init-method 和 destory-method 方法 Spring 初始化 bean 或销毁 bean 时,有时需要作一些处理工作,因此 s ...

  4. asp.net 13 缓存,Session存储

    1.缓存 将数据从数据库/文件取出来放在服务器的内存中,这样后面的用来获取数据,不用查询数据库,直接从内存(缓冲)中获取数据,提高了访问的速度,节省了时间,也减轻了数据库的压力. 缓冲空间换时间的技术 ...

  5. 【web性能优化】当用户输入网址后发生了什么?

    简单叙述 这个过程可以大致分为两个部分:网络通信和页面渲染. 一.网络通信 互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信.分层由 ...

  6. 动画方案 Lottie 学习(一)之基础

    参考 lottie系列文章(一):lottie介绍 lottie系列文章(二):lottie最佳实践 lottie系列文章(三):动画设计规范 lottie系列文章(四):源码分析——svg渲染

  7. svn安装方法

    1.下载site-1.6.5svn插件 2.

  8. 关于登陆界面,页面没有刷新完毕,点击登陆跳转到一个接口的bug

    现象 输入完密码点击登陆就跳转到了如下的页面 分析原因: 第一:查看html页面   页面中的html  登陆用的是form表单  表单中还写了属性  action   即允许跳到某一个接口,这里是没 ...

  9. 这是一个用于判断IE浏览器版本的紧凑脚本

    这是一个用于判断IE浏览器版本的紧凑脚本IE浏览器,不管它们是什么版本,总是与Web标准有些不兼容.对于编码人员来说,这很困难.为了考虑IE的兼容性,不管它是写CSS还是写JS,IE通常都会被特殊处理 ...

  10. VS code自定义语法高亮

    语法高亮向导(Syntax Highlight Guide) (https://code.visualstudio.com/api/language-extensions/syntax-highlig ...