Jmeter压力测试简单教程(包括服务器状态监控)

Jmeter压力测试简单教程(包括服务器状态监控)
前段时间公司需要对服务器进行压力测试,包括登录前的页面和登录后的页面,主要目的是测试负载均衡的实现效果。不知道
是不是因为Jmeter不如loadRunner火爆还是什么,网上关于Jmeter的资料有很多但是大多千篇一律,要么简单弄个页面测试
一下,要么全篇都是介绍很多和Jmeter无关的第三方工具,看起来很专业高深,但是作为测试小白来说,看到这样的东西确
实头疼。我只是想好好了解一下Jmeter的使用啊,能不能完整的介绍一下啊?我不需要了解那么多其他的第三方工具啊?能
不能截个图说的清楚一点啊?这个步骤里的参数是干嘛的啊?对应的什么啊?你的这一步我怎么出现问题了啊?怎么不说解决
方法啊。。。这应该是我前段时间查找Jmeter资料内心最多的问题了,真是哔了狗了(我是一个优雅的程序猿,很少讲粗话
啦~嘿嘿)。对于使用某种新的东西,我的习惯往往是先把流程完整的跑一遍,记住,是完整,清晰,好歹别人看了之后对应
着自己的需求也能照搬着实现,吐槽了够多了,开始进入正题,我把我遇到的坑都说清楚,包括后来怎么从坑里爬出来的。。

步骤一 安装Jmeter
我用的版本是3.1版本,为什么是3.1,因为3.2有问题,我也是跑了一段时间后才知道3.2版本太新了还是什么的,有些功能就
是不行,在此建议大家,不要轻易使用最新版本,次新版本就可以了。安装好了之后Jmeter的bin目录下有个Jmeter.bat文
件,双击就能运行了。


步骤二 使用Jmeter测试未登录页面
运行软件之后,我们当然要找个链接测试一下啦,这里我们以百度为例,我们右击“测试计划”——“添加”——“Threads(Users)
——线程组”,这样就建了一个线程组了,这是干嘛,当然是跑线程用的啊。有了线程组之后,我们再右击线程组,“添
加”——“配置元件”——“http请求默认值”,这个默认值是干嘛的?里面可以设置一些常用的默认的设置(这不是废话嘛~),在
http请求默认值面板里面,我们可以输入要测试的服务器的IP或者域名,这里我们输入“www.baidu.com”,协议是“https”,你
要测试的网址如果是http开头那就填“http”,其他默认不管了,这时候点击左上角保存会弹出一个保存框,这是让你保存你现在
所做的测试配置,以后需要再测试的话的直接打开保存的jmx文件就行了。保存完了之后,我们再右击“线程组”——“添
加”——“Sampler”——“http请求”,哎,刚刚不是添加过了吗?刚刚那个不是哦,刚刚那个只是默认值,只是用来设置一些默认
配置,真正发起请求的是“http请求”,在http请求里面我们在“路径”里面输入斜杠“/”就行啦,表示默认路径,IP那一栏就不用输
入了,为什么呢?因为在http请求默认值里面已经输过啦,以后可以新建多个http请求,只要修改路径就行了,这样就可以访
问同一个网站的不同页面,这就是“http请求默认值”的意义所在,把一些共用的设置写一遍就好了。接着,我们再右击“线程
组”——“添加”——“监听器”——“察看结果数”,在这里可以查看到http请求和结果。每次新建组件和修改配置信息都要点击保
存,好了,页面配置图如下所示:


现在我们点击工具栏的绿色运行按钮,就可以在“察看结果树”中看到结果了


我们新建的“http请求”返回结果200,表明请求成功,从绿色打钩也能看出,上图中的下拉列表框可以选择显示格式,我们选择
HTML,切换到“响应数据”就可以看到返回页面,也就是百度首页。
步骤三 设置线程并发数
刚刚我们完成了一个简单的测试,你也应该感觉到自己啥也没干,就能测试了,其实不然,我们点击“线程组”可以看到线程组
的设置页面,默认设置1个线程,1秒启动,循环1次。线程数表示启动多少个线程,Ramp-Up Period表示花多长时间启动所
有线程,循环次数表示每个线程的执行次数,例如,我设置线程数10,Ramp-Up Period为10,循环次数2,表示软件将在10
秒内启动10个线程,也就是1秒启动1个线程,每个线程执行两次请求。


此外,我们还可以勾选“调度器”,比如我填入持续时间100,启动延迟0,将循环次数勾选“永远”,表示线程立即启动,执行
100秒后停止,注意,如果设置了持续时间和启动延迟,那么下面的启动时间和结束时间就不起作用了,也就不用管了,点击
运行即可。
步骤四 设置其他监听器
之前我们仅仅设置了“察看结果树”这个监听器,我们右击“线程组”——“添加”——“监听器”,里面有好多监听器可供选择,比如
图形结果,用表格查看结果,聚合报告等等,这些都是反映测试过程的指标数据。图形结果以图形的形式显示吞吐量、偏移、
平均值等信息,表格结果显示每一次请求的时间,返回,发送字节数,连接时间等等,聚合报告里面显示总体请求的吞吐量,
错误率等等。下图为表格结果的样式。


可以看出,图中显示了20个Http请求,分别由10个线程执行,每个线程执行两次,正好符合我们对于线程组的设置。图中每
一列的含义分别表示请求序号,开始时间,线程序号,请求名,请求所花的时间,请求状态,请求字节数,发送字节数,等待
时长,连接时间。
聚合报告如下图所示,每一列的含义分别表示请求名称,请求总数,请求的平均响应时间(毫秒),50%的请求的响应时
间,90%的请求的响应时间,95%的请求的响应时间,99%的请求的响应时间,最小的响应时间,最大的响应时间,错误的请
求率(错误请求数/总的请求数),吞吐量(每秒处理的请求数),接收的字节速率,发送的字节速率。


步骤五 登录测试
前面我们测试的页面是不需要登录的,现在我们来测试一下登录操作,由于登录操作涉及到具体的内部网址和参数,我这里就
用一般网址和参数代替,但是方法是一样的,例如,我们内网IP是1.1.1.1,登录页面是1.1.1.1/login.do,我们将1.1.1.1填
入“http请求默认值”,将/login.do填入“http请求”的路径里面,关于登录需要的参数我要特别说明一下,一般来说就是用户名和
密码,但是往往还需要其他参数,我们可以通过抓包工具Fiddler进行抓包,我们在网站中进行一次正常登录,可以在Fiddler
中看到登录需要的post参数,例如Fiddler中显示登录操作post参数有username,password,type,那么需要在“http请求”里面填
入,下图所示。


点击“添加”按钮就可以添加参数了,保存好后,我们点击运行,就可以在察看结果树中看到登录成功后的页面了,具体的操作
和前面一样的。
步骤六 会话保持
我们进入登录后的页面后,我还想访问例如“我的账户”,“我的信息”等模块怎么办,这些网页需要登录成功后才能访问到,这
里我们就需要进行会话的保持,我们右击“线程组”——“添加”——“配置元件”——“httpcookie管理器”,要添加的内容我们可以
在察看结果树的“请求”选项卡里面看到,里面可以看到登录需要的cookie,例如JSESSIONID,我们将JSESSIONID填入
cookie管理器的参数里面,如下


此时,我们在http请求里面输入登录后的页面网址,例如“我的信息”等等,就可以请求成功啦。
步骤七 文件读取网址
我们在“http请求”的路径里面填入的是我们要访问的网页,每次只能填一个,假如我想访问好几个网页,例如首页,通知页,
公司介绍页等等,除了新建http请求外,我们还可以将这些网页的地址存储在TXT文件里,例如,我要访问
1.1.1.1/index.do,1.1.1.1/information.do,1.1.1.1/company.do,我们可以这样


网址填入后,我们在Jmeter里面的“选项”——“函数助手对话框”——“StringFromFile”,将TXT的完整路径贴到图中位置,点击
生成,可以在框里生成TXT文件的读取路径。


我们将$开头的那串路径贴到“http请求”的路径里面,就可以访问到TXT里面的所有网页啦,如图所示。


步骤八 服务器状态实时监听
上面我们介绍了几个Jmeter自带的监听器,不知你是否感觉到有一点点无力,因为里面显示的指标好像都不是你特别需要
的,至少对于我来说,我更关心我的请求执行过程中服务器状态的改变,例如CPU,内存,磁盘,网络,TPS,响应时间图
等等,因为这才是压力测试的目的所在,服务器状态随着请求增加的变化曲线才是我们更加需要看到的。想看到服务器变化的
曲线图,我们需要下载JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar,将这两个jar包放入Jmeter的安装路径下的
lib/ext/下面,重启Jmeter后,右击“线程组”——“添加”——“监听器”,我们可以看到多了好多监听器,大多数以“jp@gc”开头的
监听器,我们选择“PerfMon Metrics Collector”,里面将会显示服务器的状态信息,现在还看不到,为什么,因为要测试的服
务器需要安装一个包,叫ServerAgent.zip,比如我的服务器是linux,我们将ServerAgent在服务器中解压,运行里面的
startAgent.sh就可以啦,启动起来后可以看到如下


默认端口是4444,在这里我要插一句,我当时运行后通过Telnet始终ping不到4444端口导致显示不了,后来改成4445端口启
动就可以了,具体的服务器命令是ServerAgent-2.2.3/startAgent.sh--udp-port 4445 --tcp-port 4445,这样就表示将
serverAgent在4445端口启动,你可以将4445换成其他端口,如果默认的4444端口不行的小伙伴可以试试其他端口哦。好
了,我们回到Jmeter软件,按下图填入服务器的地址和端口号,以及需要监控的硬件,如CPU,内存,磁盘,网络等等。


好了,我们点击运行,可以在chart下看到服务器的状态变化曲线啦


