| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> Jmeter -> 正文阅读 |
|
[开发测试]Jmeter |
1、综述 ?? ? ?JmeterJmeter是Apache的开源压力测试工具,其它的测试工具还有Apache Bench、Loadrunner。Jmeter是使用JAVA写的,所以使用JMeter之前,需要先安装JAVA环境。我们从官网下载完成后在Windows下可以通过bin下的jmeter.bat打开程序,然后就启动了一个GUI和一个命令行程序,使用GUI来配置、调试测试和生成测试文件,使用命令行命令根据配置好的测试文件进行测试。 ? ?可以增加java堆来满足测试需求,通过修改JMeter批处理文件的环境变量:HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m。 2、创建测试文件 ? ?①、添加线程组 ? ? ??Test Plan-添加-线程(用户)-线程组,“线程数”相当于是模拟用户数;“Ramp-Up时间”为线程启动时间,比如设置为10,然后有100个线程,那么就是在10秒内启动这100个线程,相当于每秒启动10个线程;“循环次数”为每个线程的请求次数,比如有100个线程,设置了循环次数为10,那么总请求次数就为1000,设置为永远的话为线程一直发送请求。需要注意的是“循环次数”指的是每个线程的循环次数,比如线程数设置为2,Ramp-Up时间设置为10,循环次数设置为2的话,第一个线程在测试开售后就执行请求,结束后会立即再次执行请求,第二个线程在5秒后才开始执行请求,执行结束后立即再次执行,一共执行了4次请求。?“持续时间”设置成60的话表示执行一分钟后测试停止。 ? ?②、添加Http请求 ? ? ? 右击新建的线程组-添加-取样器-Http请求,然后就可以设置使用协议、服务地址和端口、请求方法、路径、URL参数、消息体数据(请求体数据)等。然后就可以点击启动开始调试测试,点击保存生成.jmx测试配置文件: ? ?? ? ?设置请求头:右击请求-添加-配置元件-HTTP信息头管理器。 ? ?生成.jmx测试文件后就可以使用命令行进行压力测试,比如打开命令行,进入Jmeter的bin目录,在命令行输入命令“jmeter -n -t testplan/RedisLock.jmx -l testplan/result/result.txt -e -o testplan/webreport”,其中RedisLock.jmx为测试配置文件(测试计划文件),result.txt为测试结果文件,webreport为web报告保存路径。如下为生成的web报告页面,其中的Apdex值表示户体验质量,0.5以下表示不可接受,0.7以下表示差、0.85以下表示一般,0.94以下表示良好,以上表示优秀: 3、添加断言、用户自定义变量、默认配置 ? ?①、断言 ? ? ?断言可以检测响应返回的结果和我们预期的是否一致,右击请求-添加-断言-响应断言,如下断言判断响应代码是否为200,断言为假的话错误信息为"response code error!": ? ??如下断言判断响应文本里是否包含hello: ? ??在添加的“查看结果树”和“断言结果”里可以看到请求响应断言失败的结果: ? ? ②、?添加用户变量 ? ? 右键线程组-添加-配置元件-用户定义的变量,这样就可以在请求配置中使用使用这个变量,比如添加了city这个变量,然后在Path中就可以填入"/serarch?city=${city}"。 ③、添加默认配置 ? ? ?可以给线程组下的请求添加一些默认值,这样请求就会使用配置的地址、IP等默认值:右击线程组-添加-配置元件-HTTP请求默认值。 4、 ? ①、查看结果树 ? ? ? 给请求添加“查看结果树”:右击请求或线程组-添加-监视器-查看结果树,添加后可以点击运行测试结果,如下所示,可以查看每个请求的请求头、请求体,以及响应的响应头和响应体等信息: ? ?②、汇总报告 ? ? ?给请求添加“汇总报告”:右键请求或线程组-添加-监听器-汇总报告,其中各项释义如下: ? ? ? ? Label:取样器名称(请求或事务名称)。 ?? ?③、聚合报告 ? ? ?给请求添加“聚合报告”:右键请求或线程组-添加-监听器-聚合报告,其中各项释义如下: ?????????Label:请求名称 ? ? 为什么要有 *% 用户响应时间?因为在评估一次测试的结果时,仅仅有平均事物响应时间是不够的。假如有一次测试,总共有 100 个请求被响应,其中最小响应时间为 0.02 秒,最大响应时间为 110 秒,平均事务响应时间为 4.7 秒,你会不会想到最小和最大响应时间如此大的偏差是否会导致平均值本身并不可信?我们可以在 95 th 之后继续添加 96/ 97/ 98/ 99/ 99.9/ 99.99 th,并利用 Excel 的图表功能画一条曲线,来更加清晰表现出系统响应时间的分布情况。这时候你也许会发现,那个最大值的出现几率只不过是千分之一甚至万分之一,而且 99%的用户请求的响应时间都是在性能需求所定义的范围之内的; |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:10:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |