【测试工具】jmeter组件大全及如何使用详解

文章目录

  • 前言
  • 一、Jmeter是什么?可以做什么?
  • 二、jmeter入门到进阶
    • 1.基础组件
        • 线程组
        • 逻辑控制器
        • HTTP请求
        • http信息头管理器
        • 响应断言
        • BeanShell断言
        • HTTP Cookie管理器
        • 查看结果树
        • 聚合报告
        • 用户自定义变量
        • Debug Sampler
        • 后置处理器
            • json提取器
            • 正则表达式提取器
            • BeanShell
        • Test Action
        • CSV数据文件设置
        • 随机变量
        • 函数
        • jp@gc - Stepping Thread Group
        • 最后说一下变量引用方式跟命令行执行脚本的格式:


前言

对于一个测试工程师来说,掌握一个测试工具是非常有必要的,下边将介绍 Jmeter 各种组件基础使用


一、Jmeter是什么?可以做什么?

JMeter是一个开源的自动化性能测试工具。在我的测试日常工作中会用Jmeter来干嘛呢?

  1. 单接口的接口测试
  2. 数据生成(半自动化)
  3. 接口自动化测试(jmeter+ant+jenkins)
  4. 性能测试

二、jmeter入门到进阶

1.基础组件

线程组

JMeter中的线程组(Thread Group)是其测试计划的基础组成部分之一,也是使用JMeter进行性能测试时的关键组件。线程组是一组线程或用户,模拟Web应用程序的多用户访问以测试负载情况。
1、线程数:指的是模拟访问Web应用程序的线程数;在做接口功能测试、自动化测试时,只配一个线程就可以,在执行压测时,根据目标性能进行配置
2、Ramp-Up Time:多长时间内启用所配置的线程数,主要在压测中用,默认是1s就可以
3、循环次数:每个线程执行多少次,主要在压测中使用,批量造数也会用到
4、持续时间:每个线程执行多长时间,压测中使用

逻辑控制器

1、简单控制器:作用相当于目录
2、if控制器:符合条件则执行该目录下的接口脚本,不符合条件则跳过
3、循环控制器:类似与线程的循环次数
4、模块控制器:引用其他已存在控制器
5、forEach控制器:类似java的foreach循环,但是可以控制索引的起始位置

HTTP请求

1:协议:http或https
2:服务器名称或IP:域名 或 IP
3:端口:如果用的是IP地址,需要填写端口
4:请求方法:一般是get或post,其他很少用,并且调用方式类似
5:路径:接口URI,接口地址
6:编码方式:可以为空,如果请求中有中文,需要填写utf-8,否则会乱码
7:请求参数:Parameters(参数直接在请求路径上),BodyData(主要是post请求,json格式请求体),Files Upload(上传文件)

在这里插入图片描述

http信息头管理器

管理请求头信息,可以放在单个请求下,也可以作为全部接口的公共请求头
在这里插入图片描述

响应断言

根据需要,可以对接口请求的各种信息进行断言,这里就不详细解释了,之后有时间可以在写一下,最简单的就是判断一个能标识接口请求成功的字段,比如 “success”:true ,就代表接口请求成功了
在这里插入图片描述

BeanShell断言

如果上边的断言不能满足你的需求,可以使用beanshell自己去写一个断言逻辑,你说啥是beanshell??不要急,下边会说的

HTTP Cookie管理器

发起一个HTTP请求,并且响应包含 cookie,则 cookie 管理器会自动存储该 cookie,并将其用于后面对该网站的所有请求,也就是说,如果你们公司的网站是使用cookie的,你可以在线程添加一个cookie管理器,你只需要维护好一个登录接口(登录接口是请求的时候不需要cookie,响应值包含cookie),后边所有的接口就不需要考虑cookie的问题啦
在这里插入图片描述

查看结果树

查看接口调用的结果喽
在这里插入图片描述

聚合报告

一般在压测的时候用,可以查看一些压测的指标,比如平均响应时间、错误率、吞吐量啥的
在这里插入图片描述

用户自定义变量

定义一些公共的变量,我们做自动化都讲究参数化,这是第一步啦
在这里插入图片描述

