自动化测试基础 --- Jmeter

news2024/12/24 10:08:26

前置环境安装

首先我们需要知道如何下载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.coloradmin.cn/o/1663413.html

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

相关文章

代码随想录第五十天|最佳买卖股票时机含冷冻期、买卖股票的最佳时机含手续费

题目链接:. - 力扣(LeetCode) 最佳买卖股票时机含冷冻期与打家劫舍的题目有异曲同工之妙,主要是出现了天数的间隔,一次需要在买卖股票的最佳时机II 题目上做一点调整,代码如下: 如代码所示&…

第12节 第二种shellcode编写实战(1)

我最近在做一个关于shellcode入门和开发的专题课👩🏻‍💻,主要面向对网络安全技术感兴趣的小伙伴。这是视频版内容对应的文字版材料,内容里面的每一个环境我都亲自测试实操过的记录,有需要的小伙伴可以参考…

一文扫盲(12):公寓/酒店管理系统的功能模块和界面设计

大千UI工场本次带来第12期:酒店管理系统,从系统定义、功能模块、界面构成和设计方向四个方面讲解,大千UI工场愿意持续和大家分享,欢迎关注、点赞、转发。 公寓管理系统是一种用于管理和运营公寓的软件系统。它通过集成各种功能模…

基于SpringBoot+Vue的笔记共享平台 免费获取源码

项目源码获取方式放在文章末尾处 项目技术 数据库:Mysql5.7/8.0 数据表:10张 开发语言:Java(jdk1.8) 开发工具:idea 前端技术:vue 后端技术:SpringBoot 功能简介 (有文档) 项目获取关键字&#…

使用vant-ui+vue3实现一个可复用的评星组件

如图所示 有两种情况 一种是5颗星 一种是3颗星 官网上只提供了图标类型的 并没有加文字 https://femessage-vant.netlify.app/#/zh-CN/ 自己结合两种情况 在全局注册了此组件(后续还会持续更新代码~) <template><div class"vant_rate_wrapper"><van…

Substrate 入门课第 14 期圆满结束,岗位内推直达知名 Web3 项目!

Substrate&#xff0c;一个完全免费且开源的框架&#xff0c;利用 Rust 语言的强大功能和安全性&#xff0c;为全球开发者提供了一个高效和灵活的开发环境。借助其模块化的设计&#xff0c;即使是新手开发者也能在短短 15 分钟内搭建起定制化的区块链。自 2020 年以来&#xff…

Att论文解读|ICLR 2018 《Graph attention networks》图注意力网络

论文地址 论文地址&#xff1a;https://arxiv.org/abs/1710.10903 github:PetarV-/GAT: Graph Attention Networks (https://arxiv.org/abs/1710.10903) (github.com) gordicaleksa/pytorch-GAT: My implementation of the original GAT paper (Veličković et al.). Ive addi…

ZFS 文件系统结构及 ZFS 文件系统数据恢复

ZFS是一种革命性的文件系统&#xff0c;它遵循完全不同的文件系统管理方法&#xff0c;同时提供目前其他文件系统无法提供的新功能和优势。ZFS 可靠、可扩展且易于管理。 它放弃了卷的概念&#xff0c;从而摆脱了传统的文件系统原则。另外&#xff0c;ZFS 提供更复杂的存储池&…

Java线程池:当核心线程数为 0 时,任务来了的执行流程

先说结论&#xff1a;创建一个临时线程直接执行 ThreadPoolExecutor.excute() public void execute(Runnable command) {if (command null)throw new NullPointerException();int c ctl.get();if (workerCountOf(c) < corePoolSize) {if (addWorker(command, true)) retu…

python + word文本框中文字识别并替换【真替换,不只是识别】

1. 简单描述 在一些转换场景下&#xff0c;文本框不会被转换&#xff0c;需要先识别成文字内容。 【识别的文字段落可能会和实际看到的效果有些差异&#xff0c;后续还需校对&#xff0c;如下图】。 不足&#xff1a;除了上面说的那个情况&#xff08;上图说的问题&#xff0…

