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中一个完成的脚本,一般包括线程组、取样器、监听器;真正的性能测试脚本,监听器是建议不开启的(监听器消耗本地资源)