【JMeter】使用内网负载机(Linux)执行JMeter性能测试

这篇具有很好参考价值的文章主要介绍了【JMeter】使用内网负载机(Linux)执行JMeter性能测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用内网负载机(Linux)执行JMeter性能测试

目录
  • 使用内网负载机(Linux)执行JMeter性能测试
    • 一、背景
    • 二、准备
    • 三、假设
    • 四、操作步骤
      • 1、连接负载机
      • 2、检查环境
      • 3、测试准备
        • (1)Java安装(链接下载)
        • (2)JMeter安装(文件传输)
      • 4、调试脚本
      • 5、修改host
      • 6、配置运行脚本

一、背景

​ 在我们工作中有时候会需要使用客户提供的内网负载机进行性能测试,一般在什么情况下我们需要要求客户提供内网负载机进行性能测试呢?

  1. 遇到公网环境下性能测试达到了带宽瓶颈。那么这时,我们就需要考虑在内网环境负载机下来执行我们的性能测试以达到屏蔽带宽影响的目的。

  2. 系统对高并发做了防护,例如ddos防护

  3. 测试的并发过高导致负载机先达到瓶颈

    本节我们介绍在内网负载机下执行JMeter性能测试。

二、准备

我们需要准备一下我们接下来需要用的东西:

  • ssh连接工具(例如:Xshell、Git Bash,在这里我们使用Git Bash)

  • apache-jmeter-5.5或以上(JMeter版本过低或java版本过高会导致java版本过高的报错提示)

  • 性能测试脚本

    • 脚本如下:

      【JMeter】使用内网负载机(Linux)执行JMeter性能测试

三、假设

在这里我们先做出一些假设:

  1. 被测网站为https://www.baidu.com。(我们一般在测试时测试的域名为http而非https)
  2. 负载机处于baidu内网环境中
  3. https://www.baidu.com 在内网中对应的内网ip为10.5.16.8
  4. 文章中负载机已安装配置环境,在本文中我们假设未安装任何环境

四、操作步骤

1、连接负载机

首先我们在脚本及jmeter所在文件夹下右键打开Git Bash

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

连接负载机

ssh root@192.168.2.45
# root为登录的用户,@后为访问负载机ip地址

回车出现

root@192.168.2.45's password:

我们输入密码后回车即可,登录成功

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

2、检查环境

首先检查java环境

java --version

出现类似以下内容表示环境中存在java

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

检查jmeter环境

jmeter --version

出现类似以下内容表示环境中存在jmeter

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

查看Linux内存

free -h

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

这里我们可以发现我们内存为1.6GB

查看LinuxCPU信息

cat /proc/cpuinfo

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

这里我们看最后一个processor序号为1,故CPU为2核

查看Linux系统架构

uname -a

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

这里可以知道系统架构为x86_64

3、测试准备

​ 在上文中我们说到,假设负载机未安装任何环境。这里我们分别介绍两种方式进行安装。

(1)Java安装(链接下载)

首先我们打开Java官网(其他下载地址也可)https://www.oracle.com/java/technologies/downloads/,选择jdk17(这里我们用jdk17进行演示)

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

这里我们复制x64 Compressed Archive(具体下载的包取决于之前查询的CPU架构来决定)后的链接:https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

创建java目录

mkdir ~/myTest
mkdir ~/myTest/java
cd ~/myTest/java

使用wget命令下载,等待下载完成

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

PS:该方法需要确保负载机可以连通外网使用一下命令检查

ping www.baidu.com	

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

下载完成后查看

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

解压

tar -zxvf jdk-17_linux-x64_bin.tar.gz

(2)JMeter安装(文件传输)

​ 向负载机传输文件我们可以通过ftp服务器传输。但是在这里我们用了Git Bash,在这里我们使用更加简便的scp来进行传输。

退回上一层,创建jmeter目录

cd ../
mkdir jmeter
cd jmeter

再次在放置脚本及jmeter所在文件夹下右键再次打开一个Git Bash

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

输入命令

scp ./apache-jmeter-5.4.1.zip root@192.168.2.45:~/myTest/jmeter

输入密码后上传

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

上传后关闭该窗口,回到之前的bash窗口检查是否上传成功

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

解压

unzip apache-jmeter-5.4.1.zip

到了这里我们就基本可以开始操作脚本了,但是大家可能会好奇,环境变量怎么没有配置呢?

