| |
|
开发:
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 压力测试 |
前言压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,下面我带大家来使用一款压力测试工具JMeter。 环境搭建因为JMeter是使用JAVA写的,所以使用JMeter之前,先安装JAVA环境,本文就不讲安装环境了。 JMeter官网:http://jmeter.apache.org/download_jmeter.cgi (Windows版本下载zip,Linux版本下载tgz) 注意:jdk版本和jmeter版本匹配问题,环境变量一定要配置正确 启动之后会有两个窗口,一个cmd窗口,一个JMeter的 GUI。
官方默认为我们提供了简体中文。通过 【Options】->【Choose Language】变更为简体中文 JMete执行方式JMeter执行方式有2种,一种是GUI模式,一种是非GUI模式。GUI模式就是界面模式,非GUI模式就是命令行模式。界面模式主要用来编写和调试脚本用的,项目的真正执行最好是采用命令行模式,因为采用命令行模式可以和持续集成或者其它框架进行对接,做成自动化回归测试平台。 GUI方式创建测试1.创建线程组在“测试计划”上右键 【添加】–>【[线程(用户)]Threads(Users)】–>【线程组】。 2)Ramp-Up Period (in seconds): 虚拟用户增长时长。比如你测试的是一个考勤系统,那么实际用户登录使用考勤系统的时候并不是大家喊1、2、3 - 走起,然后一起登录。实际使用场景可能是9点钟上班,那么从8:30开始,考勤系统会陆陆续续有人开始登录,直到9:10左右,那么如果完全按照用户的使用场景,设计该测试的时候此处应输入40(分钟)* 60(秒)= 2400。但是实际测试一般不会设置如此长的Ramp-Up时间,一般情况下,可以估计出登录频率最高的时间长度,比如此处可能从8:55到9:00登录的人最多,那这里设置成300秒,如果“线程数”输入为100,则意味着在5分钟内100用户登录完毕。 3)循环次数:该处设置一个虚拟用户做多少次的测试。默认为1,意味着一个虚拟用户做完一遍事情之后,该虚拟用户停止运行。 2.配置元件在我们刚刚创建的线程组上右键 【添加】–>【配置元件】–>【HTTP请求默认值】。
3.构造HTTP请求在“线程组”右键 【添加-】->【(取样器)samlper】–>【HTTP 请求】设置我们需要测试的API的请求路径和数据。我这里是用的json 4.添加HTTP请求头在我们刚刚创建的线程组上右键 【添加】–>【配置元件】–>【HTTP信息头管理器】。 因为我要传输的数据为json,所以设置一个 Content-Type:application/json 5.添加断言在我们刚刚创建的线程组上右键 【添加】–>【断言】–>【响应断言】。 根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息 6.添加察看结果树在我们刚刚创建的线程组上右键 【添加】–>【监听器】–>【察看结果树】。 直接添加,然后点击运行按钮就可以看到结果了。 7.添加Summary Report在我们刚刚创建的线程组上右键 【添加】–>【监听器】–>【(聚合报告)Summary Report】。 直接添加,然后点击运行按钮就可以看到结果了。 测试计划创建完成保存结果就行 非GUI方式JMete非GUI运行优点JMeter可视化界面及监听器动态展示结果都比较消耗负载机资源,在大并发情况下GUI方式往往会导致负载机资源紧张,会对性能测试结果造成影响。我们就只有多加机器来运行测试计划(分布式测试),这样一台负载机变为两台。所以推荐用非GUI的方式来运行测试计划。虽然非GUI方式不显示界面,但也会以字符形式周期性显示执行结果,对负载机的资源消耗会小一些,所有同等条件下非GUI方式的jmeter机器能够产生的负载会比GUI方式的jmeter产生的负载大一些。 jmeter非GU运行参数
jmeter非GUI运行命令
示例:
|
|
开发测试 最新文章 |
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/18 2:22:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |