2025/12/30 5:30:13
网站建设
项目流程
网站和网页的关系,wordpress 图片放大插件,石家庄网站建设排名,成都科技网站建设找哪家一、背景
在我们工作中有时候会需要使用客户提供的内网负载机进行性能测试#xff0c;一般在什么情况下我们需要要求客户提供内网负载机进行性能测试呢#xff1f;
1、遇到公网环境下性能测试达到了带宽瓶颈。那么这时#xff0c;我们就需要考虑在内网环境负载机下来执行我…一、背景在我们工作中有时候会需要使用客户提供的内网负载机进行性能测试一般在什么情况下我们需要要求客户提供内网负载机进行性能测试呢1、遇到公网环境下性能测试达到了带宽瓶颈。那么这时我们就需要考虑在内网环境负载机下来执行我们的性能测试以达到屏蔽带宽影响的目的。2、系统对高并发做了防护例如ddos防护3、测试的并发过高导致负载机先达到瓶颈本节我们介绍在内网负载机下执行JMeter性能测试。二、准备我们需要准备一下我们接下来需要用的东西ssh连接工具例如Xshell、Git Bash在这里我们使用Git Bashapache-jmeter-5.5或以上版本过高会导致java版本过高的报错提示性能测试脚本脚本如下三、假设在这里我们先做出一些假设被测网站为https://www.baidu.com。我们一般在测试时测试的域名为http而非https负载机处于baidu内网环境中https://www.baidu.com 在内网中对应的内网ip为10.5.16.8文章中负载机已安装配置环境在本文中我们假设未安装任何环境四、操作步骤1、连接负载机首先我们在脚本及jmeter所在文件夹下右键打开Git Bash连接负载机ssh root192.168.2.45 # root为登录的用户后为访问负载机ip地址AI写代码bash12回车出现root192.168.2.45’s password:我们输入密码后回车即可登录成功2、检查环境首先检查java环境java --versionAI写代码bash1出现类似以下内容表示环境中存在java检查jmeter环境jmeter --versionAI写代码bash1出现类似以下内容表示环境中存在jmeter查看Linux内存free -hAI写代码bash1这里我们可以发现我们内存为1.6GB查看LinuxCPU信息cat /proc/cpuinfoAI写代码bash1这里我们看最后一个processor序号为1故CPU为2核查看Linux系统架构uname -aAI写代码bash1这里可以知道系统架构为x86_643、测试准备 在上文中我们说到假设负载机未安装任何环境。这里我们分别介绍两种方式进行安装。1Java安装链接下载首先我们打开Java官网其他下载地址也可https://www.oracle.com/java/technologies/downloads/选择jdk17这里我们用jdk17进行演示这里我们复制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/javaAI写代码bash123使用wget命令下载等待下载完成wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gzAI写代码bash1PS该方法需要确保负载机可以连通外网使用一下命令检查ping www.baidu.comAI写代码bash1下载完成后查看解压tar -zxvf jdk-17_linux-x64_bin.tar.gzAI写代码bash12JMeter安装文件传输 向负载机传输文件我们可以通过ftp服务器传输。但是在这里我们用了Git Bash在这里我们使用更加简便的scp来进行传输。退回上一层创建jmeter目录cd ../ mkdir jmeter cd jmeterAI写代码bash123再次在放置脚本及jmeter所在文件夹下右键再次打开一个Git Bash输入命令scp ./apache-jmeter-5.4.1.zip root192.168.2.45:~/myTest/jmeterAI写代码bash1输入密码后上传上传后关闭该窗口回到之前的bash窗口检查是否上传成功解压unzip apache-jmeter-5.4.1.zipAI写代码bash1到了这里我们就基本可以开始操作脚本了但是大家可能会好奇环境变量怎么没有配置呢 并非是我们不配置环境变量而是因为在测试中我们一般不在客户的环境中配置永久环境变量我们一般采用临时环境变量。这个我们在后面会说如何去配置那么为什么要用临时环境变量呢 临时环境变量是指仅在当前系统会话有效的环境变量该环境变量不会被写入系统的环境变量文件也不会被永久保存。临时环境变量会在关闭本次会话后自动清除不会影响下一次系统登录。同时也不会影响用户原有服务的环境变量。在这里我们还需要进行一步编辑需要修改我们的jmeter.sh文件或jmeter文件这里我们修改jmeter.sh文件。进入bin目录cd bin lsAI写代码bash12修改jmeter.sh在这里有几个问题需要解释一下为什么需要修改这个配置 在大并发的测试中我们需要的大量的内存来执行压力测试而JMeter在默认情况下的内存分配非常低我们需要自己把该项配置的最大堆修改成合适的值那么我们应该修改成多少合适呢 根据负载机的内存来决定该项的值为多少。在前面我们查询了内存为1.6GB所以我们设置成1GB。一般建议设置为内存的80%。例如一台8GB的负载机我们可以设置为6GB。vim jmeter.shAI写代码bash1找到JVM-ARGS复制该行去除注释将512m修改为合适的大小4、调试脚本回到我们上面的脚本截图既然我们是在内网环境下运行那么我们应该将URL改为内网ip访问才会达到理想效果。否则同样需要走公网进行访问。那么我们需要怎么解决呢方法一 我们可以直接将域名改为IP。但是该方法不推荐方法二 修改负载机的host文件。推荐为什么我们不推荐方法一呢 如果使用的是方法一我们就无法本机上进行调试。而使用方法二我们不仅可以进行本机调试而且在负载机上也走的是内网而不是公网。5、修改host我们先修改hosts文件vim /etc/hostsAI写代码bash1输入i插入host信息修改后按esc后输入:x6、配置运行脚本新建一个文件夹放置脚本同样使用scp将脚本拷贝进文件夹scp ./内网测试.jmx root192.168.2.45:~/myTest/jmeterTestAI写代码bash1新建run.sh文件也可以选择在本机新建好再传入负载机mkdir run.sh vim run.shAI写代码bash12run.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是否配置成功AI写代码bash1234567配置完成后保存执行run.shbash run.shAI写代码bash1环境生效再次编辑run.shexport 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是否配置成功AI写代码bash12345678910运行完成后我们可以再次使用scp命令将生成的jtll文件传回本地机后生成html报告但是不推荐为什么不推荐直接将脚本复制到本地机呢 对于高并发的场景生成的jtl文件会非常的庞大所以我们一般建议将其生成为HTML报告将HTML报告复制到本地机。如确实有必要收集jtl文件或者文件较小可以采取直接将jtl文件复制到本机再生成HTML报告的方法scp root192.168.2.45:~/myTest/jmeterTest/内网测试.jtl ./AI写代码bash1如果需要再次生成html报告将运行脚本注释取消生成html报告的注释。再次bash run.sh即感谢每一个认真阅读我文章的人作为一位过来人也是希望大家少走一些弯路如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助。软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。视频文档获取方式这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。