全栈Jmeter接口测试(六):json断言元件,jmeter参数化实现

news2024/11/25 2:47:23

Jmeter(12):json断言元件

json断言元件介绍:

  json断言元件与响应断言元件的功能类型,它只针对响应正文为json数据格 式的内容进行断言功能。

添加路径:右击http请求——断言——json断言

如下图展示:

json断言元件字段介绍:

名称/注释:自定义描述性文字

Assert JSON Path exists:断言jsonpath表达式截取的值是否存在,这里输 入要检查字段的jsonpath表达式即可;可参考jmeter(10)中的jsonpath表达式介绍

Addittionally assert value: 是否添加断言值, 添加的断言值和json返回的字段值 进行比较,等于特定的值。如不勾选,只比对是否返回了该json字段

Match as regular expression: 断言值是否支持正则表达式

Expected Value: 添加断言值

Expect null: 预期空值,勾选这项,则会匹配断言结果为null的情况

Invert assertion: 取反,若上述断言结果为true,勾选此项,则断言结果为false ;若上述断言结果为false,勾选此项,则断言结果为true

 

Jmeter(13):jmeter参数化实现

jmeter参数化

  在实际的测试工作中,我们经常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件的功能。这种测试方式在业界称为数据驱动测试, 而在实际测试工作中,测试工具中实现不同数据输入的过程称为参数化设置。

jmeter提供多种参数化设置的方式,常用的有:

1、使用 用户定义的变量元件 实现
2、使用 用户参数元件 实现
3、使用 函数助手 实现
4、使用 CSV 数据文件设置元件 实现
5、其它方式(数据库数据、beanshell等)实现


一、使用 用户定义的变量元件 实现参数化:

  在实际使用jmeter进行接口测试过程中,我们把一些常用的配置值全部放置到用户定义的变量元件中,方便统一管理。在需要使用到的其他地方通过 ${变量名} 的语法格式进行引用即可

添加路径:右击——配置元件——用户自定义的变量

在http请求中使用${变量名}引用;如下图

 二、使用 用户参数元件 实现参数化:

  用户参数元件可通过右键快捷菜单中选择 添加-前置处理器-用户参数进行添 加,与用户自定义变量不同的是,用户参数列表中的参数取值可以在测试计划执 行过程中发生变化。

  每次迭代更新一次:如果选中该选项,则参数的值在每个迭代中保持不变,在新 的迭代开始时取下一个值。如果取消该选项,则参数值在每个在其作用域内的 sampler发出请求时取下一个可用值。

  建议在参数的取值范围很小,使用用户参数比较合适

添加路径:右击——前置处理器——用户参数

在名称中输入一个变量名,用户后面输入不同的值;在http请求中引用变量名

在线程组中,修改线程数;如下图

 执行效果如下:

、使用 函数助手 实现参数化:

打开路径:在工具栏——函数助手对话框;                                                                                          快捷图标展示;如下图

                                     

函数助手中提供了很多可以进行参数化的函数,常用典型的几个函数。

jmeter官网详细文档地址:Apache JMeter - User's Manual

或者在jmeter目录——printable_docs——打开index.html——点击Function;如下图:

1、__Random:随机整数函数,输入最小值、最大值,如果需要把生成的值保 存在变量中,可以设置变量,如果只是一次使用,可以不设置存储变量。设置完 上述三项后,点击生成即可生成函数代码,在需要的地方使用即可

如下图:

①、选择Random,一个范围内最小值为10,一个范围内允许的最大值为100,存储结果的变量名(可选)为nums;点击生成函数,jmeter自动复制

②、打开http请求,粘贴到指定位置

③、线程组选择循环次数;

 ④、执行结果如下:

2、__RandomString:随机字符串函数,输入字符串指定长度、字符串的组成字 符,点击生成即可。如下图:

打开http请求,粘贴到指定位置

忽略首行:csv文件中如果是字段名,而不是实际的参数化数据的时候,设置为 true,表示第一行数据不作为参数化的数据此外还有如下能实现参数化:
3、__time:当前时间的时间戳函数
4、__RandonDate:随机日期函数
5、__machineIP:取设备的IP地址函数
等等.....

四、使用 CSV 数据文件设置元件 实现参数化:

  csv数据文件中的csv称为逗号分隔值或者字符分割值,其文件以纯文本的形式存储表格数据。在jmeter中可以使用此类型文件提供的数据作为参数化。通过右击 -- 新增 -- 配置元件 -- CSV 数据文件设置元件进行添加

导入的文件可以为excel后缀名为xls、csv或者txt文本

 界面字段介绍:

名称/注释:自定义描述性文字

文件名:指保存信息的文件目录,可以相对或者绝对路径

文件编码:默认为ANSI,根据文件类型来,一般设置为UTF-8;GB2312、GBK

变量名称:给csv文件中各列起变量名字(有多列,用英文逗号隔开列名)

忽略首行:csv文件中如果是字段名,而不是实际的参数化数据的时候,设置为 true,表示第一行数据不作为参数化的数据

分隔符:用什么符号分隔参数化文件中的各列,以csv文件中的分割为准设置

是否允许带引号:允许参数化文件的参数带有双引号,默认是False,如果参数 文件的值带有双引号,False模式会将双引号也当做参数

遇到文件结束符再次循环:到了文件尾是否循环,True---继续从文件第一行开始 读取,False---不再循环

遇到文件结束符停止线程:到了文件尾是否停止线程,True---停止,False---不 停止,注:当遇到文件结束符再次循环设置为True时,此项设置无效。

线程共享模式:设置csv数据文件的使用范围

①、新建一个excel文件,后缀名为CSV的文件,

②、点击浏览选中上面的文件;文件编码为GBK;输入第一行的变量名name;忽略首行为True

③、在http请求中引用变量名

④、线程组循环5次

⑤、点击执行

重点:学习资料

600g的学习资料懂的都懂

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/84338.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA毕业设计——基于SpringBoot和thymeleaf的疫情信息管理系统 (源码+数据库)

github代码地址 https://github.com/ynwynw/CoronavirusManage-public 毕业设计所有选题地址 https://github.com/ynwynw/allProject 基于SpringBoot及thymeleaf搭建的疫情信息管理系统 (源码数据库)034 一、系统介绍 疫情信息管理系统应当具备两种对象,疫情管理…

【论文精读10】MVSNet系列论文详解-PatchmatchNet

PatchmatchNet,论文名为:PatchmatchNet: Learned Multi-View Patchmatch Stereo,本篇论文结合了较多过往文章的优化思想和类似模块,因此可能要更复杂一些。 本文是MVSNet系列的第10篇,建议看过【论文精读1】MVSNet系列…

【嵌入式linux】修改网口MAC地址

使用带有网络功能的设备时,如果局域网内可能会连接很多台设备,为了保证网络通信正常,要确保每台设备的硬件MAC地址都不相同,一般在批量生产的时候可以根据产品序列号(sn号)固化每台设备的MAC地址,防止出现MAC冲突的问题…

【云原生】Prometheus PromQL讲解与实战操作

文章目录一、PromQL介绍二、四种指标类型1)counter(计数器)2)gauge (仪表类型)3)Histogram(直方图类型) 和 Summary(摘要类型)三、表达式四种数据…

8Manage PMO:多项目管理工作经验分享

在现代企业日常项目管理中,同时开展不同业务项目可说已经是“家常便饭”,项目经理手上开展多个项目,便需要兼顾各项目的人力资源、进度、问题、风险等。而在这种情况下,面对多项目管理该如何有效进行管理,有没有多项目…

换天空的几个方式技巧

1.魔棒工具 现将图层复制一层,用魔棒工具选中被复制的一层图中的天空将他删除。(如果天空有一些未选中的位置,那么我们按住shift用鼠标去点击需要删除的位置他就会一起选中) 这个就是我们删除之后的效果。 然后我们打开一张需要加…

体验了一下火爆全球的 ChatGPT,我震惊了

这几天,要说编程圈最热的话题,莫过于OpenAI的ChatGPT,写小说,写代码,找BUG,写论文,画漫画,谱曲……简直没有它干不了的事。 趁着下班时间,我也光速注册体验了一下&#…

