java http请求_Jmeter进行http压力测试,亲测图文小教程

开头先来些费话,首先说一下,本人为什么会对Jmeter有了解。

这就起源于以前自己是个穷小子,在外面的做兼职,有一次接到了一个网站的性能测试;要求是在线上测试,既不能把服务搞挂,又要测试出来问题,所以后面就直接对接口测试了,繁琐的是每个接口之间的关联性很大,所以还要自己写代码集成到Jmeter中进行测试,这一次算是对Jmeter 有了一定的了解!

下面我们就简单的介绍一下Jmeter作用、性能指标和一个http接口的测试例子。

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

c76816ff66d9c50f3a1289123d7ddb76.png

Jmeter介绍

Apache JMeter是Apache组织开发的基于Java的压力测试工具。

用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。

它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。

JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

另外,JMeter能够对应用程序做功能回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。

为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

JMeter的作用

1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。

2.完全的可移植性和100% 纯java。

3.完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。

4.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。

5.精心的GUI设计允许快速操作和更精确的计时。

6.缓存和离线分析/回放测试结果。

Jmeter图文案例

注意:JMeter基于Java开发,需要系统有安装JDK环境。

下载完成Jmeter解压后进入bin目录,点击jmeter.bat

6fb40690b1b38c8632a55a1c12088b8a.png

1、添加线程组:

测试计划 -> 添加 -> Threads(User) -> 线程组,添加后进入如下界面:

dac7f55774331381c484267a3d261256.png

线程数:表示将模拟多少个用户进行测试。

Ramp-Up Period(in seconds):线程启动间隔,所有线程将在这个时间内依次启动。

循环次数:所有线程执行一次为一次循环。

如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。

2、添加采样器:

采样器可理解为针对前面创建的线程需要做什么事情,这里以添加HTTP请求为例。

1)线程组 -> 添加 -> Sampler -> HTTP请求,添加后进入如下界面:

3d3a2a948a86f4ebb483210b0889705c.png

上图为压测http的get类型接口,url中${newId}和${page}是动态参数,需要从文件中获取

服务器名或ip:填写服务器ip地址(例如:192.168.1.23)

路径:填写url接口剩余部分;

协议:向目标服务器发送http请求时的协议,可以是http或者是https,默认值为http

方法:发送http请求的方法,可用方法包括get、post、head、put、options、trace、delete等。

Content encoding:内容编码方式

路径:目标url路径(不包括服务器地址和端口)

自动重定向:如果选中该选项,当发送http请求后得到的响应是302/301时,jmeter自动重定向到新的页面。

Use keep Alive:当该选项被选中时,jmeter和目标服务器之间使用keep-Alive方式进行http通信,默认选中

Use multipart/from-data for http post:当发送http post请求时,使用Use multipart/from-data方法发送,默认不选中。

同请求一起发送参数:在请求中发送URL参数,对于带参数的URL、jmeter提供了一个简单的对参数化的方法。用户可以将url中所有参数设置在本表中,表中的每一行是一个参数值对(对应URL中的名称 名称1=值1 )

同请求一起发送文件:在请求中发送文件,通常,http文件上传行为可以通过这种方式模拟。

2)添加CSV Data Set Config 来参数化

在d盘简历如下data.txt文件,在variable Names中输入newId,page后,在http请求中就可以通过${newId}获取到

44cee235993e9216e23382488b4f1d7d.png
dd0a5dc783badc9e5a17b7645ae2b294.png

3)如果是post接口,则把post数据写到parameters下面

e6a033369e8f01f9f3d074c3edacd871.png

3、添加监视器

监视器可以理解为针对结果的不同查看方式。JMeter里提供了多种结果表现形式。可通过 HTTP请求 -> 添加 -> 监视器 -> 察看结果树、聚合报告等等。

b2a6f876f04a5942edcd060edbf6fd47.png

聚合报告各指标

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average:平均响应时间,默认情况下是单个 Request 的平均响应时间,单位为毫秒。当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间

Median:中位数,也就是 50% 用户的响应时间

90% Line:90% 用户的响应时间

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量,默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

1c01f9673669f75103ef4fb19c46b628.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值