在请求过程中,有时我们需要在请求中设置一些变量来测试不同的场景。

提示:在调试请求过程中,无关的请求可以暂时禁用掉,选择某个暂时不用的请求,右键--禁用

Jmeter 支持以下类型变量:所有类型的变量在引用时的格式均为${变量名}

  • 用户自定义变量
  • 函数生成变量
  • BeanShell 变量
  • 数据文件变量

用户自定义变量

  设置步骤: 选中请求——添加——前置处理器——用户参数 设置变量名称为 user,值为 hancel

  

  在请求时引用变量如下所示: 变量引用格式为:${user}

函数生成变量

  Jmeter 有许多内置的函数,可以生成随机数。创建步骤:点击菜单栏选项——函数助手对话框——下拉选择

  __Random()函数 函数配置如下:

BeanShell 变量

  什么是 Bean Shell

    •   BeanShell 是一种完全符合 Java 语法规范的脚本语言,并且又拥有自己的一些语法和方法;
    •   BeanShell 是一种松散类型的脚本语言(这点和 JS 类似);
    •   BeanShell 是用 Java 写成的,一个小型的、免费的、嵌入式的 Java 源代码解释器,具有对象脚本语言特性,非常精简。
    •   BeanShell 执行标准 Java 语句和表达式,另外包括一些脚本命令和语法。

    官网:http://www.BeanShell.org/

  Jmeter有哪儿些Bean shell?

    • 定时器:BeanShell Timer
    • 前置处理器:BeanShell PreProcessor
    • 采样器:BeanShell Sampler
    • 后置处理器:BeanShell PostProcessor
    • 断言:BeanShell 断言
    • 监听器:BeanShell Listener

CSV数据文件变量

  CSV 数据文件变量是指从外部 csv 文件读取数据出来作为变量。

  设置步骤: 选择请求——添加——配置元件——CSV 数据文件设置

  创建 csv 文件(最好不用用记事本创建,推荐用 Nodepad++)文件编码为 UTF-8 文件内容如下:

  user_data.csv

  name1,pass1

  CSV 数据文件设置如下:

 

  在 Post 请求中引用变量数据如下:

  运行之后在查看结果树中请求选项栏可以看到获取的变量数据。

CSV 参数化

  针对之前的 POST 接口进行如下参数遍历测试:

  接口如下:

  http://httpbin.org/post

  发送参数:user_data.csv

  

  在之前的 csv 数据文件设置需要需改配置如下:表示把所有数据读取一遍,且不重复。

  

  • Filename: 指保存信息的文件目录,可以相对或者绝对路径。否则会在jmeter日志文件(jmeter.log目录位置D:\Program Files\apache-jmeter-2.13\bin)中提示:系统找不到指定文件,运行脚本后,登录失败。
  • File encoding: 保持默认。默认为ANSI
  • Variable Names: 给csv文件中各列起个名字(有多列时,用英文逗号隔开列名)便于后面引用
  • Delimiter:与 .csv文件的分隔符保持一致。如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t;
  • Allow quoted data? :是否允许引用数据,是否需要"123" 双引号内的数据
  • Recycle on EOF?:到了文件尾是否循环,True—继续从文件第一行开始读取,False—不再循环
  • Stop thread on EOF? :到了文件尾是否停止线程,True—停止,False—不停止,注:当Recycle on EOF设置为True时,此项设置无效。
  • Sharing mode:共享模式,All threads –所有线程,Current thread group—当前线程组,Current thread—当前线程。

  接口请求名称格式更改为:post请求_参数化${user},方便我们后续查看数据遍历情况。

  最后修改线程组的线程数量,因为数据中有 4 组数据,所以设置为 4.

  运行查看结果如下:

