声明:本文所记录的仅本次操作学习到的知识点,其中商城IP错误,请自行更改。

背景:一个接口的不同情况,其实就是请求参数不一样、期望结果不一样。把这些不一样的东西都提取出来进行管理,下次可以直接使用。因此需要用到【数据驱动-参数化】。

思路

  • 准备文件;
  • 配置CSV控制元件--引用文件、设置变量名;
  • 接口请求引用这些变量;
  • 因为需要运行多次,需要加循环控制器;
  • 运行后查看结果树。

1.认识JMeter

(1)CSV Data Set Config

  CSV格式的数据集配置。很多配置数放在一个文档里面,然后上传到JMeter里,实现数据驱动。

2.CSV Data Set Config

(1)准备好配置文件

① 首行为标题行,显示变量名;

② 从第二行开始显示变量值,每个值都是按照首行变量名的顺序显示;

③ 有为空的变量值,不能省略,为空显示;

④ 所有标点符号都是英文符号;

⑤ 文件格式最好为笔记本 .txt 格式(常用的格式);

(2)新建【CSV Data Set Config】

右击【线程组】【添加】【配置元件】【CSV Data Set Config】

(3)配置【CSV Data Set Config】

① 文件名:点击【浏览】,选择准备好的【登录】文件。

② 文件编码:UTF-8。

③ 变量名称:配置文件中首行的变量名(直接复制粘贴即可)。CASEName,accounts,pwd,res

④ 忽略首行:True(首行为标题行,不是参数值)。

3.HTTP请求默认值-SIT环境

虽然本次不需要设置默认值,建议养成习惯,方便多环境测试。

4.循环控制器

(1)新建【循环控制器】

右击【线程组】【添加】【逻辑控制器】【循环控制器】

(2)配置【循环控制器】:

① 循环次数:根据CSV配置文件中的数据来控制循环次数,一次循环就是读取一行值(忽略首行),一共4行值,就只要读取4次。

5.HTTP请求【登录】

(1)新增【登录】

  在【循环控制器】层级下新增【登录】HTTP请求。

(2)设置【登录】

直接复制粘贴上个操作的【登录】
        ② 参数值${变量名} :注意变量名需与【CSV数据文件设置】中的变量名一致

(3)设置【JSON断言】

  由于CSV配置文件中的每行数据的预期结果不一样,所以【断言】的预期结果也不能固定为“登录成功”;

  注意!这里两个地方获取值的方式不一样:

    一个是获取响应数据中的字段值,通过JSONPATH方式取值,$.字段名

    一个是获取变量名称的参数值,通过函数 ${变量名} 的方式。

①预期结果:${res},变量名res是【CSV数据文件设置】中的变量名。

7.查看结果树

①层级注意:【循环控制器】应该在【CSV数据文件设置】层级外面。

  问题:四次登录都是同一个用户【20200102】登录成功,响应数据除了【token】其它字段值都一致。

  原因:JMeter线程组是从上往下执行,第一次读取【CSV数据文件设置】中的数据,是从第2行(忽略首行)开始,读取第2行数据,然后执行到【控制循环器】时,循环执行了4次。后面第3行、第4行等数据都没有机会再获取了,因为【循环控制器】执行完后,整个线程组就跑完了。

解决:把【CSV数据文件设置】放在【循环控制器】层级下面,【登录】的前面。

②预期结果不一致(公司比较较真)

  一定要有一个能够确认需求的人去确认,不要测试自己跟开发扯,没意义。

