Jmeter工具的使用

一.主流性能测试工具

性能测试工具:loadrunner,jmeter

1.1 loadrunner介绍

1.2 jmeter介绍

Jmeter工具的使用_第1张图片 1.3 对比

相同点:

        都能模拟大量用户

        都能支持多协议(常见的协议都支持,如Http)

        都有监控及分析报表功能

不同点:

 结论:项目日常性能测试jmeter足够用,出商业报告优先LR.

二.jmeter的下载安装配置启动

2.1 jmeter的下载

方式一;官网下载:Apache JMeter - Download Apache JMeter

Jmeter工具的使用_第2张图片

 方式二:直接接收,使用:(我的jmeter文件在D:\install\jmeter\apache-jmeter-4.0)

2.2 配置环境变量

新建JAVA_HOME

Jmeter工具的使用_第3张图片

CLASSPATH填写 

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;

Jmeter工具的使用_第4张图片

path填写

%JAVA_HOME%\bin

%JAVA_HOME%\jre\bin

Jmeter工具的使用_第5张图片

验证

java -version

2.3:配置jmeter环境变量

2.3.1:新建JMETER_HOME

Jmeter工具的使用_第6张图片

2.3.2:CLASSPAT填写 

;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar

Jmeter工具的使用_第7张图片

2.3.3:path填写

%JMETER_HOME%\bin 

Jmeter工具的使用_第8张图片 

2.3.4 :验证

方式一:cmd中输入jmeter

方式二:bin目录下执行jmeter.bat或者jmeter.sh(linux)

三.jmeter的目录结构

bin 目录(常用文件介绍)

        jmeter.bat:windows下启动文件

        jmeter.sh:Linux下启动文件

        jmeter.log:Jmeter运行日志文件

        jmeter.properties:Jmeter配置文件

/docs目录——Jmeter帮助文档

/lib/ext目录——存放Jmeter依赖的jar包

Jmeter工具的使用_第9张图片

Jmeter工具的使用_第10张图片

四.jmeter功能概要

4.1汉化

Jmeter工具的使用_第11张图片

4.2 修改主题

Jmeter工具的使用_第12张图片

五.jmeter元件和组件

5.1 元件的基本介绍

元件:多个类似功能的容器(类似于类)

Jmeter工具的使用_第13张图片

5.2 组件的基本介绍

组件:实现独立的某个功能:(类似于方法)

Jmeter工具的使用_第14张图片

小结:

Jmeter工具的使用_第15张图片

5.3元件的作用域

元件的作用域:是靠测试计划的树形结构中元件的父子关系来确定的

Jmeter工具的使用_第16张图片

 提示:所有的组件都是以取样器为核心来运行的。组件添加的位置不同,生效的取样器页不同

Jmeter工具的使用_第17张图片

元件的执行顺序

同一作用域下的不同元件:

配置元件,前置处理器,定时器,取样器,后置处理器,断言,监听器同一作用域下相同的元件:

从上到下的顺序依次执行

jmeter的案例

Jmeter工具的使用_第18张图片

定时器1--http请求1--定时器1--定时器2--http请求2--定时器1---定时器3--http请求 

六.jmeter使用示例

6.1 第一个案例

需求:使用jmeter访问百度首页接口,并查看请求和响应信息

步骤:

1:启动jmeter

2:在‘测试计划’下添加'线程组'

3:在''线程组''下添加'http请求'取样器

4:填写‘http请求’的相关请求数据

5:在‘线程组’下添加‘察看结果树’监听器

6:点击‘启动’按钮进行执行,并查看结果

Jmeter工具的使用_第19张图片

 6.2 线程组

1. 作用:线程组就是控制jmeter用于执行测试的一组用户

位置:右键点击‘测试计划’-->添加-->线程(用户)-->线程组

2. 特点:

模拟多人操作

线程组可以添加多个,多个线程组可以并行或者串行

取样器和逻辑控制器必须依赖线程组才能使用

线程组下可以添加其他元组下组件

Jmeter工具的使用_第20张图片

 3.线程组的分类

普通线程组,常用的线程组,可以看做是一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户

setup线程组:一种特殊类型的线程组,可用于执行预测试操作

teardown线程组:一种特殊类型的线程组,可用于执行测试后工作

4.参数讲解

Jmeter工具的使用_第21张图片

 6.3 HTTP请求

1.作用:向服务器发送HTTP和HTTPS请求

位置:进入线程组-->右键-->添加-->取样器-->HTTP请求

2.参数

Jmeter工具的使用_第22张图片

6.4 监听器

1.作用:监听器可以动态的监控jmeter测试执行的过程,实时查看测试结果

位置:在线程组>>添加>>监听器>>聚合报告/察看结果树

察看结果树

Jmeter工具的使用_第23张图片

通过察看结果树,我们可以看到每个请求的结果,其中红色的是出错的请求,绿色的为通过

Thread Name:线程组名称

Sample Start: 启动开始时间

Load time:加载时长

Latency:等待时长

Size in bytes:发送的数据总大小

Headers size in bytes:发送数据的其余部分大小

Sample Count:发送统计

Error Count:交互错误统计

Response code:返回码

Response message:返回信息

Response headers:返回的头部信息

聚合报告

Jmeter工具的使用_第24张图片

 Jmeter工具的使用_第25张图片

七.jmeter参数化

1.jmeter介绍

