zoukankan      html  css  js  c++  java
  • Jmeter的简单使用

    前言

    对于jmeter的使用有很多内容,本章节只是简单介绍jmeter的两个方面的内容:一个是使用jmeter模拟postman发送http请求,一个是使用jmete进行压力测试。

    更多的内容请参考官方文档:http://jmeter.apache.org/

    一.jmeter的下载及简单使用

    1.jmeter的下载

    下载地址http://jmeter.apache.org/download_jmeter.cgi

    本节使用的是jmeter5.0

    jmeter不需要安装就可以使用,由于jmeter是使用java编写的的,所以要运行jmeter必须已经安装了jdk配置好了java的环境变量,作为开发的小伙伴,这些基本操作应该我就不啰嗦了。

    下载完之后解压,打开程序有两种方法,一是进入bin目录点击jmeter.bat,即可运行jmeter客户端,打开会弹出两个窗口,一个是jmeter的命令窗口,一个是GUI窗口;二是直接进入bin目录下双击ApacheJMeter.jar即可运行GUI。对于两种方法的区别还不是特别清楚,如果有知道的小伙伴,就不要吝啬了,分享才是快乐的。

    下面,我将使用第一种方法来演示。

    打开界面可以选择语言为中文,但是下次打开还是英文,如果想一直都是英文,可以修改配置文件,网上有教程,我就不多说了。

    二.发送http请求报文

    这个相当于用postman发送请求的功能一样,也算是一个替代功能吧,如果不想使用postman的可以使用这个功能,发送之前如果是post请求的话要设置报文头和报文体,但是如果是get请求则不用设置报文体。

    1.创建一个线程组

    选择TestPlan,右键添加

    然后就可以设置线程数了,一个线程数代表一个用户,因为这里我只模拟发送报文,所以就设置一个线程,下面的都默认即可;

    2.添加一个HTTP请求

     

    添加完成之后,可以设置要发送的ip、端口、上下文路径和请求的方法等,当然ip处也可以使用域名,端口可以不写,默认是80;

     

    3.设置报文头

     

    然后点击添加,添加字段和值

    4.添加结果树

    为了查看请求结果,需要添加请求树(右键已经创建的线程组),可以根据自己的需要,添加聚合报告等等,此处的添加的结果树可以查看一个请求返回的结果;

    5.启动发送请求

     

    6.小案例

    模拟发送一个https://blog.csdn.net/zhuxy604/article/details/81012477,然后查看返回结果

    a.设置线程组信息

    默认即可

     

    b.设置http请求

    c.启动发送,查看返回结果

    三.使用jmeter进行压力测试(重点)

    前面已经讲过了怎么使用jmeter进行发送请求,这节就是在这个基础之上在升级,学会使用jmeter进行压力测试;(参考https://www.cnblogs.com/stulzq/p/8971531.html)

    此节是本人查阅资料,然后实践总结出来的;遇到了很多问题也学会了如何处理这些问题;

    压力测试不能使用GUI界面进行,GUI界面只是辅助,使用压力测试要从命令窗口进行。

    1.使用前的准备

    a.需不需要配置jmeter的环境变量?

    答:不需要,但是windows打开命令窗口,输入jmeter命令会提示不是内部命令,原因是命令是在C盘的路径下,所以找不到命令,如果不配环境变量,就不能使用这种方法,解决办法是,命令窗口打开后,切换到jmeter的bin目录下,然后使用jmeter命令就可以识别了。

    b.如何使用命令?

    jmeter的命令有很多,此处只介绍压测时要执行的命令:

    jmeter -n -t testplan/RedisLock.jmx -l testplan/result/result.txt -e -o testplan/webreport

    说明:

    testplan/RedisLock.jmx 为测试计划文件路径
    testplan/result/result.txt 为测试结果文件路径
    testplan/webreport 为web报告保存路径。

    这三个路径都是可以自定义的,为了方便起见,我就按照这个目录,这里是相对路径,意思就是在jmeter的路径下有个testplan的文件夹,如果没有,则要手动新建,其中RedisLock.jmx是自己要执行的测试计划文件,result.txt是自动生成的结果文件,每次会自动新建,所以每次测试完都要手动删除此文件,不然会报已经存在文件的错误,

    testplan/webreport这个是压测完成之后生成报告的路径,新建好目录之后,内容也会自动生成(每次压测完还要进行下次压测,记得一定要清空此文件夹的内容),生成的内容中有一个index.html的文件就是压测结果的报告,测试完之查看此报告;注意:result和webreport不要使用一个文件夹,因为生成报告的时候要求这两个目录都为空,但是生成报告的过程是有先后顺序的,一个先生成,后生成的那个就会因为目录不为空而报错。

    c.关于压测参数的说明:

    (参考:https://blog.csdn.net/a656678879/article/details/80053645)

    1. 线程数:并发数量,能跑多少量。具体说是一次存在多少用户同时访问
    2. Rame-Up Period(in seconds):表示JMeter每隔多少秒发动并发。理解成准备时长:设置虚拟用户数需要多长时间全部启动。如果线程数是20,准备时长为10,那么需要10秒钟启动20个数量,也就是每秒钟启动2个线程。
    3. 循环次数:这个设置不会改变并发数,可以延长并发时间。总请求数=线程数*循环次数
    4. 调度器:设置压测的启动时间、结束时间、持续时间和启动延迟时间。

    测试报告的结果(吞吐量)tps,表示同一时刻可以接受的用户数量,tps越高表示性能越好,这个和应用的优化有很大关系,单台机器的tps是有限的,生产上可以使用负载均衡来提高用户的并发访问量;下面的案例只是本机单台的压测,压测过程中,打开linux,使用top命令来查看CUP和内存的占用情况,CUP占用最高的程序将会放在第一行。

    2.小案例

    准备工作已经准备完毕后

    1.打开Jmeter

    打开自己已经保存的执行计划(注意的是此测试计划和CMD窗口命令中的测试计划一定要是同一个,要不然参数设置和执行的不是同一个测试计划),然后设置线程数、Rame-Up Period(in seconds)和循环次数的参数,记得一定要点击保存按钮,不然不生效。

    2.CMD打开windows命令窗口

    切换到jmeter的bin目录下

    3.执行压测命令

    (在说一遍:此处执行的测试计划要和窗口的测试计划是同一个)

    jmeter -n -t testplan/登录-HTTP请求.jmx -l testplan/result/result.txt -e -o testplan/webreport

    4.查看生成的报告

    关于测试报告,网上查看说明,请自行查阅,这里就不赘述了。

  • 相关阅读:
    P4329 [COCI2006-2007#1] Bond
    P4802 [CCO 2015]路短最
    1-4-14:计算邮资
    1-4-13:分段函数
    1-4-12:骑车与走路
    1-4-11:晶晶赴约会
    1-4-10:有一门课不及格的学生
    1-4-09:判断能否被3,5,7整除
    1-4-08:判断一个数能否同时被3和5整除
    1-4-07:收集瓶盖赢大奖
  • 原文地址:https://www.cnblogs.com/littleorange7/p/10409097.html
Copyright © 2011-2022 走看看