前言

对于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.查看生成的报告

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

Jmeter的简单使用的更多相关文章

  1. Jmeter教程 简单的压力测试

    Jmeter教程 简单的压力测试:http://www.cnblogs.com/TankXiao/p/4059378.html

  2. jmeter教程--简单的做压力测试

    Jmeter是一个非常好用的压力测试工具.  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 什么是压力测试 顾名思义:压力测试,就是  被测试的系统,在 ...

  3. 【JMeter】JMeter进行简单的数据库(mysql)压力测试

    JMeter进行简单的数据库(mysql)压力测试 1.点击测试计划,再点击“浏览”,把JDBC驱动添加进来: 注:JDBC驱动一般的位置在java的安装地址下,路径类似于:    \java\jre ...

  4. 使用jmeter做简单的场景设计

    使用jmeter做简单的场景设计 Jmeter: Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试.我之所以选择它,最重要的一点就是----开源 个人 ...

  5. Jmeter实现简单web负载测试

    Jmeter实现简单web负载测试 简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. ...

  6. Jmeter教程 简单的压力测试【转】

    Jmeter教程 简单的压力测试[转] Jmeter是一个非常好用的压力测试工具.  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 阅读目录 什么是压力 ...

  7. 压力测试之badboy和Jmeter的简单使用方法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 所谓压力测试是指,通过确定一个系统的瓶颈或者不能接收的性能点, ...

  8. 使用JMeter进行简单的压力测试

    一.压力测试 顾名思义:压力测试,就是  被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况). 比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速 ...

  9. 使用Jmeter进行简单的http接口测试

    1.添加线程组:在“测试计划”上点击鼠标右键-->添加-->threads(Users)-->线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定 ...

  10. Jmeter的简单练习

    一.安装Jmeter 1.下载Jmeter 下载地址:http://jmeter.apache.org/download_jmeter.cgi 目前最新版为2.9,其余文件如源代码等也可从如下官网下载 ...

随机推荐

  1. nmon 的下一代工具 njmon

    njmon njmon = nmon + JSON format + real-time push to a stats database + instant graphing of "al ...

  2. Ansible简明教程

    Ansible是当下比较流行的自动化运维工具,可通过SSH协议对远程服务器进行集中化的配置管理.应用部署等,常结合Jenkins来实现自动化部署. 除了Ansible,还有像SaltStack.Fab ...

  3. SQL Server 2005 sa登录失败。已成功与服务器建立连接 但是在登录过程中发生错误。 provider 共享内存提供程序 error 0 管道的另一端上无任何进程。

    SQL Server 2005 Express版 用户 'sa' 登录失败.该用户与可信 SQL Server 连接无关联.提示错误:已成功与服务器建立连接 但是在登录过程中发生错误. provide ...

  4. google protobuf c++ 反射

    const Descriptor *desc = DescriptorPool::generated_pool()->FindMessageTypeByName(msg_name); asser ...

  5. Python - 调用接口合并文件夹下多个Excel表

    在工作中经常遇到需要打开许多个excel表格,然后合并的需求,合并的同时要求格式必须原汁原味的保留.利用VBA代码可以比较轻松的解决,现在我们来看Python中如何实现. 上代码: from open ...

  6. [Php][linux][nginx] 安装总结

    就想总结一份安装环境文档,因为文档很多问题也很多,总结一份自己的安装文档! 首先,环境CentOS7,linux环境,windows! 1. 网络配置! vi /etc/sysconfig/netwo ...

  7. Python爬虫---爬取腾讯动漫全站漫画

    目录 操作环境 网页分析 明确目标 提取漫画地址 提取漫画章节地址 提取漫画图片 编写代码 导入需要的模块 获取漫画地址 提取漫画的内容页 提取章节名 获取漫画源网页代码 下载漫画图片 下载结果 完整 ...

  8. Python 中取代 Printf 大法的工具

    「printf 大法」大概是最早期学到的 debug 方式?不同语言有不同的指令,在 Python 里对应的是 print指令 (加上%或是.format). 刚刚看到「 cool-RR/pysnoo ...

  9. java集合List

    需求:List集合存储字符串并遍历.List集合的特点: 有序(存储和取出的元素一致),可重复的.package javatest; import java.util.ArrayList;import ...

  10. Spring Security 是如何在 Servlet 应用中执行的?

    Spring Security 是一个强大的认证和授权框架,它的使用方式也非常简单,但是要想真正理解它就需要花一时间来学习了,最近在学习 Spring Security 时有一些新的理解,特意记录下来 ...