Debug Sampler

调试器,配合参数化,可以查看你自己定义变量在运行中的值
在这里插入图片描述

后置处理器

参数化最重要的东西啦,这里只说三个比较常用的,其他的小伙伴们可以自己去研究下啦

json提取器

最最最最常用的!提取方式为$.success;他的值就是 true 了
{“success”:true,“code”:0,“infoMsgs”:[],“warningMsgs”:[],“errorMsg”:null,“data”:true}
在这里插入图片描述

正则表达式提取器

相比与json提取器更加灵活一点,至于正则表达式这里就先不说了,之后可以再写一篇专门介绍正则表达式跟jmeter配合使用(老搁着画大饼)
在这里插入图片描述

BeanShell

哈哈哈,如果你能用到这个玩意,说明你对jmeter的使用开始有点小深入啦,少说废话!!对了,你需要会一点点java哦,不然可整不了,来,看下chatgpt给的解释(如果想部署一个基于开源库的chatgpt网站,可以联系我哦)
在这里插入图片描述
咱这里只说他获取接口响应参数来进行参数化的操作:

import org.json.*;
import java.util.*;String response_data = prev.getResponseDataAsString();  // 获取返回参数,类型是字符串
JSONObject data_obj = new JSONObject(response_data); //将字符串转换为json对象	 		  
String diaryList_str = data_obj.get("content").get("Tree").get(0).get("nodeTree").toString(); //然后就可以去获取里边某一个字段的值啦	
JSONArray diaryList_array = new JSONArray(diaryList_str);//字符串转换为json数组vars.put("v_id","123")//jmeter自带对象跟方法,将 123 赋值给 v_id
vars.get("v_id")//jmeter自带对象跟方法,获取v_id的值
log.info("打印日志")//sl4j打印日志的方法哦

大家看代码+备注应该就看懂了吧,当然还有好多用法,比如读取文件啥的,就是用java写其实,就不多说了

Test Action

测试组件,加延时或者断点用:这是停了300s哦,单位是毫秒
在这里插入图片描述

CSV数据文件设置

读取csv文件的,主要是放压测数据
文件名:填文件路径
文件编码:一般是utf-8,默认就是
变量名称:跟你csv文件的列对应起来,一列是一个变量,在脚本就可以用变量来引用csv文件中的数据啦
其他的基本都用默认就行
在这里插入图片描述

随机变量

在自动化过程经常会用到一些随机数啊啥的,可以用这个来生成,哦,包括计数器,是另外一个组件,就不说了很简单,有需要的自己去用一下就会了
这个就是一个生成138开头的随机的手机号,随机种子为空就行啦,好像为空是用的Random构造器
在这里插入图片描述

函数

函数我只用过生成时间戳跟随机数的,这里只说时间戳的,其他的大家自己去了解吧,以后可能用到在更新
P1D是偏移量,就是明天,P-1D就是昨天,P7D就是七天之后,其他的大家应该都能看懂的哈
在这里插入图片描述

jp@gc - Stepping Thread Group

这个吧这里简单提一下,之后在压测模块说,这个线程组就是压测的时候用,可以模拟更加真实的场景;
下边的图是,线程随时间的变化增加
This group will start:最大线程数
First,wait for:开始等待时间
Ten start:等待之后启动多少个线程
Next,add:{10} threads every {30} seconds :每30秒启动10个 线程
using ramp-up:这 10 个线程在几秒内启动完毕
Then hold load for :达到最大线程数后执行多少秒
Finally stop :{5} threads every {1} seconds:每秒停掉5个线程
根据这些参数的定义,对应下边的线状图,大家应该就差不多能理解了吧,怎么用咱之后再说哈
在这里插入图片描述

最后说一下变量引用方式跟命令行执行脚本的格式:

● 变量引用:${变量名}
● 命令行执行(压测)
jmeter -n -t <测试计划的文件路径> -l <测试结果文件的保存路径> -e -o <测试结果的web报告保存路径>

第一次写技术分享,有很多问题还请各位看官多多包涵,有啥测试相关问题(测试的发展啦,测试工具的使用啦啥的),欢迎在评论区提问,我每天晚上都会去看哒
最最后,希望各位测试工作者能一起朝着测试架构师发展哦!!!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【项目方案】OpenAI流式请求实现方案