本质:使用参数的方式替代脚本中的固定的测试数据

实现方式:文件定义的方式/数据库的方式/定义变量

2.jmeter参数化

参数化测试:把测试数据组织起来,用不同的测试数据调用相同的测试方法.

jmeter中常见的参数化方式

用户定义的变量

用户参数

CSV Data Set Config

函数

2.1 用户定义的变量

作用:定义全局变量

位置:测试计划-->线程组-->配置元件-->用户定义的变量

Jmeter工具的使用_第26张图片

需要通过${变量名}进行引用

 Jmeter工具的使用_第27张图片

2.2 用户参数

作用:针对同一组参数,当不同的用户来访问时,可以获取到不同的值

 位置:测试计划-->线程组-->前置处理器-->用户参数

 Jmeter工具的使用_第28张图片

2.3 csv数据文件设置

作用:让不同的用户在多次循环时,可以取到不同的值

位置:线程组>>配置原件>>CSV数据文件设置

如果使用TXT可能不能很好的管理数据,如果使用CSV类型,就方便很多,其他的用法和TXT

Jmeter工具的使用_第29张图片

Jmeter工具的使用_第30张图片 

2.4 函数参数化

作用:计数函数,一般做执行次数统计使用

方式一:couter函数

位置:选项>>函数 注释对话框>>_counter

Jmeter工具的使用_第31张图片

 方式二:CsvRead函数

操作: 选项>>函数注释对话框>>_CsvRead

Jmeter工具的使用_第32张图片

方式三:randomstring函数

操作:选项>>函数注释对话框>>_randomstring

 Jmeter工具的使用_第33张图片

 八.jmeter断言

作用:让程序判断预期结果和实际结果是否一致

提示:

jmeter在请求的返回层里面有个自动判断机制(响应状态码)

但是请求成功了,并不代表结果一定正确,因此需要检测机制提高测试准确性

常见的断言

响应断言/json断言/xpath断言/持续断言

1.响应断言

作用:对http请求的任意格式的响应结果进行判断

位置:测试计划-->线程组-->http请求-->(右键添加)断言-->响应断言

Jmeter工具的使用_第34张图片

 2.json断言

作用:对http请求的json的响应结果进行判断

位置:测试计划-->线程组-->http请求-->(右键添加)断言-->json断言

Jmeter工具的使用_第35张图片

 断言不一致时

Jmeter工具的使用_第36张图片

3.xpath断言

定义:xpath基于xml的树状结构,提供在数据结构树中寻找节点的能力

位置:测试计划-->线程组-->http请求-->(右键添加)断言-->xpath断言

Jmeter工具的使用_第37张图片

 区别:响应断言(适用任何的返回类型),json断言(只适用于json的返回类型),Xpath Assertion断言针对返回信息为Xpath的数据类型进行断言

4.断言持续时间

作用:检查http请求的响应时间是否超出要求范围

位置:测试计划-->线程组-->http请求-->(右键添加)断言-->持续时间断言

Jmeter工具的使用_第38张图片

九.jmeter关联

1.为什么使用关联

Jmeter工具的使用_第39张图片

2.关联 :当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,就需要用关联处理

常见的关联

正则表达式提取器  --提取任意格式的数据

json提取器               --提取json格式的数据

xpath提取器              --提取html格式的数据

2.1正则表达式

正则表达式:就是一个公式,或者是一套规则,使用这套规则可以从任意字符串中提取想要的数据内容

公式格式:左边界(匹配符号)右边界:可以提取出想要获取的数据内容

.:是通配符,可以代表任意字符(除换行回车)

*:代表前面的字符出现0或者多次

.*匹配规则:找到左边界值后,往右查找右边界,找到最后面的右边界,中间的所有的数据都被记录下来

?:代表非贪婪匹配,找到左边界后,往右查找匹配走边界,只要右匹配的右边界就停止继续查找;再次查找左边界的右边界

公式格式:左边界(.*?)右边界

(.*?)百度一下,你就知道

正则表达式匹配:

(.*?)-(.*?)-(.*?)\n

通过一个正则表达式可以提取出多组数据,每组数据设置对应的左边界和右边界即可每一组数据都可以由一个或者多个值

作用:针对任意格式的响应数据进行提取

位置:线程组>>添加>>后置处理器>>正则表达式提取器

Jmeter工具的使用_第40张图片

引用名称:存放提取出的值的参数名称

正则表达式:左边界(.*?)有边界

模板:用$$引用起来,表示解析出第几组()的值匹配数字:1表示第一个值,-1表示所有的取值

 Jmeter工具的使用_第41张图片

Jmeter工具的使用_第42张图片

Jmeter工具的使用_第43张图片

实现接口查询登录用户--查询余额在登录的接口中提取数据

Jmeter工具的使用_第44张图片

在余额查询的接口中引用 

Jmeter工具的使用_第45张图片

2.2json提取器

json提取器 :就是json表达式提取数据,从返回格式是json中提取想要的数据内容

位置:线程组>>添加>>后置处理器>>json提取器

Jmeter工具的使用_第46张图片

实现登录--查询余额

Jmeter工具的使用_第47张图片 

提取登录的token数据,通过json表达式

Jmeter工具的使用_第48张图片 

 余额的接口

Jmeter工具的使用_第49张图片

Jmeter工具的使用_第50张图片 

 

你可能感兴趣的:(jmeter,测试工具,单元测试)