常用压力测试工具的对比


1、loadrunner

       性能稳定,压测结果及细粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多

2、apache ab(单接口压测最方便)

       模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载, 简单DDOS攻击等

 3、webbench

       webbench首先fork出多个子进程,每个子进程都循环做web访问测试。子进程把访问的结果通过pipe告诉父进程,父进程做最终的统计结果。


1、压测不同的协议和应用

              1) Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)

              2) SOAP / REST Webservices

              3) FTP

              4) Database via JDBC

              5) LDAP  轻量目录访问协议

              6) Message-oriented middleware (MOM) via JMS

              7) Mail - SMTP(S), POP3(S) and IMAP(S)

              8) TCP等等

       2、使用场景及优点

              1)功能测试

              2)压力测试

              3)分布式压力测试

              4)纯java开发

              5)上手容易,高性能

              4)提供测试数据分析

              5)各种报表数据图形展示


安装

GUI图形界面的安装

        1、需要安装JDK8。或者JDK9,JDK10

        2、快速下载

            https://download.csdn.net/download/qq_29235677/11235964

        3、文档地址:http://jmeter.apache.org/usermanual/get-started.html

        4、建议安装JDK环境,虽然JRE也可以,但是压测https需要JDK里面的 keytool工具


目录

 

bin:核心可执行文件,包含配置

              jmeter.bat: windows启动文件:

              jmeter: mac或者linux启动文件:

              jmeter-server:mac或者Liunx分布式压测使用的启动文件

              jmeter-server.bat:mac或者Liunx分布式压测使用的启动文件

              jmeter.properties: 核心配置文件                    

extras:插件拓展的包

              lib:核心的依赖包

              ext:核心包

              junit:单元测试包


改变jmeter的GUI界面语言版本

       1、控制台修改

              menu -> options -> choose language

       2、配置文件修改 

              bin目录 -> jmeter.properties

           默认 #language=en

              改为 language=zh_CN


简单的本地接口测试

使用java的框架springBoot快速编写几个API接口测试

       https://spring.io/guides/gs/spring-boot/

       接口列表

              1、模拟GET请求,用户列表接口

              2、模拟POST请求,用户登录接口

       http://localhost:8080/users

Jmeter(1)安装和入门

多少秒内到达 线程数(多少个用户)

循环次数  1

forever(永久)表示:峰值时每秒多少个

 

Jmeter(1)安装和入门

Jmeter(1)安装和入门

就可以进行测试了,但是拿不到结果

Jmeter(1)安装和入门

Jmeter(1)安装和入门


1、添加->threads->线程组(控制总体并发)

              线程数:虚拟用户数。一个虚拟用户占用一个进程或线程

              准备时长(Ramp-Up Period(in seconds)):全部线程启动的时长,比如100个线程,20秒,则表示20秒内100个线程都要启动完成,每秒启动5个线程

              循环次数:每个线程发送的次数,假如值为5,100个线程,则会发送500次请求,可以勾选永远循环

       2、线程组->添加-> Sampler(采样器) -> Http (一个线程组下面可以增加几个Sampler)

              名称:采样器名称

              注释:对这个采样器的描述

              web服务器:

                     默认协议是http

                     默认端口是80

                     服务器名称或IP :请求的目标服务器名称或IP地址

                     路径:服务器URL

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

       3、查看测试结果

              线程组->添加->监听器->察看结果树


断言

1、增加断言: 线程组 -> 添加 -> 断言 -> 响应断言 

              apply to(应用范围):

                     Main sample only: 仅当前父取样器 进行断言,一般一个请求,如果发一个请求会触发多个,则就有sub sample(比较少用)

       要测试的响应字段:

              响应文本:即响应的数据,比如json等文本

              响应代码:http的响应状态码,比如200,302,404这些

              响应信息:http响应代码对应的响应信息,例如:OK, Found

              Response Header: 响应头

       模式匹配规则:

              包括:包含在里面就成功

              匹配:响应内容完全匹配,不区分大小写

              equals:完全匹配,区分大小写

                            Jmeter(1)安装和入门

结果

Jmeter(1)安装和入门

2、断言结果监听器: 线程组-> 添加 -> 监听器 -> 断言结果

       里面的内容是sampler采样器的名称

       断言失败,查看结果树任务结果颜色标红(通过结果数里面双击不通过的记录,可以看到错误信息)

3、每个sample下面可以加单独的结果树,然后同时加多个断言,最外层可以加个结果树进行汇总

多个断言同时成立最后才成立


聚合报告分析

新增聚合报告:线程组->添加->监听器->聚合报告(Aggregate Report)

              lable: sampler的名称

              Samples: 一共发出去多少请求,例如10个用户,循环10次,则是 100

              Average: 平均响应时间

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

              90% Line : 90% 用户的响应不会超过该时间 (90% of the samples took no more than this time. The remaining  

                                                                                                                  samples at least as long as this)

              95% Line : 95% 用户的响应不会超过该时间

              99% Line : 99% 用户的响应不会超过该时间

              min : 最小响应时间

              max : 最大响应时间

              Error%:错误的请求的数量/请求的总数

              Throughput: 吞吐量——默认情况下表示每秒完成的请求数(Request per Second) 可类比为qps

              KB/Sec: 每秒接收数据量

Jmeter(1)安装和入门

Jmeter(1)安装和入门

qps不涨就到达瓶颈


压测脚本JMX讲解

       1、打开方式subline,或者xml编辑器

       2、运行日志和压测时间查看(基础按钮)

 

相关文章:

  • 2021-05-16
  • 2022-01-15
  • 2021-08-09
  • 2021-12-15
  • 2021-08-09
  • 2021-12-13
  • 2021-11-20
猜你喜欢
  • 2022-12-23
  • 2022-02-11
  • 2021-11-02
  • 2021-11-29
  • 2021-11-29
  • 2021-10-24
相关资源
相似解决方案