文章目录 实现目的效果比对非stream模式stream模式实现方案方案思路总体描述前端方案对比event-source-polyfill代码示例前端实现遇到的问题与解决方法后端参考资料时序图关键代码示例后端实现时遇到的问题与解决方法实现目的 stream是OpenAI API中的一个参数,用于控制请求的…

如何接收用户发送的短信验证码,判断是否合法-短信验证码开发10

在《向用户发送手机验证码》这篇教程中&#xff0c; 你已经通过php在服务器端生成和保存验证码&#xff0c; 并且通过腾讯云的短信发送接口&#xff0c; 把验证码发送到用户手机上。 当用户根据提示&#xff0c; 把手机上的验证码&#xff0c; 以短信的方式回复&#xff0c; 你…

揭秘验证码,你可能不知道的那些事儿

在现代网络世界中&#xff0c;我们经常遇到验证码这个概念。它是一种用于验证使用者身份或防止恶意行为的安全机制。然而&#xff0c;除了表面上的使用和功能&#xff0c;验证码还有许多有趣而不为人所知的方面。本文将带你揭秘验证码背后的秘密&#xff0c;探索你可能不知道的…

注册kaggle人机验证没有验证码

打开edge浏览器,安装header editor扩展。 1.点击扩展 2.管理扩展 3.获取扩展 4.搜索框中输入“header editor”。 5.点击获取&#xff0c;我这里是因为已经获取了。所以获取按钮是删除。 6. 获取成功后&#xff0c;打开扩展的详细信息。 7.点击扩展选项。 8.在URL内输入网址。…

Kaggle账号注册时验证码无法显示问题解决方法

学习机器学习&#xff0c;想用深度神经网络做一个猫狗识别的程序&#xff0c;然后到kaggle上下载训练集猫狗图片&#xff0c;奈何一直出现验证码未填写的情况。看了很多文章说是要下载谷歌浏览器还有助手什么的&#xff0c;想起手机之前有个浏览器&#xff0c;一直没用过&#…

什么是消息验证码

在信息安全领域中&#xff0c;常见的信息保护方法分为加密和认证两大类。认证技术又分为对用户的认证和对消息的认证两种方式。用户认证用于鉴别用户的身份是否是合法用户&#xff1b;消息认证就是验证所收到的消息确实是来自真实的发送方且未被修改的消息&#xff0c;可以验证…

5个值得推荐的英语学习网站及1个英语学习App

1、练习听力 美国国家公共广播电台NPR&#xff1a;http://www.npr.org/特点&#xff1a;标准美式英语。 建议&#xff1a;每天花三十分钟左右&#xff0c;反复听英语广播&#xff0c;这是听力过关的必经之路。点击网页中左边“BROWSE TOPICS”下面的“News”选项。选择自己有…

随时随地学英语的美好愿望 Tutorabc 能帮你实现

随着互联网技术的飞速发展&#xff0c;在线教育也随着得到长足的发展&#xff0c;而后随着它的优势不断凸显&#xff0c;越来越多的人开始认可并接受在线教育。这也是在线英语学习平台能不断发展和进步的主要原因&#xff0c;正是因为越来越多的人能接受这一新的学习方式&#…

精选 8个 学习英语的APP,完全免费,适合不同阶段的你

一直有小伙伴找盘哥要学习英语的软件&#xff0c;以前零零星星的分享过几个&#xff0c;这次花了2天时间&#xff0c;重新挑选了10个良心好用的英语学习APP&#xff0c;有安卓版本的&#xff0c;也有iOS版本的&#xff0c;希望对你有所帮助。 文章比较长&#xff0c;希望你在饭…

全天候自动化的企业知识库文档、帮助中心到底有什么用?

想要给客户提供一个良好的客户体验&#xff0c;除了出色的服务态度之外&#xff0c;很重要的就是可以及时给到客户们他们想要的信息。最好的方法就是建立一个企业的知识库文档&#xff0c;也可以叫做是帮助中心。很多时候&#xff0c;客户都是根据帮助中心的内容来作出购买决定…