​ 并非是我们不配置环境变量,而是因为在测试中,我们一般不在客户的环境中配置永久环境变量,我们一般采用临时环境变量。这个我们在后面会说如何去配置

那么为什么要用临时环境变量呢?

​ 临时环境变量是指仅在当前系统会话有效的环境变量,该环境变量不会被写入系统的环境变量文件,也不会被永久保存。临时环境变量会在关闭本次会话后自动清除,不会影响下一次系统登录。同时也不会影响用户原有服务的环境变量。

在这里我们还需要进行一步编辑,需要修改我们的jmeter.sh文件或jmeter文件,这里我们修改jmeter.sh文件。

进入bin目录

cd bin
ls

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

修改jmeter.sh

在这里有几个问题需要解释一下

为什么需要修改这个配置?

​ 在大并发的测试中,我们需要的大量的内存来执行压力测试,而JMeter在默认情况下的内存分配非常低,我们需要自己把该项配置的最大堆修改成合适的值

那么我们应该修改成多少合适呢?

​ 根据负载机的内存来决定该项的值为多少。在前面我们查询了内存为1.6GB,所以我们设置成1GB。一般建议设置为内存的80%。例如一台8GB的负载机,我们可以设置为6GB。

vim jmeter.sh

找到JVM-ARGS

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

复制该行,去除注释,将512m修改为合适的大小

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

4、调试脚本

回到我们上面的脚本截图

既然我们是在内网环境下运行,那么我们应该将URL改为内网ip访问才会达到理想效果。否则同样需要走公网进行访问。那么我们需要怎么解决呢?

方法一:

​ 我们可以直接将域名改为IP。但是该方法不推荐

方法二:

​ 修改负载机的host文件。推荐

为什么我们不推荐方法一呢?

​ 如果使用的是方法一,我们就无法本机上进行调试。而使用方法二我们不仅可以进行本机调试,而且在负载机上也走的是内网而不是公网。

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

5、修改host

我们先修改hosts文件

vim /etc/hosts

输入i插入host信息,修改后按esc后输入:x

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

6、配置运行脚本

新建一个文件夹放置脚本

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

同样使用scp将脚本拷贝进文件夹

scp ./内网测试.jmx root@192.168.2.45:~/myTest/jmeterTest

新建run.sh文件(也可以选择在本机新建好再传入负载机)

touch run.sh
vim run.sh

run.sh脚本如下

export JAVA_HOME=~/myTest/java/jdk-17.0.8 # jdk所在目录
export JMETER_HOME=~/myTest/jmeter # jmeter所在目录

export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH # jdk和jmeter的bin目录

java --version # 检查java是否配置成功
jmeter --version # 检查jmeter是否配置成功

配置完成后保存,执行run.sh

bash run.sh

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

环境生效

再次编辑run.sh

export JAVA_HOME=~/myTest/java/jdk-17.0.8 # jdk所在目录
export JMETER_HOME=~/myTest/jmeter # jmeter所在目录

export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH # jdk和jmeter的bin目录

jmeter -n -t 内网测试.jmx -l 内网测试.jtl # 运行脚本
# jmeter -g 内网测试.jtl -o 内网测试 # 如果并发过大建议生成HTML报告后scp到本地机

# java --version # 检查java是否配置成功
# jmeter --version # 检查jmeter是否配置成功

运行完成后

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

我们可以再次使用scp命令将生成的jtll文件传回本地机后生成html报告,但是不推荐

为什么不推荐直接将脚本复制到本地机呢?

​ 对于高并发的场景,生成的jtl文件会非常的庞大,所以我们一般建议将其生成为HTML报告,将HTML报告复制到本地机。如确实有必要收集jtl文件或者文件较小,可以采取直接将jtl文件复制到本机再生成HTML报告的方法

scp root@192.168.2.45:~/myTest/jmeterTest/内网测试.jtl ./

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

【JMeter】使用内网负载机(Linux)执行JMeter性能测试

如果需要再次生成html报告,将运行脚本注释,取消生成html报告的注释。再次bash run.sh即可文章来源地址https://www.toymoban.com/news/detail-698262.html

