一、参数化概述

1、参数化概念

参数化就是动态的获取并设置数据,当执行批量操作时,如批量插入或批量删除,之前每执行完一次就需要修改一次,效率太低,参数化可以代替人工获取并设置数据,安全且高效!

2、Jmeter参数化组件

  • CSV Data Set Config----CSV数据设置组件
  • 用户参数
  • 用户定义的变量
  • 函数

二、参数化实现之CSV Data Set Config

1、概述

CSV Data Set Config----CSV数据设置组件,是参数化的实现组件之一,通过这个组件可以动态获取并设置数据,实现批量操作,如:批量添加操作(执行一次,将多条数据插入到数据库)。

2、实例1:参数化登录账号

我们录制的脚本,内容都是固定的,比如手机号、验证码都是我们再录制过程中输入的,如果我们希望模拟不同用户登陆,那么我们并不需要录制很多个脚本,而只要将脚本中的用户名、密码变成变量,而线程执行时,不同线程取得不同的变量值即可。
     下面我们就举例说明如何参数化登陆账号。

(1)测试登录接口:如下图,新建登陆的HTTP请求并运行,确保登录接口运行正常。

(2)创建一个文本文档,标准的CSV格式文件,如下图包括3条数据,每一行数据对应一条登录信息,不同字段之间使用英文逗号分隔。

(3)线程组右键---添加---配置元件---CSV Data Set Config----CSV,创建一个CSV组件,并声明数据源、编码集以及解析格式,如下图所示:

(4)设置线程组的线程数为3(因为文件中有三条登录数据),并修改HTTP请求中的参数值,调用CSV数据文件设置中定义的变量,调用格式${变量名},如下图所示:

(5)运行测试计划,查看结果树的运行结果,如下图所示:

 3、实例2:批量添加

 实现思想:

 实现步骤:

(1)创建CSV 数据文件设置,如下图所示:

(2)创建HTTP请求,并在请求中调用CSV中定义的变量

(3)编辑文本文档,存储要添加的三条数据

(4)设置线程组循环次数为3,并运行测试计划,查看察看结果树显示。

三、参数化之用户参数

1、用户参数与CSV参数化的区别

用户参数和CSV都是将数据设置进第三方,然后循环读取数据,区别在于:CSV是将数据设置进外部的文本文档,而用户参数是将数据设置进Jmeter内置组件。

2、实现流程  

(1)搭建框架:创建测试计划、线程组、HTTP请求(请求的JSON数据先不设置)。注意:执行次数是3次(不是设置循环次数,而是设置线程数)

(2)创建Jmeter内置组件存储要插入的数据:测试计划右键----添加----前置处理器----用户参数,在用户参数组件界面添加4个变量、3个用户,如下图所示:

注意:因为此处添加的是用户,每个用户对应一个线程 ,添加几个用户就应该设置几个线程,所以这里设置的是线程组而不是循环次数。

(3)将用户参数组件中的变量名称设置进HTTP请求的Json数据格式中,调用格式:${变量名},如下图所示:

(4)运行测试计划,查看察看结果树。

四、参数化之用户定义的变量

1、需求

当系统执行增删改查操作时,资源路径不一定相同,但存在部分相同,如:都是/api/departments/开头,为了提高编写路径的效率,可以将公共路径定义成变量,然后再在路径中使用${变量名}调用变量。注:一般定义、存储全局使用的变量。

2、实现过程

(1)将公共的路径数据提取出来使用一个组件存储,如:/api/departments/。测试计划右键----添加----配置元件----用户定义的变量,创建用户定义的变量组件,添加自定义变量,如下图所示:

(2)分别创建HTTP请求,在路径中公共部分调用定义的路径变量,非公共部分路径与原来一致,如下图所示:

(3)运行测试计划,查看结果树。

五、参数化之函数

1、需求

函数是程序中最基本的封装单元,封装了一些常用的功能,比如计数器。在实际应用中当我们需要循环10次查询信息时,结果数的请求名称都是一样的,我们可以使用计数函数添加标号以示区分。

2、实现流程

(1)打开Jmeter内置的函数组件,一共有三种方式:

  • 选项+函数助手对话框
  • ctrl+shift+F1
  • 工具栏倒数第二个图标

(2)选择要使用的函数,给函数传参,并用Jmeter生成调用格式,如下图:

注:__counter函数的参数:true,每一个用户单独一个计数器;false,所有用户共用一个计数器.

(3)在需要调用函数的位置使用Jmeter生成的调用格式:${_函数名(参数)}

(4)运行测试计划,查看结果树,如下图所示:

六、总结

1、参数化----CSV Data Set Config

     概念:动态获取并设置数据,操作数据高效安全(程序代替人工)

实现思想+具体流程:

2、参数化----用户参数

实现思想:将数据单独存储,然后再将数据读取到http请求的JSON 数据中

实现流程:

  • 设置执行次数(用户数)
  • 添加组件用户参数存储多条记录
  • 读取数据格式: ${变量名 )

3、参数化----用户定义的变量

作用:存储全局性数据

添加格式:添加用户定义的变量组件-----键和值

调用格式:${变量名}

4、参数化----函数

概念:程序中的功能单元,封装了部分实现

实现:

  • 打开函数功能模块
  • 选择要调用的函数+设置参数+生成调用格式
  • 在需要使用的位置调用即可

5、四种参数化方案比较

  • CSV和用户参数使用思想一致,流程上后者更简单,但是实际应用中,使用CSV居多,因为数据量大时,CSV更方便
  • 用户定义的变量一般用来存储全局变量,但是使用场景较少
  • 函数实现更为灵活且内置了好多实现。

总结:最常用的是参数化方法是:CSV+函数

Jmeter基础004----增加参数化的更多相关文章

  1. 『动善时』JMeter基础 — 24、JMeter中使用“用户参数”实现参数化

    目录 1.用户参数组件介绍 2.用户参数界面介绍 3.使用"用户参数"组件实现参数化 (1)测试计划内包含的元件 (2)线程组元件内容 (3)HTTP请求组件内容 (4)用户参数组 ...

  2. 【Jmeter基础知识】Jmeter的三种参数化方式

    JMeter的三种参数化方式包括: 1.用户参数 2.函数助手 3.CSV Data Set Config 一.用户参数 位置:添加-前置处理器-用户参数 操作:可添加多个变量或者参数 二.函数助手 ...

  3. 『动善时』JMeter基础 — 22、JMeter中实现参数化(CSV)

    目录 1.参数化的定义 2.什么情况下需要用到参数化 3.JMeter实现参数化的方式 4.CSV数据文件设置界面详细说明 (1)CSV数据文件设置组件界面说明 (2)补充说明:Recycle on ...

  4. 『动善时』JMeter基础 — 23、JMeter中使用“用户自定义变量”实现参数化

    目录 1.用户自定义变量介绍 2.使用"用户自定义变量"实现参数化 (1)测试计划内包含的元件 (2)数据文件内容 (3)测试计划界面内容 (4)线程组元件内容 (5)CSV数据文 ...

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

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

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

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

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

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

  8. Jmeter(十一)参数化

    有关参数化的概念,前面有篇随笔已经粗略的提到了参数化的一点内容.本篇来主要记录参数化. Jmeter的参数化方式有很多,在此我来一一记录,对待不同个规模.业务模型.数据量来进行记录参数化的方法. 一. ...

  9. jmeter 基础功能详解

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

随机推荐

  1. day18 迭代器

    1,迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stoplteration异常,只能往后走不能往前退: 2,可迭代对象:实现了迭代器协议的对象(如何实现: ...

  2. web自动化的一些基础知识

    selenium 原理 就是通过webdriver 给浏览器的驱动发送命令,打开浏览器,建立http通信请求 然后通过发送各种命令让浏览器进而执行各种操作 xpath 语法 #xpath定位总结:'' ...

  3. pytest跟unittest的优势跟劣势

    一.用例编写规则 1.使用unittest编写测试用例必须遵循以下规则: 1.必须首先 导入 import unittest 2.测试类必须要继承 unittest.TestCase 3.测试方法必须 ...

  4. [转]前人挖坑,后人填坑—如何把那些bug挖掘出来

    当我们放下一个项目转投下一个时,手头的东西就要转交给他人处理,或者..不再有人处理,可代码还在那里,搞不好你就引用了别人的东西,保不准哪天别人的代码里就爆出了个大 bug,当然这里的“别人”也可能是 ...

  5. Vim的三款实用插件

    Vim 是 Linux 下的常用文本编辑器,但也经常被称为是一个上古神器,因为它对于初学者而言相当不友好,也不好入门. 但是,对于高手而言,他们不仅将 Vim 玩得很溜,而且还将它当作代码开发的主要工 ...

  6. seo网站优化收录过少的病因分析-智狐seo顾问

    seo网站优化收录过少的病因分析 很多网站优化人员都了解,一个网站收录的重要性,企业网站要想可以在百度中占据一个良好的排名,获取的权重更高,那么网站收录自然就上去了,很多站长们在操作的过程中就会出现不 ...

  7. PowerPC-MPC56xx Flash模式代码启动过程

    https://mp.weixin.qq.com/s/iruM5VwKgnH_7nmIQxO0-g   参考第5章   In order for the e200z4d core to be able ...

  8. Chisel3 - Tutorial - Parity

    https://mp.weixin.qq.com/s/OtiQnE52PwdCpvmzJ6VFnA   奇偶发生器.统计输入中1的个数,如果为偶数则输出0,奇数则输出1.   参考链接: https: ...

  9. 关于URL优化的一些经验

    URL在搜索结果列表中时显示内容之一.设计网站结构时需要对目录及文件命名系统做事先规划.总的原则是首先从用户体验出发,URL应该清晰友好.方便记忆,然后才考虑URL对排名的影响.具体可以考虑以下几个方 ...

  10. JAVASE(十七) 多线程:程序、进程、线程与线程的生命周期、死锁、单例、同步锁

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.程序.进程.线程的理解 1.1 概念 程序(program)是为完成特定任务.用某种语言编写的一组指 ...