怎么样,是你想要的吧,其实监听器里面还有很多其他的曲线,看英文就知道,比如TPS曲线,响应时间曲线等等,这些你都
可以自己添加,我就不赘述啦。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: JMeter是一款常用的性能测试工具,也被广泛应用于压力测试。本教程将介绍如何使用JMeter进行压力测试。 首先,需要了解被测试系统的架构、业务流程等信息。然后,在JMeter中创建测试计划,并添加线程组和用例。线程组设置了并发用户数、循环次数等参数,用例则定义了请求接口、参数、响应断言等信息。 接下来可以运行测试计划进行测试。在测试过程中,可以使用JMeter自带的报告和可视化图表查看压力测试结果。根据结果,可以对被测试系统进行优化和调整。 在进行JMeter压力测试时,需要注意以下几点: 1. 数据准备:需要准备合适的数据,以确保测试的真实性。 2. 断言设置:要设置合理的断言,以验证接口的正确性,同时避免误判导致测试结果不准确。 3. 并发度控制:并发度过高可能导致系统崩溃,因此需要设置合理的并发度。 4. 监控:需要在测试过程中对系统进行监控,以便及时发现异常情况。 使用JMeter进行压力测试需要一定的实践经验,需要不断学习和探索,以便有效地测试出系统的性能和稳定性。 ### 回答2: JMeter是一个开源的压力测试工具,可以模拟HTTP请求、FTP请求、SMTP请求等网络请求,能够测量系统在不同负载下的性能表现。为了让大家能够更好地学习和使用JMeter,以下是一个简单JMeter压力测试教程。 一、安装JMeter JMeter可在官网下载,下载完成后解压文件即可。需要Java环境的支持,确保本机已安装Java。 二、创建测试计划 打开JMeter,点击“File”菜单中的“New”,输入测试计划名称,选择测试计划类型(例如Web Test Plan),然后点击“Create”按钮。打开测试计划后,我们需要添加一个线程组,右键点击测试计划,选择“Add”→“Threads (Users)”→“Thread Group”。 三、设置线程属性 设置线程数量、启动时间和循环次数。这些参数决定了JMeter运行测试的模拟用户数和时间。 四、添加HTTP请求 右键点击线程组,选择“Add”→“Sampler”→“HTTP Request”,输入URL地址,设置HTTP请求方法(例如GET或POST),设置参数值和请求头,然后保存设置。 五、设置断言 为了确保响应是否正常,我们需要设置断言。选择HTTP请求下方的“Response Assertion”标签,选择“Text Response”下的“Contains”,填入期望的返回字符串,点击“Save”按钮。 六、添加监听器 添加监听器是为了监控测试请求的结果,调试测试结果。选择线程组下方的“Add”→“Listener”→“View Results Tree”,右键点击“View Results Tree”面板,选择“Configure”,调整面板号、滚动条等属性。 七、运行测试 设置完成后,点击“Run”按钮,等待测试集完成。 以上是基本的JMeter压力测试教程。如果需要更深入的了解和使用,还需要不断学习和了解JMeter的高级特性,例如如何使用CSV数据文件、设置Cookie和脚本等。JMeter具有强大的功能和广泛的应用领域,在工程研发、网络维护、云计算等各方面都有广泛的应用。 ### 回答3: JMeter 是一个功能强大的压力测试工具,能够模拟大量用户请求,提前发现系统的瓶颈和性能问题。为了正确使用 JMeter 进行压力测试,需要了解以下几个方面: 1. 项目准备: 在使用 JMeter 进行压力测试前,我们需要先创建一个测试计划(Test Plan)。测试计划包括测试场景、测试数据和完整的测试过程描述。在测试计划创建后,需要下载 JMeter 并安装。同时,需要准备好被测试的应用服务的 IP 地址、端口号以及访问路径等信息。 2. 配置线程组: JMeter 压力测试的基本单元是线程组。在线程组中,用户可以配置并发数、循环次数、随机请求方案等信息。并发数代表同一时间发送请求数量,循环次数代表单个用户的请求次数。随机请求方案可以模拟真实业务场景下的用户请求情况。 3. 添加请求: JMeter 可以支持多种类型的请求,比如 HTTP 请求、Web Socket 请求和 FTP 请求等。在创建用例时,需要选择合适的请求类型,填写请求 URL 和参数。 4. 添加断言: 断言用于验证服务器返回的响应是否正确。JMeter 支持多种类型的断言,比如响应代码、响应内容、响应头等验证方法。 5. 添加 Listener: Listener 用于收集 JMeter 已经收到的所有信息,包括请求返回的状态、错误信息、响应时间、服务器负载情况等。可以选择多种类型的 Listener 分析这些数据,比如图表、表格、日志等等。 6. 执行测试: 对测试计划进行完备配置后,就可以开始执行压力测试了。在测试开始前,需要检查所有线程组的并发数是否配置正确,测试数据是否准备好,待测试应用是否处于可用状态。 总的来说,JMeter 是目前比较流行且灵活的压力测试工具,但是在实际使用过程中,还需要针对具体业务场景选择合适的压力测试方法和工具。同时,需要注意测试计划的设计、被测服务的状态、测试数据的准确性等方面,才能获得可信、有价值的测试结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值