自动化测试基础 --- 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://xiahunao.cn/news/3031616.html

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

相关文章

第七届精武杯部分wp

第一部分:计算机和手机取证 1.请综合分析计算机和手机检材,计算机最近一次登录的账户名是 答案:admin 创建虚拟机时直接给出了用户名 2. 请综合分析计算机和手机检材,计算机最近一次插入的USB存储设备串号是 答案&#xff1a…

01面向类的讲解

指针指向类成员使用 代码&#xff1a; #include<iostream> using namespace std;class Test { public:void func() { cout << "call Test::func" << endl; }static void static_func();int ma;static int mb; //不依赖对象 }; void Test::static…

探索GitHub上的GPTs项目:泄露和被破解的GPT提示

GPTs项目是一个在GitHub上由用户linexjlin发起的开源项目&#xff0c;专注于提供泄露的GPT&#xff08;生成式预训练转换器&#xff09;提示。这些提示用于指导和优化AI模型的输出&#xff0c;进而提升代码生成的质量和效率。项目页面提供了丰富的功能和资源&#xff0c;旨在帮…

全套停车场管理系统报价多少钱?停车场管理系统由哪些设备组成?

随着城市化进程的加快&#xff0c;汽车保有量的不断攀升&#xff0c;停车场的管理和运营成为城市基础设施建设的重要组成部分。一个高效、智能的停车场收费系统不仅能提升停车效率&#xff0c;还能增强用户体验&#xff0c;对城市的交通管理起到关键作用。本文将为您详细介绍全…

mac 讨厌百度网盘怎么办

一、别拦我 首先请允许我泄个愤&#xff0c;tmd百度网盘下个1g的文件下载速度竟然超不过200k&#xff0c;只要不放在所有已打开软件的最前面&#xff0c;它就给你降到10k以内&#xff0c;关键是你慢就慢了&#xff0c;我也不是很着急&#xff0c;关键是你日常下载失败并且总是…

AI代理和AgentOps生态系统的剖析

1、AI代理的构成&#xff1a;AI代理能够根据用户的一般性指令自行做出决策和采取行动。 主要包含四个部分&#xff1a; &#xff08;1&#xff09;大模型&#xff08;LLM&#xff09; &#xff08;2&#xff09;工具&#xff1a;如网络搜索、代码执行等 &#xff08;3&#x…

在Qt工具栏上实现矩阵并排的按钮效果源码

如果这个要用MFC去实现头皮都得掉一层&#xff0c;建议大家以后要写GUI方面的小工具尽量转QT或其他吧&#xff0c;MFC真不适合搞这种花里胡哨的界面. 在Qt工具栏上实现矩阵并排的按钮效果源码如下&#xff1a; #include "mainwindow.h" #include "ui_mainwind…

初识指针(4)<C语言>

前言 前面的文章&#xff0c;已经对指针的基础概念以及运用有了初步了解&#xff0c;我们可以进一步探究指针比较深入的知识&#xff0c;下文将主要介绍&#xff1a;使用指针数组模拟二维数组、字符指针变量、数组指针、二维数组传参的本质、函数指针、typedef关键字等。 目录…

RustDesk 自建服务器部署和使用教程

RustDesk 是一个强大的开源远程桌面软件&#xff0c;是中国开发者的作品&#xff0c;它使用 Rust 编程语言构建&#xff0c;提供安全、高效、跨平台的远程访问体验。可以说是目前全球最火的开源远程桌面软件了&#xff0c;GitHub 星星数量达到了惊人的 64k&#xff01; 与 Team…

洪水仿真模拟(ArcGIS),水利数字孪生新利器

这两天ArcGIS Pro的官方账号释放了一个名为“Flood Simulation in ArcGIS Pro”的洪水模拟功能视频。根据视频详情页的介绍&#xff0c;该洪水仿真模拟功能会作为新功能出现在ArcGIS Pro 3.3中。 由于我目前从事的主要应用方向都是弱GIS的领域&#xff0c;所以我已经很久没有再…

图片逐层矢量化

摘要 图像光栅化是计算机图形学中一个成熟的技术&#xff0c;而图像向量化&#xff0c;即光栅化的逆过程&#xff0c;仍然是一个主要的挑战。最近&#xff0c;基于深度学习的先进模型实现了向量化和向量图的语义插值&#xff0c;并展示了生成新图形的更好拓扑结构。然而&#…

MYSQL中的DQL

语法&#xff1a; select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段 limit 分页参数 条件查询 语法&#xff1a; 查询多个字段&#xff1a;select 字段1&#xff0c;字段2 from表名 查询所有字段&#xff1a…

GitHub搭建免费博客

一、GitHub仓库准备 ​ 搭建博客需要准备两个仓库。一个存放博客图床的仓库&#xff0c;另一个存放博客网站的仓库。 1.1、图床创建 新建仓库 第一步&#xff1a; ​ 第二步&#xff1a; 生成Token令牌 点击右上角头像->Settings->下拉&#xff0c;直到左侧到底&#…

使用IDA自带python patch的一道例题

首先看见就是迷宫 迷宫解出的路径&#xff0c;放在zip的文件可以得到一个硬编码 然后在原程序中&#xff0c;有一处很离谱 这个debugbreak就是IDA分析错误导致的 我们点进去发现里面全是nop 然后我们把我们得到的硬编码放在010里面&#xff0c;再用IDA打开 重新编译看汇编 你…

ACC-UNet: A Completely Convolutional UNet Model for the 2020s

文章目录 ACC-UNet: A Completely Convolutional UNet Model for the 2020s摘要方法实验结果 ACC-UNet: A Completely Convolutional UNet Model for the 2020s 摘要 这十年以来&#xff0c;计算机视觉领域引入了 Vision Transformer&#xff0c;标志着广泛的计算机视觉发生了…

QT学习之合成图片

1.给bmp图片添加文字 // 2.合成前后图片 QImage imageF("bkF.bmp"); // 加载图片 QPainter painter(&imageF); painter.setFont(QFont("Arial", 5)); // 设置文字的字体和大小 // 设置姓名 QPoint posName(95, 68); painter.drawText(posName, rea…

2010-2022年ESA_ CCI-LC数据集下载

扫描文末二维码&#xff0c;关注微信公众号&#xff1a;ThsPool 后台回复 g009&#xff0c;领取 2010-2022年300m分辨率 ESA_ CCI-LC 数据集 哥白尼气候数据集&#xff1a;土地利用和土地覆盖研究的宝贵资源 &#x1f30d;&#x1f50d; 土地利用和土地覆盖变化是全球变化研究…

武汉星起航引领跨境新浪潮,一站式解决方案助力卖家驰骋亚马逊

在全球化浪潮下&#xff0c;跨境电商已成为外贸发展的新引擎&#xff0c;为无数创业者提供了全新的商业机遇。而在这场跨境电商的浪潮中&#xff0c;武汉星起航电子商务有限公司以其专业的一站式解决方案&#xff0c;成为众多创业者和卖家的得力助手&#xff0c;引领着他们成功…

GT2512-STBA 三菱触摸屏12.1寸型

T2512-STBA参数说明&#xff1a;12.1"、SVGA 800*600、65536色、TFT彩色液晶显示屏、AC电源、32MB内存 三菱触摸屏GT2512-STBA性能规格详细说明&#xff1a; [显示部] 显示软元件&#xff1a;TFT彩色液晶显示屏 画面尺寸&#xff1a;12.1寸 分辨率&#xff1a;SVGA 80…