性能测试很简单-JMeter性能测试实践

最近破费买了一台服务器,准备搭建自己的网站,顺便将自己开发的一些测试小工具部署到服务器上,虽然机器配置一般,还是决定对服务器进行压测一番,看一下服务器性能如何。本次压测选择的工具是JMeter,这个工具也是接口测试工具,可以做接口自动化测试。话不多说,开整。

安装Jmeter

JDK

​​​​​​Java Downloads | Oracle

 

直接安装dmg文件即可。

JMeter

安装很简单,直接解压官网下载的.tgz安装包就行了

Index of /dist/jmeter/binaries

启动,有两种方式

  1. GUI启动

进入解压的Jmeter的bin目录,执行./jmeter即可启动

  1. 非GUI启动
jmeter -n -t xx.jmx -l log.jtl

⚠️压测注意事项:Don't use GUI mode for load testing:不要使用GUI模式进行负载测试。

压测准备
服务介绍

http://121.196.172.xxx/?s=%E4%BD%A0%E5%A5%BD,该服务就是一个HTTP请求,Get请求方法。

服务器配置

配置项

配置值

CPU

Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz

内存

2G

硬盘

40G

操作系统

Red Hat 4.8.5-11

压测任务

简单压测查询服务性能,具体操作开启100个线程对查询接口进行压测15min,观察性能表现。

压测脚本开发

  1. 配置线程组

same user on each iteration:意思是同一个用户发起请求,勾上并不能代表真正意义上的多线程访问。
Ramp-up period(in second):例如100个用户,这里配置10,则每秒启动10个用户
Loop-count:循环次数,每个线程发送请求的次数。eg:线程数为20,循环次数为5,那么每个线程发送5次请求,总请求数为20*5=100
开发接口测试请求

  1. 本地调试

执行压测

我们设定测试场景为100用户,每隔1秒启动10个新客户;整个测试持续15min。现在,我们切换到性能测试脚本目录下,执行下面的命令启动测试:

jmeter -n -t xxx.jmx -l log.jtl

生成压测报告

jmeter -g log.jtl -o <report folder>
压测结果

服务器监控

先看下服务器监控

压测结果分析

我们需要先对测试结果做个介绍,查看数据统计图:

平均响应时间3622ms,吞吐量12.92Tranction/s。

聚合报告参数详解:

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:错误率—错误请求数/请求总数
Throughput:吞吐量—默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
吞吐量

可以看到查询服务的TPS在1分钟内逐渐攀升,最终稳定在13QPS左右。

响应时间

 在开始逐渐加压的1分钟内响应时间不断增加,可以结合服务器监控发现,这主要是因为开始加压阶段CPU占用飙升至90%,内存使用也在增加(非主因)导致。随着线程全部开启后,资源消耗相对稳定,响应时间开始逐渐降下来,最终在2000ms左右徘徊。

75%的事务处理时间都在4755ms以下,整体平均响应时间处于2800ms以下。

结论:在100线程并发场景下,服务器最大QPS可以达到13。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作

 

 

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

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

相关文章

Linux: 设置qmake的Qt版本

1、修改默认的qtchooser/default.conf // cct-app4:/usr/lib/x86_64-linux-gnu/qt-default/qtchooser % cat default.conf /usr/lib/x86_64-linux-gnu/qt4/bin /usr/lib/x86_64-linux-gnu // cct-app4:/usr/lib/x86_64-linux-gnu/qt-default/qtchooser 修改成对应的版本即可…

计算属性和监听属性,生命周期钩子,组件介绍

计算属性 # 计算属性是基于它们的依赖进行缓存的 # 计算属性只有在它的相关依赖发生改变时才会重新求值 # 计算属性就像Python中的property&#xff0c;可以把方法/函数伪装成属性 # 计算属性必须要有返回值 基本使用 <!DOCTYPE html> <html lang"en">…

[机缘参悟-122] :IT人如何认识自己的?自省、面试、考核、咨询?

目录 一、为什么要认识自己 二、认识自己的哪些方面&#xff1f; 三、如何认识自己 3.1 通过自省认识自己 3.2 通过面试认识自己 3.3 通过咨询认识自己 3.4 通过相亲认识自己 3.5 通过一段感情关系认识自己 一、为什么要认识自己 认识自己在人类的成长和心灵发展过程中…

Java jar文件变更jar或者xml方法

1. 解压jar文件 // 解压在同级 jar -xvf XXXX.jar2.解压后 在解压出来的文件中&#xff0c;找到修改的文件3.开始替换 jar -uvf0 XXXX.jar BOOT-INF4.校验方法 Java -jar XXXX.jar 是否正常启动

oracle19c容器数据库data dump 数据泵传输数据(1)

目录 1.在pdb1创建实验环境 2.创建目标数据库pdb2 3.开始从pdb1全库导出 4.开始导入到pdb2 5. 解决报错&#xff1a;添加在pdb2添加users表空间 Exporting and Importing Between PDBs 在pdb之间传输数据 实验&#xff1a;将pdb1 全库导入到pdb2&#xff0c;pdb2最好是新…

备战2024美赛数学建模,文末获取历史优秀论文

