Jmeter简介

JMeter是什么

  Apache JMeter 是Apache组织的开放源代码项目,是一个100%纯Java桌面应用,用于压力测试和性能测试。

 

Jmetrer能做什么

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

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

  3.完全Swing的轻量级组建支持

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

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

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

  7.高可扩展性:

    可链接的取样器允许无限制的测试能力

    各种负载统计表和可连接的计时器可供选择

    数据分析和可视化插件提供了很好的可扩展性以及个性化

    具有提供动态输入到测试的功能

    支持脚本编程的取样器

 

Jmeter工具包含4个部分:

  1.负载发生器:用于产生负载,通常以多线程或者多进程的方式模拟用户行为

  2.用户运行器:通常是一个脚本运行引擎,用户运行期附加在线城或进程上,根据脚本要求模拟指定的用户行为。

  3.资源生成器:用于测试过程中服务器、负载机的资源数据。

  4.报表生成器:根据测试中获得的数据生成报表,提供可视化的数据显示方式

 

 

 

Jmeter 模拟压力测试的原理    junit是什么?

1) 性能测试工具---协议

2) 自动化测试工具---对象识别技术

使用过程需要注意:

1) 查看jmter.log 

  在bin目录下。

2) log_leve.jmeter属性

  修改jmeter的log级别。默认时INFO 。修改为DEBUG级别将会更详细。只有调试时会开启DEBUG模式。

3) Java虚拟机启动配置

  Jmeter 修改内存可在Jmeter.bat中修改HEAP,如下图:

 

 测试计划元件

  TestPlan(测试计划):用来描述一个性能测试,包含与本次性能测试所有相关的功能。也就是说本次的性能测试的所有内容是基于一个测试计划的

  下面看一下一个测试计划主要有拿些功能模块(右键“测试计划”弹出菜单)。

  

Threads(users)线程 用户

 

 

 1.SetUp thread group (SetUp 线程组)

  一种特殊类型的线程组,可用于执行预测试操作。这些线城的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。

2.tearDown线程组

  一种特殊的线程组,可用于执行测试后动作。这些线城的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试后执行定期线程组。

 3.线程组

  这个就是我们通常添加运行的线程。通俗的讲一个线城组,可以看作一个虚拟用户组, 线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在执行过程中是不回发生改变的。

 

 测试片段(Test Fragment)

 

 

  测试片段元素是控制器上的一个种特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。

   作用:

    1.在脚本开发过程中可以用来备份元件。

    2.其下的元件可以被模块控制器调用,我们可以利用它来模块化请求供模块控制器调用。

 取样器(Sampler)

 

  取样器(Sample)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler ,如 HTTP Request Sampler 、 FTP  Request Sample 、TCP  Request Sample 、JDBC Request Sampler 等,每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。(在jmeter 的所有sampler 中,Java Request Sampler 和 Beanshell Request Sampler 是两种特殊的可定制的 Sampler ,后面会深入讨论。)

 

 

逻辑控制器(Logic Controller)

 

  逻辑控制器,包括两类无件,一类是用于控制test plan 中 sampler 节点发送请求的逻辑顺序的控制器,常用的有 如果(If)控制器 、switch Controller 、Runtime Controller、循环控制器等。另一类是用来组织可控制 sampler 来节点的,如 事务控制器、吞吐量控制器。

 

 

 

配置元件(Config Element)

 

 

  配置元件(config element)用于提供对静态数据配置的支持。CSV Data Set config 可以将本地数据文件形成数据池(Data Pool),而对应于HTTP Request Sampler和 TCP Request Sampler等类型的配制无件则可以修改Sampler的默认数据。(例如,HTTP Cookie Manager 可以用于对 HTTP Request Sampler 的cookie 进行管理)

 

 

定时器(Timer)

 

   定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手端。类似于LoadRunner里面的“思考时间”。JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。

 

 

前置处理器(Per Processors)

 

  用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复符则可以实现URL重写,当RUL中有sessionID 一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID 。

 

 

后置处理器(Post Processors)

 

  用于对Sampler 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。例如,XPath  Extractor 则可以用于提取响应数据中通过给定XPath 值获得的数据。

 

 

断言(Assertions)

 

 

   断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。

 

 

监听器(Listener)

 

 

   这个监听器可不是用来监听系统资源的元件。它是用来对测试结果数据进行处理和可视化展示的一系列元件。 图行结果、查看结果树、聚合报告。都是我们经常用到的元件。

 

 

posted @ 2018-12-05 17:01  向日葵的部落  阅读(746)  评论(0编辑  收藏  举报