测试工具jmeter-从入门到精通-汇总
目录
=========================================
概述
简介
- apache公司用java平台开发的一款测试工具
可以做什么
- 接口测试-多
- 性能测试
- 压力测试-多
- 数据库测试
- java程序测试
优点
- 开源免费
- 支持多协议-HTTP,tcp,udp
- 轻量级
- 功能强大
缺点
- 无法验证JS程序和页面UI,必须配合selenium使用
返回目录
=========================================
安装与启动
准备
- java环境
下载
安装版本选择
路径
- 解压zip文件后,放在一个没有中文字符的路径下
启动
- jmeter路径的bin目录下,双击jmeter.bat启动jmeter
- 注:Linux下,用jmeter.sh启动
- Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language 来选择语言
插件安装
- jmeter本身支持的包不多,一些功能需要下载插件;
- 下载路径:https://jmeter-plugins.org/install/Install/
- 放置路径:jmeter的 lib/ext 路径下
- 重启后,在jmeter的选项最下方可以看到插件
jmeter目录介绍
-
启动cmd窗口
-
bin
-
其他目录
- lib:存放jar包,是jmeter的核心文件;
- printable_docs:存入jmeter用户手册,帮助文档
返回目录
=========================================
脚本入门
主页面布局
向百度发送请求
向百度发送请求操作
-
步骤1:添加测试计划
- 注:开启后,默认有一个已经创建好的测试计划
-
步骤2:添加线程组
-
步骤3:添加HTTP请求
-
步骤4:配置HTTP请求
-
步骤5:添加查看结果树组件(生成的结果树界面不作任何配置)
-
步骤6:执行测试计划
返回目录
=========================================
测试计划元件
名称修改
- 测试计划:可将名称设置为“项目名称”
- 线程组:可将名称设置为“业务流程”
- HTTP请求:可将名称可以设置为“接口名称”
测试计划test plan
-
可进行相应的修改:将名称设置为项目名称
线程用户thread user
线程组:
-
线程数:即请求的虚拟用户数,不等于并行用户数。
-
ramp-time:完成所有线程执行的时间设置。
-
循环次数:对所有线程进行循环。
取样器sampler
作用:
-
性能测试中,向服务器发送请求,记录响应信息,记录响应时间的最小单元。
-
常见:HTTP请求,ftp请求,tcp请求等。
逻辑控制器login controler
两类
-
一类:控制测试计划中取样器节点发送请求的逻辑顺序,如if,switch,循环等。
-
一类:组织和控制测试计划中取样器节点,如事务控制器,吞吐量控制器。
配置元件config element
-
用于提供对静态数据配置的支持,即参数化。
定时器timer
-
用于设置操作之间的等待时间
前置处理器per processor
-
用于在实际请求发出之前,对即将发送的请求进行特殊处理。
后置处理器post processor
-
用于在取样器发出请求的服务器响应进行处理。
断言assertion
-
用于检测测试中得到的响应数据是否符合预期。
监听器listener
-
对测试结果进行处理和可视化展示,如图形结果,查看结果树,聚合报告等。
返回目录
=========================================
jmeter运行原理
在jmeter中,以线程的方式运行
- 因为如果是进程方式,并发时,开销太大
jmeter通过线程组来驱动多个线程运行测试脚本
运行方式:GUI模式(界面窗口模式);命令行模式(cmd)
- 命令行模式:对负载机的资源消耗更小。
- GUI模式:对电脑的资源消耗较大,无法实现大的并发和压力测试;主要用于创建和调试。
注:执行jmeter的电脑叫做负载机
返回目录
=========================================
jmeter脚本要素
接口三要素
-
请求地址,请求参数,返回值
jmeter脚本要素
-
测试计划:脚本中测试计划只能有一个
-
在测试计划中,至少有一个线程组
-
在线程组中,至少有一个取样器
- 取样器:发送请求,记录响应时间和相应内容
-
在测试计划中,必须有监听器
返回目录
=========================================
jmeter录制脚本
使用工具badboy录制
-
注:badboy只能录制web端,不能录制客户端;
-
badboy安装:
- 傻瓜式,可以自定义安装路径。
-
打开:
- 安装时在开始菜单栏中添加,因此可以通过开始菜单打开。
-
录制:
- 打开后,即是recording状态,输入网址后点击即可开始录制;
- 在右侧进行操作;
-
停止记录并保存为jmeter:
- 停止记录的红色按钮可以停止记录;
- 保存为jmeter,之后可以从jmeter导入录制好的脚本。
-
jmeter导入:
- 打开 -- 找到.jmt文件,并选择;
- 要查看结果,需要手动添加监听器,如查看结果树,然后进行运行等其他操作。
使用jmeter自身代理录制移动端
-
配置jmeter
- 创建新的测试计划,并添加一个线程组;
- 在测试计划右键添加HTTP代理服务器:添加-非测试元件-HTTP代理服务器
- 配置HTTP代理服务器:端口8888默认(如果被占用,再修改),HTTP domains:localhost或本地IP,目标控制器选择"测试计划-线程组"
- 启动:按代理服务器内部的启动,不是菜单栏的启动,启动后OK,开始录制。
-
配置移动端(手机端)
- 获取本地域名和端口号:pc端->cmd->ipconfig查询ipv4网络信息;
- 手机端:长按WiFi-(修改网络-高级选项-)代理-手动-输入主机名和端口号-修改网络(同fiddler配置)
- 手机端操作:如登录操作,jmeter里有相应的记录;点击停止来停止录制。
- 线程组添加监听器-查看结果树:可以查看执行结果;
- 保存jmeter文件:线程组右键-选中部分保存为。
返回目录
=========================================
jmeter配置文件修改
路径
-
jmeter/bin目录下:打开 jmeter.properties 配置文件,修改后的语句去掉注释井号
-
配置后保存退出,重启jmeter
中文乱码
-
查找csvdataset.file.encoding_list
-
修改为
csvdataset.file.encoding_list=UTF-8|UTF-16|ISO-8859-15|US-ASCII
-
去掉本条语句前的井号,并重启jmeter
-
注:若上述修改没有用,则需要对源码进行修改,即对jar包进行反编译。
默认语言
-
查找language
-
修改为
language=zh_CN
(表示中文简体) -
去掉本条语句前的井号,并重启jmeter
返回目录
=========================================