VS Code 1.74 发布!

欢迎来到 VS Code 11月更新,此版本更新包括自定义资源管理器自动显示、隐藏活动栏和面板徽章、合并编辑器撤消/重做、管理不安全的存储库、Go to Definition on return、远程隧道等等,让我们一起看看完整更新吧! 自定义资源管理器自动显示 引…

Linux Centos离线地图开发

相关教程: 1、如何搭建离线地图开发环境 视频教程 2、下载离线地图数据(金字塔瓦片数据) 视频教程 3、下载离线地图地形数据库(实现地表高低起伏) 4、添加离线地图数据到本地服务器 (含3D) 视频…

NamedParameterJdbcTemplate —— SqlParameterSource实现具名参数查询

文章目录NamedParameterJdbcTemplate —— SqlParameterSource实现具名参数查询一、数据库准备二、java Bean实体类准备三、要执行的SQL语句四、定义业务接口service五、定义一个SqlParameterSource实现具名参数的实体类六、定义controller接口七、业务实现(1&#…

基于java+springboot+mybatis+vue+mysql的疫苗接种管理系统

项目介绍 该系统的应用可以减少工作人员的劳动强度,提高工作效率与管理水平,具有很大的价值。它可以使疫苗接种管理系统上操作简单,成功率高,使网上疫苗接种管理系统的管理向一个更高层次前进。 本系统尝试使用springboot在网上…

动态规划及马尔可夫特性最佳调度策略(Matlab完整代码实现)

📋📋📋本文目录如下:⛳️⛳️⛳️ 目录 1 概述 2 Matlab代码实现 3 写在最后 1 概述 动态规划是一种机器学习方法,它利用环境、计算资源和马尔可夫特性等知识来创建在环境中最佳执行的策略。有了这项强大的技术&#…

存储器层次结构

实际的软件开发过程中,常会遇到服务端请求响应时间长,吞吐率不够。 分析对应问题时,你肯定听过“主要瓶颈不在CPU,而在I/O”,存储很重要。 1 存储器的层次结构 存储器系统是通过各种不同方法和设备,一层层…

人肝HepG2细胞膜

人肝HepG2细胞膜 主要组成:细胞膜组分(真核或原代细胞)、高分子内核材料、功能因子 制备方法:薄膜包覆法 粒径控制:100-150 nm 平均电位:~ -20 mV 包载因子:影像分子、免疫分子等功能因子 包装…

算法竞赛入门【码蹄集进阶塔335题】(MT2151-2175)

算法竞赛入门【码蹄集进阶塔335题】(MT2151-2175) 文章目录算法竞赛入门【码蹄集进阶塔335题】(MT2151-2175)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件?目录1. MT2151 权值计算2. MT2152 黑客小码哥3. MT2153 来给单…

论文投稿指南——中文核心期刊推荐(机械、仪表工业3)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

pikachu靶场-3 跨站请求伪造(CSRF)

跨站请求伪造(CSRF) Cross-site request forgery简称为”CSRF“ 在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接) 然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击也就完成…

Java基于springboot+vue+elementUI某高校学院资产管理系统

项目介绍 独立学院资产管理系统主要设计的用户范围是:注册用户、管理员。每一个角色在系统中即可看作是不同的子系统,其所拥有的功能权限是不一致的。系统架构包括后台数据库的建立和维护以及应用程序。系统的主要功能模块主要有登录功能模块&#xff0c…

01_01_Go语言基础知识

01_01_Go语言基础知识定义变量内建变量类型强制类型转换常量与枚举要点总结条件语句if 举例switch 举例for 循环函数指针数组定义变量 使用 var 关键字 使用 var 关键字, 可以放在函数内, 或直接放在包内均可 // 定义 a, b, c 三个变量 类型都是 bool 变量可以不赋初始值 v…

别搞错了,nonTransitiveRClass 不能解决资源冲突!

前言 nonTransitiveRClass:非传递性 R 类的属性,在 gradle.properties 文件里使用。 不少开发者可能听过它,但了解可能仅限于是对 R 文件做了优化,甚至以为它可以解决资源冲突!但它到底做了什么优化、能否解决资源冲突…