用C端经验做B端产品,需要考虑客户的整个体验旅程

B端产品大多需要保障业务流程的顺畅。一款B端SAAS产品选择长尾部分的客户&#xff0c;对产品设计和运营提出了高要求&#xff0c;除了考虑产品满足客户实际管理需求外&#xff0c;更需要考虑客户整个体验旅程。 B端产品大多需要保障业务流程的顺畅。一款B端SAAS产品选择长尾部分…

实现layui中每次切换页面时刷新页面(tab页面)

实现layui中每次切换页面时刷新页面&#xff08;tab页面&#xff09; 在html中找到tabChange方法&#xff0c;加上下面这部分代码即可实现每次切换tab页面时刷新页面&#xff08;重新载入&#xff09; tabChange: function (id) {//切换到指定Tab项element.tabChange(demo, i…

【微信小程序】页面tabBar切换、下拉刷新

目录 前言 一、tabBar切换 1.为什么使用tabBar 2.注意事项&#xff08;官网提示&#xff09; 3.如何使用&#xff08;附源码&#xff09; 二、下拉刷新 前言 基本上&#xff0c;所有的小程序&#xff0c;页面底部都有个tab,来实现页面的切换&#xff0c;效果如下 一、t…

后台管理tab切换回显刷新页面

el-form-item style"margin-bottom: 0px" label"拆股人手机号"><el-inputsize"small"v-model"form.mobile"placeholder"请输入手机号"input"onInput"></el-input></el-form-item><el-for…

chrome浏览器手动调节模拟网速

chrome浏览器手动调节模拟网速 参考网址&#xff1a; https://blog.csdn.net/Liberty_yes/article/details/122792457?ops_request_misc&request_id&biz_id102&utm_termchrom%E6%B5%8F%E8%A7%88%E5%99%A8%E9%99%8D%E4%BD%8E%E7%BD%91%E9%80%9F&utm_mediumdis…

女方父母总是插手家里的事怎么办?

我老弟的丈母娘就喜欢插手女儿女婿的家事&#xff0c;结婚五年多从未间断过&#xff0c;为此我老弟差点跟媳妇离婚&#xff0c;最后还是找到了解决的方法。 我老弟和弟媳是经人介绍认识的&#xff0c;虽然我们家是农村的&#xff0c;弟媳是城里人&#xff0c;但我老弟是烧烤大师…

传说中程序员都是直男,程序员适合做老公吗?

我是程序员汉小哲。 说说媳妇眼中的我。 --------------------------------------------------------------------------------------- 来自笔记 工作认真、爱玩打牌游戏 工作认真&#xff0c;基本晚上11点以后睡觉&#xff0c;没弄明白的在家弄到凌晨不知几点&#xff0c…

这个程序员男朋友我还能要吗?

昨天&#xff0c;一女粉丝在微信上找小码哥聊天&#xff0c;称她终于脱单了&#xff0c;而且男朋友还是在我们粉丝群里认识的。称她男朋友既温柔又体贴。 这就对了嘛&#xff0c;肥水不流外人田呀&#xff01; 我当时一听&#xff0c;真为她俩感到高兴&#xff01;这是好事呀&a…

在父母心里,你可能真的没有婚姻重要,催婚更像一种挣面子的工具

随着年龄一天一天的增加,你在父母的心里比重就越来越低。 20岁的时候,父母说不能早恋,要好好读书。 24岁的时候,可能父母都认为谈恋爱可以无师自通,只要一毕业就可以立马谈到对象,顺利结婚。 26岁的时候,我们就开始掉价了,因为父母已经开始给我们张罗相亲的事了。 28岁…

女程序员婚前买房给父母住,婚后要求男程序员一起还房贷!男程序员怀疑婚姻!...

每个人的人生中都会面临婚姻这一个重大课题&#xff0c;不管是讲诗书礼仪的大儒&#xff0c;还是市井的籍籍无名之辈&#xff0c;只要谈到结婚&#xff0c;都是一个无比现实的问题。爱情牵涉的物质利益甚少&#xff0c;可婚姻不行&#xff0c;过日子嘛&#xff0c;总需要些柴米…