第七节 JMeter基础-高级登录【数据驱动-参数化】的更多相关文章

  1. 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第七节:PS基础:UV动画

    <使用Cocos2d-x 开发3D游戏>系列在线课程 第七节:PS基础:UV动画 视频地址:http://edu.csdn.net/course/attend/1330/20807 交流论 ...

  2. JMeter基础之--元件的作用域与执行顺序

    前面有介绍过jmeter的元件类别,对于新手来说,jmeter的元件是还是不少的,如果我们按照每一个元件的每一个参数的含义去学习,无疑会降低学习性能测试的热情,就算我们熟悉了所有元件以及元件上的参数了 ...

  3. JMeter基础之一 一个简单的性能测试

    JMeter基础之一 一个简单的性能测试 上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢.这一节创建一个简单的测试计划来使用这些元件.该计划对应的测试需求. 1)测 ...

  4. 基于Extjs的web表单设计器 第七节——取数公式设计之取数公式的使用

    基于Extjs的web表单设计器 基于Extjs的web表单设计器 第一节 基于Extjs的web表单设计器 第二节——表单控件设计 基于Extjs的web表单设计器 第三节——控件拖放 基于Extj ...

  5. delphi 线程教学第七节:在多个线程时空中,把各自的代码塞到一个指定的线程时空运行

    第七节:在多个线程时空中,把各自的代码塞到一个指定的线程时空运行     以 Ado 为例,常见的方法是拖一个 AdoConnection 在窗口上(或 DataModule 中), 再配合 AdoQ ...

  6. jmeter 基础功能详解

    jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...

  7. centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs ,nr_inodes, LVM,传统方式扩容文件系统 第七节课

    centos Linux下磁盘管理   parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpf ...

  8. CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第七节

    第七节:使用下一代CUDA硬件,快乐加速度 原文链接 Rob Farber 是西北太平洋国家实验室(Pacific Northwest National Laboratory)的高级科研人员.他在多个 ...

  9. 转 JMeter基础之--元件的作用域与执行顺序

    前面有介绍过jmeter的元件类别,对于新手来说,jmeter的元件是还是不少的,如果我们按照每一个元件的每一个参数的含义去学习,无疑会降低学习性能测试的热情,就算我们熟悉了所有元件以及元件上的参数了 ...

  10. Jmeter基础之---jmeter基础概念

    Jmeter基础之---jmeter基础概念 JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. JMeter 介绍: 一个非常优 ...

随机推荐

  1. Python 数据降级(重采样)

    在数据处理中,经常有高频数据转成低频,秒级数据转成分钟.小时数据等.我们将讨论以下方法: 使用 Pandas 的 resample 方法: 示例:将天数据转化成月数据. 代码示例: import pa ...

  2. Vue cli之单文件组件

    组件有两种:脚本化组件.单文件组件 脚本化组件的缺点: html代码是作为js的字符串进行编写,所以组装和开发的时候不易理解,而且没有高亮效果. 脚本化组件用在小项目中非常合适,但是复杂的大项目中,如 ...

  3. jQuery实现简单的模态框

    <!-- jquery模态框 --> <!DOCTYPE html> <html lang="en"> <head> <met ...

  4. 国产大语言模型ChatGLM3本地搭建、使用和功能扩展

    1.官网 ChatGLM3 2.下载ChatGLM3源码 直接在https://github.com/THUDM/ChatGLM3,下载源码 3.下载模型 如果显卡8G一下建议下载ChatGLM3-6 ...

  5. 2024-06-05:用go语言,给定三个正整数 n、x 和 y, 描述一个城市中由 n 个房屋和 n 条街道连接的情况。 城市中存在一条额外的街道连接房屋 x 和房屋 y。 需要计算对于每个街道数(

    2024-06-05:用go语言,给定三个正整数 n.x 和 y, 描述一个城市中由 n 个房屋和 n 条街道连接的情况. 城市中存在一条额外的街道连接房屋 x 和房屋 y. 需要计算对于每个街道数( ...

  6. 关于正在开发中的DjangoStarter v3版本

    前言 最近做的这个项目大量使用了 python 及其相关的生态,因此自然而然选择了我的 DjangoStarter 作为后端框架 之前 v2 版本是用 RestFramework 做接口的,后面我试用 ...

  7. kettle从入门到精通 第三十一课 mysql 数据连接连接池配置

    无论开发应用程序还是做ETL研发,都离不开连接池的应用,如下是kettle中mysql 连接池设置界面,今天重点讲解下连接池中的参数配置. defaultAutoCommit 当 defaultAut ...

  8. mysql备份实战

    1.备份恢复演练(mysqldump+binlog) 知识储备 如下内容.. 全量备份 全量数据,指的是某一整个数据库(如kings)中所有的表.以及表数据,进行备份. 例如备份所有数据库.以及所有数 ...

  9. 点击li 该li变色

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. kylin-3.1.1-bin-hadoop3搭建,构建cube报的错误,Cannot modify dfs.replication at runtime. It is not in list of params that are allowed to be modified at runtime

    主要是每次构建cube时会去读取kylin安装目录下的conf/kylin_hive_conf.xml文件, 副本是无法在hive查询时修改的,注释掉这两项 这个其实还有一些参数的控制: 添加这俩个参 ...