Jmeter接口测试(五)变量及参数化的更多相关文章

  1. Jmeter接口测试,变量是订单和订单明细,怎么一起传?

    ", "price": 12.0, "orderDate": "2019-07-05 10:40:00", "order ...

  2. Jmeter中的变量(三)

    变量(Variables) Jmeter中的变量(参数化)目的是为了提供改变请求变化的机制.比如登录场景,一般不能使用同一个账号做并发操作. 变量的特点 1) JMeter变量对于测试线程而言是局部变 ...

  3. jmeter接口测试-调用java的jar包-csv参数化请求-BeanShellPreProcessor生成验签作为请求验证参数-中文乱码----实战

    背景及思路: 需求:要做 创建新卡 接口的测试,要求: 1. 不需要每次手动修改请求参数. 方案:文中先用excle将数据准备好,导出为csv格式,再用jmeter的csv请求进行参数化 2. 卡号需 ...

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

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

  5. jmeter接口测试实战-创建用户

    jmeter接口测试实战-创建用户 相信大多数看到标题的同学都会有疑问, 创建用户不是很简单吗, 调用一下创建用户接口, 传入指定入参, 用户即可创建成功, 今天我们的实战来讲讲创建场景.通过接口创建 ...

  6. JMeter接口测试实战-动态数据验证

    JMeter接口测试实战-动态数据验证 说到验证就不得不说断言, 先来看下JMeter官方给出断言(Assertion)的定义, 用于检查测试中得到的响应数据等是否符合预期,用以保证测试过程中的数据交 ...

  7. JMeter接口测试和压力测试

    JMeter接口测试和压力测试 JMeter可以做接口测试和压力测试.其中接口测试的简单操作包括做http脚本(发get/post请求.加cookie.加header.加权限认证.上传文件).做web ...

  8. 全网最全最细的jmeter接口测试教程以及接口测试流程详解

    一.Jmeter简介 ​ Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试. Jmeter具备高移植性,可以实现跨平台运行. Jmeter可以实 ...

  9. Jmeter接口测试实战-数据传递

    Jmeter接口测试实战-数据传递 接口与接口之间没有关联的测试是缺乏意义和没有灵魂的,只有数据在不同接口之间传递才能勾画出业务场景重要的链路. 我们用较为通用的http/https协议,接口普遍返回 ...

  10. Jmeter 接口测试实战-有趣的cookie

    Jmeter 接口测试实战-有趣的cookie 场景: 接口测试时常都需要登录,请求方式(post), 登录常用的方法有通过获取token, 获取session, 获取cookie, 等等. 这几种都 ...

随机推荐

  1. 题解 P1868 【饥饿的奶牛】

    题目链接:P1868 饥饿的奶牛 题面 有一条奶牛冲出了围栏,来到了一处圣地(对于奶牛来说),上面用牛语写着一段文字. 现用汉语翻译为: 有N个区间,每个区间x,y表示提供的x~y共y-x+1堆优质牧 ...

  2. memset struct含有string的崩溃

    2019/4/2 补充一下 这里如果填充为0,则不会崩溃,填充为非0时,再次调用赋值就会崩溃 推测非0拷贝破坏了string内部的数据结构,不要对任何类使用memset https://blog.cs ...

  3. spring中MessageSource的配置使用方法3--ResourceBundleMessageSource【转】

    本文转载仅供自己学习收录,不做任何商业用途,如有需要请访问原地址:http://blog.csdn.net/qyf_5445/article/details/8124431 ApplicationCo ...

  4. 浅析Java CompletionService

    JDK的CompletionService提供了一种将生产新的异步任务与使用已完毕任务的结果分离开来的服务.生产者 submit 运行的任务.使用者 take 已完毕的任务,并依照完毕这些任务的顺序处 ...

  5. javascript:typeof与instanceof区别

    from:http://www.wxwdesign.cn/article/skills/javascript_typeof_instanceof.htm JavaScript中typeof和insta ...

  6. jenkins ansible

    ansible-playbook - hosts: test remote_user: root vars: warpath: "/root/.jenkins/workspace/172.1 ...

  7. springboot整合mybatis将sql打印到日志

    在前台请求数据的时候,sql语句一直都是打印到控制台的,有一个想法就是想让它打印到日志里,该如何做呢? 见下面的mybatis配置文件: <?xml version="1.0" ...

  8. 初识Qt鼠标、键盘事件及定时器和随机数

    1.新建Qt Gui应用,项目名称为“myEvent”,基类名称为QWidget,类名称为Widget. 2.widget.h文件中添加以下代码,该段代码中包含了三个事件函数和一个槽函数 privat ...

  9. 模糊控制——(4)Sugeno模糊模型

    1.Sugeno模糊模型 传统的模糊系统为Mamdani模糊模型,输出为模糊量. Sugeno模糊模型输出隶属函数为constant或linear,其函数形式为: 它与Mamdani模型的区别在于: ...

  10. InnoDB数据页结构

    前言 ​ 关于数据库我们知道是通过内存对磁盘进行操作的,也知道数据会落实到磁盘上,但是数据在磁盘上的存储结构可能大家还不是很清楚. ​ MySQL服务器上负责对表中的数据的读取和写入的工作的部分是存储 ...