zoukankan      html  css  js  c++  java
  • jmeter性能测试工具

    一、Jmeter简介

    Jmeter是啥?

    Apache JMeter 是Apache组织的开放源代码项目,是一个纯Java桌面应用,用于压力测试和性能测量。它最初被设计用于Web应用测试但后来扩展到其它测试领域。

    Jmeter有啥用??

    Apache JMeter可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,Java对象,数据库和查询,FTP服务器或是其它资源)的性能进行测试。JMeter可以用于分析不同压力条件下的总体性能情况。也可以使用JMeter提供的图形化界面,分析性能指标或者在高负载情况下测试你的服务器,脚本,对象。

    Jmeter与·LR有啥区别???

     

    二、Jmeter安装配置

     1.安装配置好Jdk

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

     注:下载后,解压文件到任意目录,避免在一个有空格的路径安装JMeter,这将导致远程测试出现问题。

     3..Jmeter启动:解压,bin目录下运行ApacheJMeter.jar进行启动。

     4.Jmeter 文件目录介绍

    u bin:可执行文件目录

    Bin目录文件
    
    l  jmeter.bat:windows的启动文件
    
    l  jmeter.log:日志文件
    
    l  jmeter.sh:linux的启动文件
    
    l  jmeter.properties:系统配置文件
    
    l  jmeter-server.bat:windows分布式测试要用到的服务器配置
    
    l  jmeter-server:linux分布式测试要用到的服务器配置

    u docs:接口文档目录

    u extras:扩展插件目录

    u lib:所用到的插件目录,里面全是jar包,JMeter 会自动在 JMETER_HOME/lib 和 ext 目录下寻找需要的类

    u Licenses  jmeter证书目录

    u printable_docs用户使用手册

    三、Jmeter功能概要

    1. Jmeter工具组成部分:

    资源生成器:用于生成测试过程中服务器、负载机的资源代码。(LR中的VuGen)
    用户运行器:通常是一个脚本运行引擎,根据脚本要求模拟指定的用户行为。(LR中的Controller)
    报表生成器:根据测试中实时地的数据生成报表,提供可视化的数据显示方式。(LR中的Analysis)
    负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。(LR中Load Generators)

    Test Plan (测试计划):用来描述一个性能测试,包含与本次性能测试所有相关的功能。也就说本次的性能测试的所有内容是于基于一个计划的。(相当于lr的一个测试场景)Add-->添加

    2.Threads (Users)线程 用户

      A. setup thread group(设置线程组)

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

     2) teardown thread group.(拆卸线程组)

      一种特殊类型的ThreadGroup的,可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组。类似于LR中的end( )

     3)thread group(线程组).

      这个就是我们通常添加运行的线程。可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。类似LR的action() ●

    3.测试片段(Test Fragment)

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

    以下是线程组的8类可执行元件

    4.配置元件(Config Element)

       配置元件(config element)用于提供对静态数据配置的支持。如CSV Data Set config 可以将本地数据文件形成数据池(Data Pool)。

    5.定时器(Timer)

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

    6.前置处理器(Per Processors)

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

    7.后置处理器(Post Processors)

      用于对Sampler 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。

    8.断言(Assertions)

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

    9.监听器(Listener)

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

      JMeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些原件来驱动处理一个测试。

    10.取样器(sampler)

       取样器(Sample)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler ,如 HTTP Request Sampler 、 FTP  Request Sample 、TCP  Request Sample 、JDBC Request Sampler 等,每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。

    11.逻辑控制器

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

    四、Jmeter脚本录制

    1.Jmeter脚本录制

     Http请求+查看结果树

      代理服务器操作步骤

    u  创建一个线程组(右键点击“测试计划”--->“添加”---->“线程组”)

    u  创建一个http代理服务器(右键点击“工作台”--->“添加”--->“非测试元件”--->“http代理服务器”)

    Tip HTTP服务器代理设置——分组详解

    不对样本分组:所有请求全部罗列
    在组间添加分隔:加入一个虚拟的以分割线命名的动作。
    每个组放入一个新的控制器:执行时按控制器给输出结果
    只存储每个组的第一个样本:保存对于一次url请求。

     

    设置完后要启动代理服务器,录制完成后记得关闭,

    u  IE--->“internet属性”--->“连接”--->“局域网设置”

     

    u  在浏览器里对指定的页面进行访问。录制完成后,把浏览器的代理服务器勾去掉。

     

    2.Badboy 脚本录制

      下载地址 http://www.badboy.com.au (或者点击视频左下方【获取素材】按钮来下载)

      Badboy是一个强大的工具,旨在帮助测试和开发复杂的动态应用。Badboy包括一个简单而全面的捕获/回放界面,强大的负载测试的支持,详细的报告图表等等,从而使Web测试和开发变得更加容易.

    关于录制时的脚本错误提示

     

      访问者所使用的浏览器不能完全支持页面里的脚本,形成“脚本错误”。遇到“脚本错误”时一般会弹出一个非常难看的脚本运行错误警告窗口,而事实上,脚本错误并不会影响网站浏览,因此这一警告可谓多此一举。要关闭警告则可以在浏览器的工具菜单选择Internet选项,然后单击高级属性页。进入到浏览标签,并选中“禁止脚本调试”复选框,以后你就不会再收到这些警告了。

      脚本录制完成后,导出为 Export to Jmeter  (见脚本haosou.bx)

  • 相关阅读:
    Spring AOP @Before @Around @After 等 advice 的执行顺序
    web服务启动spring自动执行ApplicationListener的用法
    Spring 的监听事件 ApplicationListener 和 ApplicationEvent 用法
    ApplicationContextAware使用理解
    查询oracle比较慢的session和sql
    使用ANTS Performance Profiler&ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题
    C#控制台程序中处理2个关闭事件的代码实例
    mysql优化----第一篇:综述
    HMM 隐马尔科夫模型
    EM 期望最大化算法
  • 原文地址:https://www.cnblogs.com/liunaixu/p/12995716.html
Copyright © 2011-2022 走看看