之前我们的用例数据都是配置在 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. 通过using声明改变个别成员的可访问性

    C++的语法中通过在派生类中使用using声明可以忽略继承方式 , 而让派生类对于基类的私有和保护成员具有特殊的访问权限 , 甚至可以改变派生类对象对于基类成员的访问权限 . 个人认为这种语法很容易让 ...

  2. 今天遇到了不能创建mysql函数

    今天用navicat 不能创建函数,查询了 MySQL函数不能创建,是未开启功能: mysql> show variables like '%func%'; +----------------- ...

  3. mysql在B-Tree上创建伪哈希索引

    构建哈希的过程 select过程 长字符串下,构建索引可通过自定义哈希作为索引,本人通过实验,在3百多个数据记录的下,性能效果很明显,完全不是一个等级.以下为索引前后几种情况对比 无索引的url:直接 ...

  4. TensorFlow实现一个简单线性回归的例子

    __author__ = "WSX" import tensorflow as tf import numpy as np import matplotlib.pyplot as ...

  5. 学习实践:使用模式,原则实现一个C++数据库访问类

    一.概述 在我参与的多个项目中,大家使用libMySQL操作MySQL数据库,而且是源码即复用,在多个项目中有多套相同或相似的源码,这样的复用方式给开发带来了不变,而且libMySQL的使用比较麻烦, ...

  6. Hello World!!!

    C #include <stdio.h> int main() #main 入口函数 { printf("Hello,World!"); #printf 函数打印 ; ...

  7. Spring 的 Bean 管理(注解方式)

    Spring 的 Bean 管理(注解方式) 1. 导入必要的 jar 包和 xml 文件 使用注解需要导入 spring-aop 的 jar 包. applicationContext.xml 文件 ...

  8. C Looooops

    看了半天的同余 扩展欧几里得 练练手 C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 27079   A ...

  9. 阿里云语音合成(汉语英语)带UI界面的小程序(python)

    一,项目说明 将汉文转汉语.英文转英语,同时又有逗号<###English###>,<,,,>和句号<...>标志符用于文件处理.其中英文包含在### 英文 ### ...

  10. 【Javascript】 js的构造函数与原形对象的关系

    构造函数只是提供了一个创建对象的模板,它并不是对象的原形. 对象的原形是构造函数的原形,即object. ----------------------------------------------- ...