pgAdmin 4 使用

瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7,Microsoft Windows (64-bit) 10 版本&#xff1a;14 文档用途 本文介绍pgAdmin4使用技巧和工具所具有的比较好的功能。 详细信息 pgAdmin4是用于设计、维护和管理…

简单的表单初始密码验证的实现

目录 简单示例&#xff1a;表单初始密码验证 1.1准备工作(图1&#xff09; 1.2 index部分 1.3 css部分 1.3.1先把css部分链接到index.html中&#xff0c;注意链接的地址。 1.3.2添加样式 1.4 JS部分 1.4.1 先把js部分链接到index.html中&am…

Android APP读写外置SD卡无权限 java.io.IOException: Permission denied

在物联网应用里&#xff0c;app需要对挂载SD卡读写文件&#xff0c;从 Android 4.4&#xff08;KitKat&#xff09;版本开始&#xff0c;Google 引入了一项名为 "Storage Access Framework" 的新功能&#xff0c;该功能限制了应用对外部存储的直接读写权限,要不然就是…

Html + Express 实现大文件分片上传、断点续传、秒传

在日常的网页开发中&#xff0c;文件上传是一项常见操作。通过文件上传技术&#xff0c;用户可以将本地文件方便地传输到Web服务器上。这种功能在许多场景下都是必不可少的&#xff0c;比如上传文件到网盘或上传用户头像等。 然而&#xff0c;当需要上传大型文件时&#xff0c;…

构建第一个ArkTS应用之@AppStorage:应用全局的UI状态存储

AppStorage是应用全局的UI状态存储&#xff0c;是和应用的进程绑定的&#xff0c;由UI框架在应用程序启动时创建&#xff0c;为应用程序UI状态属性提供中央存储。 和AppStorage不同的是&#xff0c;LocalStorage是页面级的&#xff0c;通常应用于页面内的数据共享。而AppStora…

Apache Flume概述

Apache Flume概述 1.Flume定义 ​ Flume是cloudera(CDH版本的hadoop) 开发的一个分布式、可靠、高可用的海量日志收集系统。 它将各个服务器中的数据收集起来并送到指定的地方去&#xff0c;比如说送到HDFS、Hbase&#xff0c;简单来说flume就是收集日志的。 2.Flume基础架构…

导出QQ好友列表、群列表、群员列表

MENU 准备工作在浏览器地址栏中输入地址使用F12快捷键打开开发者工具(浏览器控制台)点击头像登入网站(推荐)或手机扫码登录获取群列表获取好友列表获取群员列表 准备工作 一台带有浏览器的电脑 在浏览器地址栏中输入地址 https://qun.qq.com/member.html 使用F12快捷键打开开发…

手机同步与数据安全:让手机和电脑完美结合!

在当今这个高度信息化的社会&#xff0c;手机和电脑不仅为我们提供了丰富的信息资源&#xff0c;让我们能够随时随地获取所需的信息&#xff0c;还为我们的生活带来了极大的便利。无论是工作、学习还是娱乐&#xff0c;手机和电脑都发挥着至关重要的作用。 然而&#xff0c;随…

阿里云服务器在线安装nginx

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《nginx实战》 目录 内容简介 安装步骤 1.root用户登录连接阿里云服务器 2.在usr/local下新建nginx目录 3.安装 1安装下载工具 2下载nginx压缩包 3解压 4安装nginx依赖的库 5编译并安装 6启动nginx 7开启…

【数据结构】顺序表(一)

✨✨✨专栏&#xff1a;数据结构 &#x1f9d1;‍&#x1f393;个人主页&#xff1a;SWsunlight 不怕别人看不起&#xff0c;就怕自己不争气。路是人走出来的&#xff0c;关键要靠自己闯。振作起来&#xff0c;生活的含义就是前进。 目录 一、顺序表的概念&#xff1a; 二…