Jmeter关联实现及参数化使用解析
前言
一、Jmeter介绍
- 一款融合接口、性能都能完成的测试工具
- 纯JAVA开发的工具
- 开源工具
- 支持多种协议
- 应该是测试业界目前应用最多的工具之一
二、接口执行实现
- 添加HTTP取样器:右击测试计划--新建并右击线程组--添加--取样器--新增HTTP请求
- 在HTTP请求元件中添加相应请求信息(请求行、请求头、请求正文)
- 添加察看结果树:右击线程组--添加--监听器--新增察看结果树
- 保存刚设置的接口脚本,点击执行
三、关联实现
3.1 关联的概念
关联也称为串行传参或数据依赖,即上一个接口返回的内容的部分值作为下一个接口运行的参数的过程。
3.2 关联的实现步骤
- 在jmeter中录入A、B两个接口的信息(A为上一个接口、B为下一个接口,方便下面描述)
- 右击 A 接口的取样器 -- 添加 -- 后置处理器 -- 正则表达式提取器
- 在正则表达式提取器设置截取B接口所需要的参数信息,参数名假定为token
- 进入 B 接口的取样器,把需要填入A接口参数的地方用 ${token} 来替换
- 备注:如果返回的响应正文是json数据,还可以使用JSON提取器
正则表达式提取器界面操作介绍:
JSON提取器界面操作介绍:
四、参数化实现
参数化是为了让相同的模块、方法使用不同的参数进行测试,达到提高测试覆盖率的目的,jmeter实现参数化的方式很多,常用的方式有:
用户定义的变量实现
函数助手对话框的部分函数实现
依次进入--tools菜单--函数助手对话框,部分函数举例如下:
${__machineIP()}函数:
${__Random()}函数:
${__RandomDate()}函数:
${__RandomString()}函数:
利用csv文件实现
CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,jmeter使用csv文件也可以来进行参数化。
通过右击线程组--添加--配置文件--csv数据文件设置,界面如下:
五:总结
- 关联和参数化是jmeter必备技能之一,必须掌握
- 关联可以扩展到实现一些常见的业务场景,比如随机对商品下单、随机选择选项等
- 进行分布式性能测试的时候,csv文件注意保持每台独立
- 参数化这一块还可以调用数据库数据、利用Bean shell取样器写java代码来实现等
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Jmeter 中 CSV 如何参数化测试数据并实现自动断言示例详解
当我们使用Jmeter工具进行接口测试,可利用CSV Data Set Config配置元件,对测试数据进行参数化,循环读取csv文档中每一行测试用例数据,来实现接口自动化.此种情况下,很多测试工程师只会人工地查看响应结果来判断用例是否通过. 其实我们同样可利用CSV Data Set Config来帮助我们实现自动断言. 思路:将每一条用例的预期结果一并保存在csv文档中,循环读取文档中的期望结果,来跟实际运行的结果进行一致性判断,高效实现接口自动化. 示例: 1.整理测试数据及预期结果的CS
-
Jmeter参数化实现原理及过程解析
背景: 在实际的测试工作中,我们经常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件的功能.这种测试方式在业界称为数据驱动测试,而在实际测试工作中,测试工具中实现不同数据输入的过程称为参数化设置. jmeter提供多种参数化设置的方式,常用的有: 1.使用 用户定义的变量元件 实现 2.使用 用户参数元件 实现 3.使用 函数助手 实现 4.使用 CSV 数据文件设置元件 实现 5.其它方式(数据库数据.beanshell等)实现 一.用户定义的变量元件实现 假如设置如下: 调
-
Jmeter命令行执行脚本如何设置动态参数
最近看到在Linux上折腾jmeter的人越来越多,不过即使在windows上,jmeter的脚本我还是建议用命令行来执行(降低GUI模式带来的性能损耗,不过拿jmeter来做接口测试的无所谓).做性能测试的时候,有时候可能需要不停的去设置"线程组"那个界面的参数(例如线程数.循环次数.持续时间等),而每次修改-->保存-->cmd中运行总感觉麻烦,那就找一种方法可以在命令行中直接指定参数的值. 查看相关资料实操,可以发现JMeter的测试计划在运行Sampler之前会先加
-
Jmeter接口登录获取参数token报错问题解决方案
Jmeter接口登录时获取到的参数token一直在变的问题,导致运行时总是报错 解决方法如下: 1.新建一个GET的HTTP请求 2.添加正则表达式提取器 记得name="_token" value="(.+?) 中间有一个空格,"_token"和value中间的空格(之前在这边耗费了很多时间) 3.新建一个POST的HTTP请求用于登录,_token值写为${token} 4.新建一个Debug Sampler用于查看获取到的token 值 5.运行,察
-
Jmeter参数化获取序列数据实现过程
一.序列数据是什么 很简单,就是利用参数化能产生顺序值,比如 1,2,3,4,5,6 或者约定格式 001,002,003,004等. 二.jmeter 产生序列数据 2.1 利用函数助手对话框实现 在jmeter菜单处点击 工具 -- 函数助手对话框 -- 下拉框选择 counter -- 进入如下界面: mac系统点击生成时会自动复制生成的函数,直接可以在需要的地方粘贴.如: 这样设置后,可以通过线程组设置界面的循环次数输入比如 5 来进行测试. 2.2 利用配置元件--计数器元件实现 st
-
Jmeter关联实现及参数化使用解析
前言 一.Jmeter介绍 一款融合接口.性能都能完成的测试工具 纯JAVA开发的工具 开源工具 支持多种协议 应该是测试业界目前应用最多的工具之一 二.接口执行实现 添加HTTP取样器:右击测试计划--新建并右击线程组--添加--取样器--新增HTTP请求 在HTTP请求元件中添加相应请求信息(请求行.请求头.请求正文) 添加察看结果树:右击线程组--添加--监听器--新增察看结果树 保存刚设置的接口脚本,点击执行 三.关联实现 3.1 关联的概念 关联也称为串行传参或数据依赖,即上一个接口返
-
Jmeter线程组传参原理解析
这篇文章主要介绍了jmeter线程组传参原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景介绍: 使用jmeter做登录和搜索接口的测试: 登录接口请求头为:Content-Type: application/x-www-form-urlencoded; charset=UTF-8 搜索接口请求头为:Content-Type: application/json; charset=UTF-8 同时,搜索的请求头中需要用到登录接口返回值中
-
Jmeter工作原理及常见错误解析
工作原理 错误解析汇总 JMeter结果树响应数据中文乱码解决办法 打开jmeter配置文件搜索encoding修改编码格式改为utf-8 Jmeter服务器反馈登陆不成功问题 导入到JMeter后,执行场景,发现登录校验成功,但后续的动作都未成功: 问题原因:在登录校验成功后,进行重定向时,Cookie被重置的: 解决办法:校验页面的HTTP请求中,有看到一个:自动重定向.跟随重定向的设置: 修改默认的"自动重定向"为"跟随重定向"重新执行场景.(改为追随重定向)
-
基于parameters参数实现参数化过程解析
一.问题描述 在之前的httprunner版本中(2.*之前),进行参数化传值利用测试用例中config下的parameters实现,如下所示: # testcase_demo.yml文件 - config: name: "验证百度搜索是否正确" base_url: "https://www.baidu.com" parameters: search_word: ['天天向上','12306','newdream'] - test: name: "百度搜索
-
Jmeter逻辑控制器事务控制器使用方法解析
一.基本概念: Transaction controller:一般是指要做的或所做的事情,在关系数据库一个事务可以是一条SQL语句,一组SQL语句或整个程序.在实际的工作过程中,将完成一个业务的一系列操作称作为事务,我们来举最为典型的用户登录场景为例. 从用户角度: 步骤一:用户打开应用系统的网址,呈现用户登录主页面 步骤二:输入自己的用户名与密码,点击登录按钮: 步骤三: 登录应用系统主页面. 从测试人员角度: 步骤一:用户打开应用系统的网址,呈现用户登录主页面 (客户端向WEB服务器发送一次
-
JMeter参数化4种实现方式(小结)
目录 1 参数化释义 2 参数化实现 2.1 CSV Data Set Config CSV简介 CSV实例 注意事项 2.2 User Parameters 2.3 用户定义的变量 2.4 Random 1 参数化释义 什么是参数化?从字面上去理解的话,就是事先准备好数据(广义上来说,可以是具体的数据值,也可以是数据生成规则),而非在脚本中写死,脚本执行时从准备好的数据中取值. 参数化:是自动化测试脚本的一种常用技巧,可将脚本中的某些输入使用参数来代替,如登录时利用GET/POST请求方式传递
-
详解JUnit5参数化测试的几种方式
目录 依赖 简单示例 七种方式 参数类型转换 隐式转换 显式转换 参数聚合 自定义显示名字 小结 参数化测试一直是津津乐道的话题,我们都知道JMeter有四种参数化方式:用户自定义变量.用户参数.CSV文件.函数助手,那么JUnit5有哪些参数化测试的方式呢? 依赖 JUnit5需要添加junit-jupiter-params依赖才能使用参数化: <dependency> <groupId>org.junit.jupiter</groupId> <artifact
-
ASP.NET Core MVC学习教程之路由(Routing)
前言 ASP.NET Core MVC 路由是建立在ASP.NET Core 路由的,一项强大的URL映射组件,它可以构建具有理解和搜索网址的应用程序.这使得我们可以自定义应用程序的URL命名形式,使得它在搜索引擎优化(SEO)和链接生成中运行良好,而不用关心Web服务器上的文件是怎么组织的.我们可以方便的使用路由模板语法定义路由,路由模板语法支持路由值约束,默认值和可选值. 基于约束的路由允许全局定义应用支持的URL格式,以及这些格式是怎样各自在给定的控制器中映射到指定的操作方法(Action
-
深入浅析javascript函数中with
/*js函数中with函数的用法分析 定义 方便用来引用某个对象中已有的属性 但是不能用来给对象添加属性 要给对象创建 新的属性 必须明确的引用该对象*/ 代码格式 with(object) statements object:新的默认对象 statements:一个或多个语句 oject是该语句的默认对象 with 语句通常用来缩短特定情形下必须写的代码量. x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10) y = Math.tan(14 * Ma
随机推荐
- Java中HashSet和HashMap的区别_动力节点Java学院整理
- php的ajax框架xajax入门与试用介绍
- php set_include_path函数设置 include_path 配置选项
- JSP实现的简单分页显示效果代码
- maven 测试写入JRE参数实例详解
- 基于jQuery的Web上传插件Uploadify使用示例
- java,android,MD5加密算法的实现代码(16位,32位)
- Java用自定义的类作为HashMap的key值实例
- 如何在C++中建立一个顺序表
- C#读取计算机CPU及HDD信息的方法
- 7个超级实用的PHP代码片段
- android 通过向viewpage中添加listview来完成滑动效果(类似于qq滑动界面)
- 用Axios Element实现全局的请求loading的方法
- Android使用HBuilder的缓存方法
- 深入理解Objective-C中类的数据结构
- C++性能剖析教程之switch语句
- Spring案例打印机的实现过程详解
- ASP.NET实现图书管理系统的步骤详解
- 如何获得spring上下文的方法总结
- 将Vue组件库更换为按需加载的方法步骤