深入浅出Jmeter
本文为纯理论了解jmeter,并未包含操作部分
Jmeter目录结构:
bin目录:该目录下存放的是Jmeter的主jar包/配置文件、启动脚本等。
#表示注释,但并不是没效果,只是默认值,如果想要进行修改,可以复制一份对应想要修改的,去掉注释
注意⚠️:配置文件修改需要重新启动来进行生效
如果是Windows
Linux
打开Jmeter.bat文件查找heap可以看到对应的内存大小,前者是最小值,后者是最大值,保持一致,最好不要超过物理可用内存的50%,因为启动的时候有堆里面的内存,还有堆外面的内存,最后面是原空间大小,参考下图
打开Jmeter,查看同windows
可以通过 java -jar ApacheJmeter.ja 来启动jmeter
Apache Jmeter.jar:就是jmeter的主jar包
Jmeter.bat /jmeter:是jmeter的启动脚本,我们一般可以通过编辑的方式来修改jmeter启动时的JVM参数,根据需要去调整JVM中的heap的大小
Jmeter.properties:是jmeter的主配置文件,超过80%以上的配置文件都是在该文件中来实现
docs目录:该目录下存放的是jmeter的api文档,用于二次开发
extras目录:存放的是jmeter和其他工具集成所需要的文件
Lib目录:该目录是jmeter启动时的默认的classpath,这就意味着在使用jmeter进行测试的过程中,凡是需要import操作(报错:xx class not fount)的类都必须打成jar包放入lib目录
⚠️lib目录改变,必须重启jmeter才会生效
lib\exg目录:该目录是用来存放jmeter的组件、第三方的组件和插件的
组件、插件是指集成类jmeter的GUI框架,在GUI模式可见的部分
printable_docs目录:该目录存放的是jmeter的官方帮助文档
Jmeter脚本生成:一般来说,对于jmeter而言,它的脚本生成方式有三种
借助第三方工具录制生成:
badboy 被淘汰
blazemeter
缺点:国内无法注册账号(翻墙进行注册)
常见:
使用自带的http代理服务器方式生成
Windows电脑
Mac电脑
地址:填写Jmeter代理服务器所在机器的IP地址
端口:填写Jmeter代理服务器中所设置的端口
internet选项—连接—局域网设置
勾选为局域网使用代理服务器
点击Wi-Fi — 打开网络偏好设置 — 高级 — 代理 — 选择网页代理
端口:由用户指定,在jmeter所在机器中未被占用即可,和被测试的服务器的服务端口没有任何关系
目标控制器:是用来指定用于存放脚本的组件,建议选择测试计划—线程组
Type:默认是HttpClient4,但是有时候录制有问题的话,可以选择Java模式
过滤器:
启动:启动之后会在bin目录下生成一个CA证书
⚠️如果你的端口号与本机端口号冲突会报错,如下图,会提示选择另外一个端口,此时就需要修改端口号
模拟客户端发送请求给服务器
第一步:添加线程—线程组
第二步:添加配置元件—http cookie管理器
第三步:添加非测试元件–http代理服务器
第四步:配置http代理服务器并且启动
第五步:在客户端进行设置,使得客户端的请求通过代理
抓包手写
Jmeter的组件:jmeter的脚本啥由不同的组件构成的
同一种类型的组件的图标是相同的
Jmeter的组件:
http cookie管理器:是用来实现cookie管理功能
http信息头管理器:是用来添加http的信息头
测试计划:自带组件,Jmeter所有的其他类型组件都是必须位于该组件下
线程组:必选组件,Jmeter是通过该组件来控制线程的数量(执行脚本的线程)、循环次数的
逻辑控制器:可选组件,是用来控制脚本的一些执行逻辑
取样器:Sampler,即请求,属于必加组件。我们要去实现接口测试,则需要根据接口类型选择合适的取样器
其他组件:配置元件、定时器、前置处理器、后置处理器、断言、监听器,这六大类都是辅助组件,都是用来服务于取样器组件的
配置元件:是用来完成一些基础配置工作的
前置处理器:运行在请求之前的一些组件
后置处理器:运行在请求之后的组件
断言:实现检查点、断言的组件
监听器:日志组件,用来管理日志
作用域:
定时器、前置处理器是运行在作用域内的每一个请求之前,和组件先后无关,运行次数等于请求的次数
后置处理器、断言是运行在作用域内的每一个请求之后,和组件先后无关,运行次数等于请求的次数
是jmeter中六大辅助组件对于取样器组件的生效规则
定义:辅助组件对于其父级组件、所有同级组件、所有同级组件的子组件有效
其中