自动化测试基础 --- Jmeter

前置环境安装

首先我们需要知道如何下载Jmeter

这里贴上下载网站Apache JMeter - Download Apache JMeter

我们直接解压,然后在bin目录下找到jemter.bat即可启动使用

成功打开之后就是这个界面

每次打开可以用这种方式切换成简体中文

或者直接修改properties文件修改对应的语言包

接口测试自动化基础

我们都知道接口测试可以使用postMan或者使用浏览器直接查看数据

那我们为啥使用Jmeter呢?

笔者认为是因为Jmeter可以实现自动化

可以实现循环接口测试  

假设a接口对登录依赖 我们可以提取登录的验证信息以某种形式传给a接口

首先得先添加一个线程组(先使用一个线程)

这里的线程组就可以模拟多个用户访问了

接着我们就可以创建对应的HTTP请求了

为了查看结果,我们得再创建一个查看结果树来进行查看接口返回的结果

我们不妨试一下,请求个api试试

本地写了一个最简单的测试一下结果

如果a对b有依赖关系我们就将b写成一个代码片段 

可以保存下来使用一个include模块控制器即可

我们都知道不同环境都需要测试

开发环境/测试环境/预发布环境/发布环境

不同的环境测试改来改去比较繁琐

我们就可以使用自定义变量

这样我们每次只需要实现对相同变量的修改即可

这也是自动化最基础的应用

对一个接口使用多组数据输入咋办???
无所谓,循环和csv文件导入会出手

对应的txt文件/csv一样

第一行是变量名称,可以在很多地方引用

JSON断言

我们对于返回的结果总要进行一定的验证

这里的验证可以放在csv文件中作为预期结果

当http请求失败后 我们会实现

通常我们可以判断code和对应的message

具体情况具体分析 实现自动化验证

对核心数据都需要测试

使用公共数据咋办,下一个接口对上一个接口有依赖关系

我们直接使用Json提取器提取上一个接口的返回信息

比如登录的token....

Jmeter连接数据库

我们知道开发的信息数据来源一定是数据库

有些时候我们可以直接连接数据库验证信息

比如说我现在要验证1w个用户的登录

这时候使用csv肯定不行啊

或者是抽查某些数据

这时候我们使用JDBC连接数据库

在这里填入mysql的jar包或者是对应的jar包驱动即可

然后我们直接写sql即可

这里获取的数据库变量也是可以直接进行断言的

Jmeter调试

这里可以看到目标结果和实际结果

注:我们不知道数据库会返回对应多少条数据

所以下面设置的变量会变成 变量_1  变量_2.....对应查出来的数据

随机查出一条数据

ORDER BY RAND()  limit 1 

问题

假设我现在需要搞10000条数据来验证咋办?

有人说循环?  多线程??

都不ok 

循环多次访问数据库很容易就造成死锁了

多线程也是不到万不得已不去用的,因为出错概率很高且不好处理

这里就得使用V函数来操作了

使用这样的方式在变量中加入一个子变量

Jmeter 梯度压测

开始的时候使用多少个线程来压测??

不清楚,使用梯度压测性价比更高,逐步加压

这里需要下载对应的jar包解压放到对应的bin目录下

下载地址:Install :: JMeter-Plugins.org

首先我们说说负载测试压力测试和性能测试的区别

首先性能测试包括压力测试和负载测试

负载测试主要就是观察一个系统性能的拐点,第一次也可以做为基准测试的标准

压力测试主要就是给服务器一定的压力(一般在40%以下),进行稳定性测试,持续长时间查看一个系统的稳定程度

主要的指标就是并发数/吞吐量/错误率这样

但是我们如何知道需要引入多少个线程呢

这里梯度压测就登场了

我们只需要查看这个接口需要多少的性能指标 找到对应的性能拐点

同一时间去观察一下此刻的线程数 就可以知道使用多少线程去测试这个接口了

然后我们还可以看汇总报告

一个发送多少个请求以及响应时间  吞吐量  错误率等....

加上这个图就能实现以上功能了

但是别以为这就是压测了

真正的压测是需要知道对应的分析原因的

JVM? mq 缓存  哪里出现了问题 调优才是关键

因为光靠一张图开发也能轻松知道啊

我直接创建几个线程不是轻轻松松

OK本期分享就到这里 

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

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

相关文章

目标检测算法YOLOv8简介

YOLOv8论文尚未发布,YOLOv8由Ultralytics公司推出并维护,源码见:https://github.com/ultralytics/ultralytics ,于2024年1月发布v8.1.0版本,最新发布版本为v8.2.0,License为AGPL-3.0。 以下内容主要来自&am…

FFmpeg 中 -f 命令参数详解

FFmpeg FFmpeg是一个开源的、功能强大的多媒体框架,它能够处理几乎所有格式的音频和视频文件。FFmpeg由Fabrice Bellard创立,并由Michael Niedermayer等人继续开发。它包括了libavcodec(用于编解码)、libavformat(用于格式转换)、libavfilter(用于音视频过滤)、libavd…

微信授权登录01-PC端

目录 ## 前言 1.准备工作 1.1 网站域名 1.2 微信开放平台 2.授权授权登录开发 2.1 前端开发 2.1.1 发起授权登录跳转至扫码页面 2.1.2 扫码成功后回调处理 2.2 后端开发 2.2.1 根据code查询用户信息 2.2.2 自动注册登录 ## 后记 ## 前言 最近整了个AI助手网站&am…

React 学习-5

React 条件渲染: 与js中的写法一致 注意:在 JavaScript 中,true && expression 总是返回 expression,而 false && expression 总是返回 false。 因此,如果条件是 true,&& 右侧的元素就会被渲…

