jmeter性能测试之使用指南

本文详细介绍了JMeter的工作原理,包括线程组、测试计划、HTTP取样器、监听器、断言、参数化和关联等关键组件的使用。线程组模拟并发用户,HTTP取样器发送HTTP请求,监听器如查看结果树和聚合报告用于展示测试结果。断言用于验证响应数据,参数化实现数据动态输入,关联处理请求间的依赖关系。此外,还探讨了如何处理响应乱码问题及全局变量的设置。
摘要由CSDN通过智能技术生成

一,Jmeter工作原理

Jmeter 是通过线程组来驱动多线程运行测试脚本,对被测服务器发起请求。

二.jmeter的常用组件

1.,测试计划

一个测试场景和测试脚本的开始

2,.线程组

模拟用户的并发数
线程属性:
线程数: 10
Ramp-Up 时间(秒): 1
循环次数:永远
表示在 1 秒内,启动 10 个线程发送请求给服务器, 10 个用户请求发出后,再次启动 10 个线程,发送请求,无限
循环 ……
调度器:
持续时间(秒): 120
表示脚本在 1 秒内启动 10 个线程发起请求,持续测试时间为 2 分钟
3. HTTP 取样器
用来发送和接收 http 请求消息, URL 组成 = 协议 + 域名或 IP+ 端口号 + 路径
4. 监听器
用来监听并展示结果,最常用的两个监听器:查看结果树和聚合报告
查看结果树: 由取样器结果 + 请求 + 响应数据
取样器结果:
Response code:200 http 状态码
Response message:OK ,响应信息
请求: 请求头 和请求体
响应数据: 响应头 和响应体
聚合报告 : 用来统计性能数据
5. 断言
用来比较预期结果和实际结果是否一致
Field to Test :测试的字段
Text Response :匹配从服务器返回的响应文本
Response Code :匹配响应状态码
Response Message :匹配响应信息。如: OK
Response Headers :匹配响应头
Request Headers :匹配请求头
URL Sampled :匹配 URL 链接,针对请求数据
Document(text) :解析服务器响应文档的内容,如: PDF, Offiffiffice 等文档中的内容,但会很耗内存,而且也
很容易解析失败,因此一般普通 http 请求不要选择这个
Ignore Status :当我们要验证异常情况如 404 501 http 响应代码时,需要勾选 "ignore status" ,因为当
http 响应代码为 400,500 时, Jmeter 默认这个请求是失败
Request Data :匹配请求数据
Pattern Mactching Rules :匹配的规则
Contains :返回的结果包括所指定的内容,支持正则匹配
Matches :根据指定内容进行匹配,支持正则匹配
Equals :返回结果与所指定的内容一致,不支持正则表达式
Substring :返回结果包括所指定结果的字符串,不支持正则匹配
Not :非
Or :或
注意:
1 “Equals” “Substring” 模式是纯字符串,不支持正则表达式。
2 匹配 “Equals” 完全等于 字符串,或者字符串的正则表达式形式。
3 包含 “Substring” 只需要 包含 有模式字符串,而不必完全相等。 解决响应结果中乱码的方法
线程组 ----> 后置处理器 ---->bean shell postprocessor-----> 输入: prev.setDataEncoding("utf-8");
6. 参数化
将脚本中某些固定不变的值(常量)设置为一个变量、在脚本运行时变量会自动去读取文件中不同的数据,这个过程
称为参数化
1. user defifined variables :用户定义的变量
用户定义变量,一般用来实现全局变量参数化, 引用变量方法: ${ 变量名 }
2. CSV Data set confifig CSV 数据文件设置
1 . 文件名:即参数化的文件
2 . 文件编码:通常采用 UTF-8
3 . 变量名称:参数的变量名,多个变量时,中间采用英文逗号分隔
4 . 忽略首行:读取文件时,是否需要读取 Excel 文件中的第一行数据
5 . 分隔符: csv 文件默认为英文的逗号,也可以采用制表符 \t
6 . 是否允许带引号:读取文件时,是否允许值包含双引号,如果选择 Fasle ,取值的参数中有双引号,取值正常,如果选
True ,取值的参数中有双引号,影响取值
7 . 遇到文件结束符再次循环:线程组在运行过程中如果 csv 文件中的数据使用完,是否从头开始获取 csv 数据
8 . 遇到文件结束符停止线程:线程组在运行过程中如果 csv 文件中的数据使用完后,是否停止线程运行
9 . 共享线程模式:
所有线程:测试计划下所有的线程组,共同使用 csv 数据文件中的数据
当前线程组:测试计划下所有的线程组独立使用 csv 数据文件中的数据
当前线程:测试计划下所有的线程组每一次循环时所有的线程取值都相同

二. 关联

当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理, Jmeter 可以 通过后置处理器中的正则表达式提取器来处理关联。
1. 自动关联
Http cookie manager :自动把登录成功的 cookie 关联到后面的取样器,必须在同一线程组
2. 手动关联
正则表达式:通过一个表达式,从一堆数据中提取符合某一特征的数据
3. 跨线程组调用 cookie sessionid token ,需要使用的函数
${__setProperty(global_cookie,${cookie},)}
${cookie}: 登录成功后通过正则表达式提取得到的 cookie
global_cookie :变量的名称
该函数的作用是将提取到的 cookie 值赋值给 global_cookie ,成为全局变量
${__property(global_cookie,,)}:
用于调用全局变量
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值