zoukankan      html  css  js  c++  java
  • Jmeter基础004----增加参数化

    一、参数化概述

    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+函数

  • 相关阅读:
    [置顶] Ubuntu 12.04以上如何恢复GNOME传统界面
    Cstyle的UEFI导读之SEC第一篇 Reset Vector
    二叉排序树的实现
    【最长上升子序列】HDU 1087——Super Jumping! Jumping! Jumping!
    java中的代理
    eclipse连接远程hadoop集群开发时0700问题解决方案
    eclipse连接远程hadoop集群开发时权限不足问题解决方案
    垂死或涅槃重生 -- Delphi XE5 我们将宣布感情的回归
    百度地图 Android SDK
    MySQL第五个学习笔记 该数据表的操作
  • 原文地址:https://www.cnblogs.com/geqiandeqingmu/p/12993591.html
Copyright © 2011-2022 走看看