总说&#xff08;历年美赛优秀论文可获取&#xff09; 数模的题型千变万化&#xff0c;我今天想讲的主要是一些「画图」、「建模」、「写作」和「论文结构」的思路&#xff0c;这些往往是美赛阅卷官最看重的点&#xff0c;突破了这些点&#xff0c;才能真正让你的美赛论文更上…

css三大特性

css 三大特性 一、层叠性&#xff1a;css样式冲突采取原则&#xff08;后者覆盖前者&#xff09; 二、继承性&#xff1a;对于部分属性样式会有天生的继承 &#xff08;1&#xff09;字体系列属性 font-family&#xff1a;字体系列 font-weight&#xff1a;字体的粗细 fon…

Java-布隆过滤器的实现

文章目录 前言一、概述二、误差率三、hash 函数的选择四、手写布隆过滤器五、guava 中的布隆过滤器 前言 如果想要判断一个元素是不是在一个集合里&#xff0c;一般想到的是将所有元素保存起来&#xff0c;然后通过比较确定。链表&#xff0c;树等等数据结构都是这种思路&…

LeetCode 145. 二叉树的后序遍历

145. 二叉树的后序遍历 给你一棵二叉树的根节点 root &#xff0c;返回其节点值的 后序遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[3,2,1]示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[]示例 3&#xff1a; 输入&…

zmq_send与zmq_recv

zmq_send 简介&#xff1a; zmq_send 是 ZeroMQ 库中用于发送消息的函数&#xff0c;函数原型如下&#xff1a; int zmq_send(void *socket, const void *buf, size_t len, int flags);参数说明&#xff1a; socket&#xff1a;要发送消息的 Socket。buf&#xff1a;要发送的…

k8s实践(14)--scheduler调度器和pod调度策略

一、scheduler调度器 1、kube-scheduler简介 k8s实践(10) -- Kubernetes集群运行原理详解 介绍过kube-scheduler。 kube-scheduler是运行在master节点上&#xff0c;其主要作用是负责资源的调度&#xff08;Pod调度&#xff09;&#xff0c;通过API Server的Watch接口监听新建…

Google和百度搜索引擎常用语法及其说明

Google和百度搜索引擎常用语法及其说明 语法Google搜索说明搜索词例如&#xff1a;Python 教程基本搜索&#xff0c;返回包含指定关键词的结果。“短语搜索”“Python 教程”返回包含完整短语的结果&#xff0c;确切匹配搜索词。ANDPython AND 教程返回同时包含两个关键词的结…

three.js实现信号波效果

three.js实现信号波效果 图例 步骤 创建平面&#xff0c;添加贴图&#xff0c;平移几何体缩放 代码 <template><div class"app"><div ref"canvesRef" class"canvas-wrap"></div></div> </template><…

Apache JMeter 5.5: 新手指南

如何获取并运行 JMeter 首先&#xff0c;要使用 JMeter&#xff0c;你需要从官网获取软件包。前往 Apache JMeter 的官方页面&#xff0c;然后下载所 需的压缩文件。 配置和启动 JMeter 获取了 JMeter 后&#xff0c;由于它是无需安装即可使用的工具&#xff0c;直接解压下载…

AirSim 的 ROS 功能包测试

参考链接&#xff1a; Ubuntu18.04搭建AirSimROS仿真环境_airsim ros-CSDN博客 ROS: AirSim ROS Wrapper - AirSim 1.编译 ros 包&#xff08;必须是 gcc-8&#xff09; 如果您的默认 GCC 不是 8 或更高&#xff08;使用 gcc --version 检查&#xff09;&#xff0c;那么编译…

vue element plus DatePicker 日期选择器

用于选择或输入日期 TIP 在 SSR 场景下&#xff0c;您需要将组件包裹在 <client-only></client-only> 之中 (如: Nuxt) 和 SSG (e.g: VitePress). 选择某一天# 以”日“为基本单位&#xff0c;基础的日期选择控件 基本单位由 type 属性指定。 通过 shortcuts 配…

软件测试|Python urllib3库使用指南

简介 当涉及到进行网络请求和处理HTTP相关任务时&#xff0c;Python的urllib3库是一个强大且灵活的选择。它提供了一种简单的方式来执行HTTP请求、处理响应和处理连接池&#xff0c;使得与Web服务进行交互变得更加容易。本文将详细介绍如何使用urllib3库进行网络请求。 安装u…

java.net.ConnectException: Connection refused: connect已解决

&#x1f95a;今日鸡汤&#x1f95a; 要有最朴素的生活和最遥远的梦想&#xff0c;即使明天天寒地冻&#xff0c;山高水远&#xff0c;路远马亡。 —— 《枫》 遇见问题莫着急&#xff0c;着急也没用~&#x1f636;‍&#x1f32b;️ 目录 &#x1f9c2;1.令人发麻的问题 &am…

python深度学习搭环境技巧

1、使用-t做不同项目的环境隔离 pip intall xxx -t /path/env1 公共环境放一个路径&#xff0c;其他放单独路径&#xff0c;可以完美隔离 训练时通过export PYTHONPATH/path/env1:$PYTHONPATH来调整 2、安装包&#xff0c;因为依赖导致失败 加上参数–no-deps, 不按照依赖 有…

vagrant 用户名密码登录

正常登录后 sudo -i 切换到root权限 vim /etc/ssh/vim sshd_config 将PasswordAuthentication no设置 为yes 重启sshd.service服务 systemctl restart sshd.service