jmeter 简介


jmeter 简介

                                

官网:Apache JMeter - User's Manual: Getting Started

                           

            

***************

jmeter 简介

           

基本特性

jmeter是用来进行性能测试、完全开源的java应用软件;
能对静态资源、动态资源、web应用程序进行测试;

# 支持测试各种服务器、协议格式:
Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
FTP、LDAP、TCP、Java Objects
SOAP / REST Webservices
Database via JDBC
Native commands or shell scripts
Mail - SMTP(S), POP3(S) and IMAP(S)
Message-oriented middleware (MOM) via JMS

Full featured Test IDE that allows fast Test Plan recording 
(from Browsers or native applications), building and debugging
# 针对浏览器或者本地应用,可用测试计划进行录制、构建和调试

CLI mode (Command-line mode (previously called Non GUI) / headless mode) 
to load test from any Java compatible OS (Linux, Windows, Mac OSX, …)
# 可用命令行从任何java兼容的系统上(linux、windiws、mac等)加载测试计划

A complete and ready to present dynamic HTML report
# 提供动态展示的html报告

Easy correlation through ability to extract data from most popular 
response formats, HTML, JSON , XML or any textual format
# 可从常用的数据相应格式(html、json、xml、text等)中提取数据

Full multi-threading framework allows concurrent sampling by many threads and simultaneous sampling of different functions by separate thread groups.
# 可用多线程并发测试、并可使用线程组进行隔离测试

Caching and offline analysis/replaying of test results
# 缓存测试结果,对测试结果进行离线分析

Highly Extensible core(高拓展特性)
Pluggable Samplers allow unlimited testing capabilities
Scriptable Samplers (JSR223-compatible languages like Groovy and BeanShell)
Data analysis and visualization plugins allow great extensibility as well as personalization
Functions can be used to provide dynamic input to a test or provide data manipulation
Easy Continuous Integration through 3rd party Open Source libraries for Maven, Gradle and Jenkins
# 可插拔的采样器拓展了测试能力;
# 脚本采样器(JSR223兼容的语言:groovy、beanshell);
# 数据分析和可视化插件:可进行拓展、个性化定义
# 可用Maven、Gradle和Jenkins方便集三方开源插件

                   

工作原理

jmeter是java应用程序,运行在jvm虚拟机之上;
使用线程组管理线程运行测试脚本,对被测试服务器发起负载;
每个负载机(jmeter)可运行多个线程组,对不同的业务进行隔离测试

               

测试计划要素

脚本中测试计划只能有一个:测试计划为根结点,只能有一个
测试计划至少一个线程组:jmeter使用线程组管理线程发起负载,可有多个线程组对不同业务进行隔离测试
测试计划至少一个取样器:取样器用于模拟用户请求
测试计划至少一个监听器:用于对取样结果进行分析、可视化展示等

               

               

***************

分布式测试

           

                         

                       

节点说明:

controller node:控制节点,运行gui界面,向其他jmeter节点发送测试计划,
                控制jmeter是否发起负载,所有测试结果都会汇总到控制机,
                controller node也可以作为work node直接发起负载
work node:工作节点,接收控制节点发送的测试计划,根据控制节点命令决定是否向target发起负载
target:被测试的服务器

              

工作流程

work node启动agent程序,等待controller node连接;
controller node连接work node,向work node发送测试计划、启动命令;
work node运行脚本,向controller node回传测试结果;
controller node接收结果并展示

                 

配置步骤

                             

# work node(工作节点)
bin目录运行:jmeter-server(linux)、jmeter-server.bat(windows)

# controller node(控制节点)
修改jmeter.properties属性文件:remote_hosts=127.0.0.1
remote_hosts=127.0.0.1,192.168.0.10,192.168.0.11,192.168.0.12,192.168.0.13,192.168.0.14
# 说明:remote_hosts中有127.0.0.1表示本机也是工作节点

                 

启动单个工作节点

                                          

           

启动所有工作节点

                         

                           

                               

***************

jmeter 组件

           

线程组:设置测试线程数,循环次数等

                         

             

取样器:模拟用户操作,发送http请求、java请求、ftp请求等

                         

               

断言:验证请求结果是否符合预期,较常用的是响应断言

                          

              

监听器:收集测试结果,以表格或者图表的形式展示测试结果

                          

                 

前置处理器:请求发送前做一些准备工作,如数据库操作之前需要先建立数据连接

                          

                  

配置元件:参数配置,如从文件中读取配置参数等

                          

                       

后置处理器:处理服务器的返回结果,如从响应数据中获取session数据等

                          

                      

控制器:控制登录次数、循环控制、事务控制等

                          

                     

定时器:控制请求发送时间,在同一时刻发送等

                          

                   

测试片段:备份元件、供模块控制器调用等

                          

                                                    

jmeter 元件执行顺序

如果存在配置元件,则依次配置元件;
如果存在前置处理器,则执行前置处理器;
如果存在定时器,则执行定时器;
执行取样器;
如果存在后置处理器,且取样结果不为空,则执行后置处理器;
如果存在断言,且取样结果不为空,则执行断言;
如果取样结果不为空,则执行监听器

                                                                

                                                                     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值