到了这里,关于【JMeter】使用内网负载机(Linux)执行JMeter性能测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jmeter 性能测试工具的使用(Web性能测试)

    1、下载 该软件不用安装,直接解压打开即可使用。 2、使用 这里就在win下进行,图形界面较为方便 在目录apache-jmeter-2.13bin 下可以见到一个jmeter.bat文件,双击此文件,即看到JMeter控制面板。主界面如下: 3、创建线程组 测试计划--右键——》添加——》hreads——》线程组 设

    2024年02月10日
    浏览(48)
  • jmeter性能测试使用梯度测试的方法

    JMeterPlugins-Standard.jar下载地址:Download :: JMeter-Plugins.org 项目验收,用jmeter做并发测试,测试单位不通过,我们可以 仔细一问测试单位,嘿,jmeter写个并发数做测试不算并发测试,要做梯度测试才可以,奈何jmeter找不到怎么做梯度测试,遂一搜,知了 在jmeter包的apache-jmeter-版本

    2024年02月11日
    浏览(47)
  • Jmeter接口/性能测试,Jmeter使用教程(超细整理)

    1、线程组 线程组分类: Jmeter线程组主要分为3类分别为线程组、setUp线程组、tearDown线程组 ①线程组 这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。 ②setUp线程组 一种特殊类型的ThreadG

    2024年02月15日
    浏览(30)
  • 【性能测试】03-JMeter使用案例

    (1)步骤 (2)乱码解决 sampleresult.default.encoding=UTF-8 (3)请求响应不一致问题 当发送www.jd.com的http请求时,查看结果树看到的发送消息和HTTP取样器中配置的不完全一样? 原因分析: 查看结果数中 最外层HTTP请求 的 请求信息和响应信息,应该与 子节点中最后一个 HTTP请求的

    2024年02月06日
    浏览(23)
  • 性能测试-Jmeter常用元件基础使用

    一、Jmeter元件 #线程组 添加HTTP请求 #配置元件 配置元件内的元件都是用于进行初始化的东西 #监听器 监听器主要是用来获取我们使用取样器发送请求后的响应数据相关信息 #定时器 定时器主要用来控制我们多久后执行该取样器(发送请求) #前置处理器 前置处理器是对我们的

    2024年03月21日
    浏览(35)
  • 【性能测试】使用JMeter对code论坛进行压力测试

    项目简介 code 论坛是一个技术交流社区。主要功能有发布帖子,查看帖子,评价帖子,删除帖子,点赞帖子,站内信,个人中心,修改个人信息等。是一个基于 Spring 的前后端分离项目。 项目链接 code论坛 使用工具 JMeter5.6.2 性能测试概念 性能测试是通过自动化的测试工具模

    2024年02月08日
    浏览(32)
  • 使用Jmeter进行http接口性能测试

    在进行网页或应用程序后台接口开发时,一般要及时测试开发的接口能否正确接收和返回数据,对于单次测试, Postman 插件是个不错的 Http 请求模拟工具。   但是Postman只能模拟单客户端的单次请求,而对于模拟多用户并发等性能测试,就必须借助其他的工具了,这里推荐功

    2024年02月08日
    浏览(36)
  • 性能测试工具Jmeter学习和使用

    摘要 : 在日常的开发中,软件测试人员能够对程序进行功能上的测试以确保用户的正常使用,但对于一个需要发布在服务器上供多用户同时使用的软件而言,还需要模拟多用户同时使用的场景,对站点进行性能测试。但安排100个人同时访问测试站点显然是不可行的,此时就

    2024年01月18日
    浏览(36)
  • Jmeter性能测试 —— jmeter之使用ServerAgent监控服务器

    ServerAgent 性能测试时我们关注的重要指标是:并发用户数,TPS,请求成功率,响应时间,服务器的CPU,memory, I/O disk等。Jmeter的聚合报告可以查看并发数、吞吐量、请求成功率、响应时间等;如果要查看服务器端的CPU,memory, I/O disk等就需要安装插件ServerAgent 将ServerAgent-2.2

    2024年02月07日
    浏览(38)
  • 性能进阶:使用JMeter进行websocket测试【建议收藏】

    本次测试案例主要是分享如何使用JMeter进行websocket协议下的聊天接口性能测试。 包含websocket插件的下载安装、线程组及sampler的设置、csv参数化和组建分布式测试的方法、如何通过调整参数来获得发压机的最大并发数以及对测试过程的总结。 整篇文章只侧重介绍进行websocket测

    2024年02月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包