BL120协议Modbus RTU和Modbus TCP互转

Modbus网关BL120是一款专注于Modbus协议之间相互转换的通信设备。Modbus网关BL120支持多种下行采集协议,包括Modbus RTU和Modbus TCP,同时在上行转发协议方面同样支持Modbus RTU和Modbus TCP。Modbus网关为Modbus RTU和Modbus TCP协议的相互转换提供了稳…

回炉重造java----单列集合(List,Set)

体系结构: 集合主要分为两种,单列集合collection和双列集合Map,区别在于单列集合一次插入一条数据,而双列的一次插入类似于key-value的形式 单列集合collection 注:红色的表示是接口,蓝色的是实现类 ①操作功能: 增加: add()&am…

SRS流媒体服务器在Linux下的安装

目录 一、安装 1、切换到管理员权限 2、先安装基础依赖环境 3、下载SRS源文件

引领AI数据标注新纪元:景联文科技为智能未来筑基

在人工智能蓬勃发展的今天,数据如同燃料,驱动着每一次技术飞跃。在这场智能革命的浪潮中,景联文科技凭借其深厚的专业实力与前瞻性的战略眼光,正站在行业前沿,为全球的人工智能企业提供坚实的数据支撑。 全国布局&…

智能座舱语音助手产品方案

一、用户调研与痛点分析 1.目标用户分析 用户画像 性别女性年龄50地域2-3线城市职业退休或退居二线教育中专、 大专、 本科财务家庭财务管理者爱好享受生活、 照顾家庭标签有闲有小钱二、产品定位与卖点提炼 购车目的 愉悦自我, 专属于自己的座驾: 家…

bitmap requires a valid src attribute

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 未经允许不得转载 目录 一、导读二、概览三、问题记录四、 推…

ncnn 算子操作描述

ncnn 算子操作描述,具体查询见 ncnn/docs/developer-guide/operators.md at master Tencent/ncnn GitHub 都是从上述地方copy过来的,做备份。 具体如下:(针对有些算子 用pytorch 实现了用例,可以对比学习&#xf…

Java学习笔记网站技术博客汇总

江南一点雨网站 https://www.javaboy.org/ 个人博客 https://yanbingzn.github.io/ CS-Notes 面试笔记 https://www.cyc2018.xyz/ JavaGuide(Java学习&面试指南) https://javaguide.cn/home.html SpringMVC 教程 https://springmvc.javaboy…

C++运算符重载(操作符重载)

运算符重载 1. 运算符重载基础1.1 运算符重载语法1.2 运算符重载细节补充1.3 更多的运算符重载 2. 重载单目运算符3. 如何直接输入输出对象类型——重载运算符 << 和 >>3.1 单个对象实现 cou <<3.2 多个对象实现 cout<<3.3 右移运算符 输入 cin >&g…

Excel-VBA报错01-解决方法

【已删除的部件:部件/xl/vbaProject.bin。(Visual Basic for Applications(VBA))】 1.问题复现&#xff1a; Win10 &#xff1b;64位 &#xff1b;Office Excel 2016 打开带有宏的Excel文件&#xff0c;报错&#xff1a;【已删除的部件&#xff1a;部件/xl/vbaProject.bin。…

KBU1010-ASEMI新能源专用KBU1010

编辑&#xff1a;ll KBU1010-ASEMI新能源专用KBU1010 型号&#xff1a;KBU1010 品牌&#xff1a;ASEMI 封装&#xff1a;KBU-4 最大重复峰值反向电压&#xff1a;1000V 最大正向平均整流电流(Vdss)&#xff1a;10A 功率(Pd)&#xff1a;中小功率 芯片个数&#xff1a;4…

pandas数据清洗和统计实例

步骤&#xff1a; 统计每一个列的标签个数去除或者填充某一列NaN值遍历某一列分组统计在DataFrame中插入行在DataFrame中追加行 pandas读取Json数据或csv数据 以一个json数据为例&#xff0c;只要json每一个object都一致就可以&#xff1a; # 读取json或csv df_f pd.read_…

抖店选品都怎么选品?什么样的产品更吸引人,更具有购买力?

大家好&#xff0c;我是电商花花。 抖店选品一直都是我们无货源商家的核心问题&#xff0c;不管是出单、还是爆单&#xff0c;店铺想要有销量的前提下都是选品。 很多人一上来就是就是选品&#xff0c;没有选品经验还瞎选品&#xff0c;结果到最后选了一堆出单的产品&#xf…

回声消除原理

回声消除原理 回声消除是一种音频处理技术&#xff0c;用于消除声学空间中发生的回声。其基本原理如下&#xff1a; 1. 远端信号估计 捕获远端扬声器发出的信号&#xff08;通常通过麦克风&#xff09;。使用自适应滤波器估计远端信号&#xff0c;即回声信号。 2. 回声信号…

用wordpress建外贸独立站的是主流的外贸建站方式

WordPress因其易用性、灵活性和强大的功能支持&#xff0c;成为了外贸企业首选的网站建设平台。 从技术和功能角度来看&#xff0c;WordPress提供了丰富的主题和插件&#xff0c;这些都是构建专业外贸网站所必需的。例如&#xff0c;有专门为外贸网站设计的主题和插件&#xf…

【栈】Leetcode 验证栈序列

题目讲解 946. 验证栈序列 算法讲解 在这里就只需要模拟一下这个栈的出栈顺序即可&#xff1a;使用一个stack&#xff0c;每次让pushed里面的元素入栈&#xff0c;如果当前栈顶的元素等于poped容器中的当前元素&#xff0c;因此就需要让栈顶元素出栈&#xff0c;poped的遍历…