jmeter压力测试详解及简单示例

jmeter压⼒测试详解及简单⽰例
压⼒测试
定义:是给软件不断加压,强制其在极限的情况下运⾏,观察它可以运⾏到何种程度,从⽽发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同⼀时间或某⼀段时间内,向系统发送预期数量的交易请求、测试系统在不同压⼒情况下的效率状况,以及系统可以承受的压⼒情况
解决问题:针对性的测试与分析,到影响系统性能的瓶颈,评估系统在实际使⽤环境下的效率情况,评价系统性能以及判断是否需要对应⽤系统进⾏优化处理或结构调整,并对系统资源进⾏优化。
所需的api参数
地址输⼊
http请求头:Content-Type:application/json
压测任务需求确认:
固定接⼝参数进⾏压测还是进⾏接⼝参数随机化压测?
要求⽀持多少并发数?
TPS(每秒钟处理事务数)⽬标多少?响应时间要达到多少?
压服务器名称还是压服务器IP,⼀般都是压测指定的服务器
jemeter线程组/取样器
1、添加 -threads-线程组
线程数:虚拟⽤户数
准备时长Ramp-Up Period:全部线程启动的时长
循环次数:每个线程发送的次数
钢段2、线程组-添加-sampler-http请求(⼀个线程组下可添加多个sampler)
web服务器:
默认协议是http;默认端⼝号是80;服务器名称或ip:请求⽬标服务器名称或ip地址
采果器路径:服务器url
jmeter的断⾔基本使⽤
1、添加断⾔:线程组-添加-断⾔-响应断⾔
apply to(应⽤范围):
main sampler only:仅对当前取样器进⾏断⾔、⼀般是⼀个请求
响应⽂本:即响应数据,json⽂件等
响应代码:http的响应状态码 200 500 404
响应信息:http响应代码对应的响应信息 OK found
resspones header:响应头
模式匹配规则:
包括:包含在⾥⾯就成功热风旋转烤炉
匹配:响应内容完全匹配
equals:完全匹配-区分⼤⼩写
2、断⾔结果:线程组–添加--断⾔结果
内容未取样器的名称
断⾔失败,查看结果树结果标红
3、每个http下⾯可以添加单独的查看结果树,可添加多个断⾔
聚合报告分析
新增聚合报告:线程组-添加--聚合报告
label:取样器名称
samples:⼀共发出多少个请求,例如10个⽤户,循环10此,⼀共请求数100
防水摄像头everrage:平均响应时间
median:⼀般⽤户的响应时间
90line:90% ⽤户的响应不会超过该时间
95line:95% ⽤户的响应不会超过该时间
min:最⼩响应时间
max:最⼤响应时间
error%:错误的请求数量/请求的总数
througput:吞吐量–默认情况下表⽰每秒完成的请求数-可类⽐为qpskb/sec:每秒接收数据量
jmeter压测脚本jmx讲解
1、打开⽅式subline,或者xml编辑器
2、运⾏⽇志和压测时间查看(基础按钮)
jmeter⽤户⾃定义变量
作⽤:很多变量在全局中都要⽤到,测试数据更改,可以在⼀处定义,四处使⽤–例如:服务器地址添加:线程组–config element(配置原件)–user defined variable(⽤户定义变量)
2、引⽤⽅式:${xxx},在接⼝变量中使⽤
csv可变参数压测
jmeter读取csv、txt⽂件⾥⾯参数进⾏压测
添加:线程组–配置原件–csv data set config
如果是多个参数需要同时引⽤,则在CSV数据⽂件⾥⾯设置加多个字段
Variabled names(comma-delitited): csv_name,csv_pwd
jmeter jdbc request压测mysql
jdbc压测mysql相关准备⼯作,jar包添加,配置讲解
1、线程组–sample–jdbcrequest
2、jar包添加 mysql-connector-java-5.1.30.jar
3、jdbc connector configuration 配置
Max Number of connections : 最⼤连接数
MAX wait :最⼤等待时间
Auto Commit: 是否⾃动提交事务
DataBase URL : 数据库连接地址 jdbc:mysql://127.0.0.1:3306/blog
JDBC Driver Class : 数据库驱动,选择对应的mysql
username:数据库⽤户名
password:数据库密码
4、Jmeter压测实战之JDBC request压测Mysql, select语句
在线程组添加 jdbc request,添加select、insert语句
debug sample
Thread Group -> add -> sampler -> debug sampler举宫是什么意思
DBC request参数讲解
1、variable name of pool declared in JDBC connection configuration(和配置⽂件同名)
2、Query Type 查询类型
3、parameter values 参数值
4、parameter types 参数类型
5、variable names sql执⾏结果变量名
6、result variable names 所有结果当做⼀个对象存储
7、query timeouts 查询超时时间
8、 handle results 处理结果集
分布式压测
jmeter压测性能优化
1、使⽤⾮GUI模式:jmeter -n -t test。jmx -l result .jtl
2、少使⽤Listener, 如果使⽤-l参数,它们都可以被删除或禁⽤。
3、在加载测试期间不要使⽤“查看结果树”或“查看结果”表,只能在脚本阶段使⽤它们来调试脚本。
4、包含控制器在这⾥没有帮助,因为它将⽂件中的所有测试元素添加到测试计划中。]
5、不要使⽤功能模式,使⽤CSV输出⽽不是XML
6、只保存你需要的数据,尽可能少地使⽤断⾔
7、如果测试需要⼤量数据,可以提前准备好测试数据放到数据⽂件中,以CSV Read⽅式读取。
8、⽤内⽹压测,减少其他带宽影响压测结果
9、如果压测⼤流量,尽量⽤多⼏个节点以⾮GUI模式向服务器施压
Jmeter压测⽣成多维度图形化HTML测试报告
jmeter压测结果转为html
jmeter -n -t /usr/local/software/jmeter/temp/linux_users_api.jmx -l /usr/local/software/jmeter/temp/jtl/result.jtl -e -o
/usr/local/software/jmeter/temp/result
Jmeter简单压测⽰例
测试计划:测试元件的容器,相当于⼀个项⽬名称
1、⾸先新建线程组,可修改线程组名称
⽤来确定线程数数量,及多长时间内跑完设置的线程数
2、新建http请求
3、新建http请求默认值
访问的服务器名称或IP是不变的,端⼝也是不变的,由于每个请求都要写⼀遍,这样⼯作量⽐较⼤,所以JMeter提供了HTTP请求默认值这样⼀个元件,让我们把重复的内容分离出来,只要定义⼀次就够了
4、新建参数化
⽤户参数:给每⼀个线程赋值,如果运⾏的线程数⼤于添加的线程,则循环取值
5、正则表达式提取器
将后续操作需要的数据提取出来,此例是提取登录的token值
6、查看结果树
⽤来查看运⾏结果数

本文发布于:2024-09-22 18:29:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/223703.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:线程   压测   系统   添加   响应   结果
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议