性能测试定义:指通过测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
jmeter 使用
下载jmeter 安装JDK ,配置环境变量,%JMETER_HOME%\bin
启动:
方式
1
:在命令行中输入
jmeter
方式
2
:
bin
目录下执行
jmeter.bat(window)
或者
jmeter.sh(linux)
进程: 一个正在执行的程序对应一个进程
线程: 一个进程有多个执行线程
线程组: 按照线程性质对线程分组
三者关系: 一个进程有多个线程组,一个线程组有多个线程
注意事项:
1
:参数传递中
Parameters
和
Body Data
不能同时使用,必须要保证其中至少一个为空,否则提示错误
2
:在传递的参数中,接口参数名和参数值两边不能有空格,否则会报错
在测试计划
>>
添加
>>Threads>>
线程
在线程组
>>
添加
>>sampler>>http
请求
(
常用
)
在线程组
>>
添加
>>
监听器
>>
聚合报告
/
查看结果树
![](https://img-blog.csdnimg.cn/585aa12da79f46b982779168c48ca639.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASDE5MTJBbGl5YW55YW4=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/e344a1b025684c4598abbbce8ac1cdb2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASDE5MTJBbGl5YW55YW4=,size_20,color_FFFFFF,t_70,g_se,x_16)
作用
:
监听器可以动态的监控
JMeter
测试执行的过程
,
实时查看测试结果
![](https://img-blog.csdnimg.cn/d53460b6d65b4e57b9e3009cfeb3c08f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASDE5MTJBbGl5YW55YW4=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/7c621be8cb9c4867b321b94d19591135.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASDE5MTJBbGl5YW55YW4=,size_20,color_FFFFFF,t_70,g_se,x_16)
一个
HTTP
请求有着许多的配置参数,下面将详细介绍:
名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
服务器名称或
IP
:
HTTP
请求发送的目标服务器名称或
IP
地址。
端口号:目标服务器的端口号。
方法:发送
HTTP
请求的方法,可用方法包括
GET
、
POST
、
HEAD
、
PUT
、
OPTIONS
、
TRACE
、
DELETE
等。
Content encoding
:内容的编码方式,默认值为
iso8859
路径:目标
URL
路径
(
不包括服务器地址和端口
)
注意事项:
1
:参数传递中
Parameters
和
Body Data
不能同时使用,必须要保证其中至少一个为空,否则提示错误
2
:在传递的参数中,接口参数名和参数值两边不能有空格,否则会报错
1
.测试计划是使用
JMeter
进行测试的起点,它是其它
JMeter
测试元件的容器。
2
.线程组:代表一定数量的并发用户,它可以用来模拟并发用户发送请求。
3
、取样器(
Sampler
):模拟各种请求。所有实际的测试任务都由取样器承担,存在很多种请求。
如:
HTTP
、
ftp
请求等等。
4
、监听器:负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显
示、统计一些数据(吞吐量、
KB/S……
)等。
6
、断言:用于来判断请求响应的结果是否如用户所期望,是否正确,非常实用
7
、定时器:负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求。
5
、逻辑控制器:允许自定义
JMeter
发送请求的行为逻辑,它与
Sampler
结合使用可以模拟复杂的
请求序列。
8.
配置元件维护
Sampler
需要的配置信息,并根据实际的需要会修改请求的内容。
9.
前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的
设置,后置处理器则常常用来处理响应的数据。
断言:
断言
(Assertions)
可以用来判断响应的数据是否符合预期
在线程组
>>
添加
>>
断言
>>json
断言
在线程组
>>
添加
>>
断言
>>响应
断言
![](https://img-blog.csdnimg.cn/f35649bd4c564ab4b1ae6e3ff56cc06a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASDE5MTJBbGl5YW55YW4=,size_20,color_FFFFFF,t_70,g_se,x_16)
Xpath断言
Xpath
即为
XML
路径语言,它是一种用来确定
XML
文档中某部分位置的语言。
xpath
基于
XML
的树状结
构,提供在数据结构树中寻找节点的能力
操作:在线程组
>>
添加
>>
断言
>>xpath
断言
![](https://img-blog.csdnimg.cn/be8edf8012334084bef54d1a95a92f74.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASDE5MTJBbGl5YW55YW4=,size_20,color_FFFFFF,t_70,g_se,x_16)
区别:响应断言(适用任何的返回类型)
,json
断言(只适用于
json
的返回类型)
,Xpath Assertion
断言
针对返回信息为
Xpath的数据类型进行断言
区别:响应断言(适用任何的返回类型),json断言(只适用于json的返回类型),Xpath Assertion断言 针对返回信息为Xpath的数据类型进行断言
![](https://img-blog.csdnimg.cn/d85d8fe92955440cab7bce5c0535d194.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASDE5MTJBbGl5YW55YW4=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/c7542f16816f459db4e6d3c8139dad99.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASDE5MTJBbGl5YW55YW4=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/aaa9a2df6bf34ed2a0dabb4677dbddc9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASDE5MTJBbGl5YW55YW4=,size_20,color_FFFFFF,t_70,g_se,x_16)
定时器定时器(Timer)负责定义请求之间的延迟间隔
![](https://img-blog.csdnimg.cn/1d08b421bd55415eb84e35d355b73ac4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASDE5MTJBbGl5YW55YW4=,size_20,color_FFFFFF,t_70,g_se,x_16)
事务控制器作:在线程组>>添加>>逻辑控制器>>事务控制器
循环控制器
操作:在线程组>>添加>>逻辑控制器>>循环控制器
http请求默认值(常用)
操作:线程组>>配置原件>>http请求默认值
7.5.2:正则表达式
常见的正则表达式如下(在线正则表达式) http请求默认值,会在发送http请求的时候,自带这些参数,复用的作用
操作须知 1)确定取值的范围 2)确定取值的左右边界,最好是能够唯一确定的值的边界 3)如果要查看我们的值是否正确,可以使用Debug Sampler 引用${变量名}
操作须知 1)确定取值的范围 2)确定取值的左右边界,最好是能够唯一确定的值的边界 3)如果要查看我们的值是否正确,可以使用Debug Sampler 引用${变量名}
线程组>>添加>>后置处理器>>正则表达式提取器