JMeter基础

一、JMeter软件安装与运行

   Jmeter工具是Apache下基于Java开发的一款开源软件,可以用于接口测试、自动化测试、性能测试。支持Java、python、groovy、js、jython等语言。

  JRE:java运行环境

  JDK:java的开发工具包

  jmeter支持jdk1.8及以上版本,但建议不要使用1.8版本以外的版本(小版本无所谓),jmeter的官方测试只在jdk1.8版本中进行测试

  jmeter推荐使用5.1.1版本,不要使用低于5.1.1版本(5.1和5.1.1在生成测试报告时有差异,5.4.1图形界面有个非常明显的bug)

  下载地址:

    最新版本下载地址:http://jmeter.apache.org/download_jmeter.cgi

    历史版本下载地址:https://archive.apache.org/dist/jmeter/binaries/

  运行:1.双击bin文件夹的jmeter.bat文件(双击ApacheJMeter.jar),启动GUI图形界面(查看--->文件拓展名),GUI模式仅用于创建脚本和调试脚本,不要用于性能测试;2.CLI无图形界面,用于性能测试

二、JMeter目录文件解析

  bin/jmeter.log jmeter的日志文件

  lib:jmeter的jar包,lib/ext文件夹,用于存放第三方插件

  bin:

    启动文件:jmeter.bat、ApacheJmeter.jar

    配置文件:所有以properties结尾的文件都是配置文件,其中最重要的配置文件是jmeter.properties

      属性(properties),属性配置文件被修改,重启软件

      language:语言,可以将language=en修改为language=zh_CN

      sampleresult.default.encoding:取样器默认语言编码,可以将sampleresult.default.encoding=ISO-8859-1修改为sampleresult.default.encoding=UTF-8

    templates及report-templates文件夹:千万不要误删除,若删除,无法生成测试报告

    jmeter中,默认脚本保存的路径是bin文件夹,建议bin文件夹下新建文件夹管理脚本

  docs/printable_docs(帮助文档)

    开发:api版本,在docs/api文件夹下的index.html

    非开发人员:printable_docs下的index.html,点击 How do I do it?下的Using Jmeter(离线帮助文档)

  extras:CICD性能持续集成时使用该文件夹

三、基础使用

  1.切换语言

    临时修改:通过GUI图形界面,通过菜单栏Options-->Choose Language

    持久修改:通过修改jmeter.properties配置文件,将language=en修改为language=zh_CN,并将#去掉

  2.GUI图形界面:右上角的三角形图标,代表的是JMeter工具运行出错的日志(非脚本出错)

  3.测试计划:TestPlan,当作JMeter脚本的根路径

  4.JMeter功能使用,依靠鼠标右键

  Threads(users)(线程(用户)):Thread Group(线程组),是性能测试人员进行性能场景设计(包含一组虚拟用户,JMeter中每个线程可以看做一个虚拟用户)

                   Action to be taken after a Sampler error:配置Sampler在运行错误后的处理方式

                   Number of Threads(users):线程数(虚拟用户数)

                   Ramp-Up Period:线程在多长时间内启动完毕,而不是线程启动间隔

                   Loop Count:循环次数

                   delay thread creation until needed:延迟线程创建直到需要

                   Scheduler Configuration调度器配置:Duration持续时间,Startup delay启动延迟

     Config Element(配置元件):多个取样器公用配置,优先级最高,分为两种,一种用来配置Sampler的一些共用信息,如HTTP Header Manager、HTTP Cookie Manager、HTTP Cache Manager、HTTP Request Dafaults;另一种用来配置参数化数据,如CSV Data Set Config、User Defined Variables(用户定义变量)--全局变量

  Sampler(取样器):Thread Group(线程组)右键,真正编写、运行脚本的,根据不同的协议有不同的元件

  Logic Controller(逻辑控制器):用于控制Sampler的执行顺序和执行逻辑,常用的有Loop Controller、Onlyonce Controller等;JMeter中的事务,是通过添加Transaction Controller来实现的

  Pre Processors(前置处理器):①取样器执行之前执行,在Sampler发出数据前对数据进行特殊处理,比如参数化获取当前日期、获取随机字母数字名称等;②User Parameters(用户参数):定义变量--局部变量

  Post Processors(后置处理器):取样器执行之后执行,用于对服务器返回的数据进行特殊处理,可以用来实现关联功能、通过添加Regular Expression Extractor、Xpath Extractor、JSON Extractor来实现

                                                             JSON Extractor(Json提取器):从json格式数据中提取某个数据,如果响应体是json格式,优先使用json提取器(只能提取响应体)

                                                             Regular Expression Extractor(正则提取器):能从整个请求的所有信息中提取信息,包括响应头、响应体

  Assertions(断言):功能测试、自动化测试写断言;性能测试,不建议写断言

  Listener(监听器):①View Results Tree(监听结果数)②Aggregate Report(聚合报告)③Graph Results(图形结果)

四、知识拓展

  1.JMeter中一个完成的脚本,一般包括线程组、取样器、监听器;真正的性能测试脚本,监听器是建议不开启的(监听器消耗本地资源)

原文地址:https://www.cnblogs.com/purelavender/p/15193769.html