一 常用组件
1. 线程组 Thread Group
线程组是一系列线程的集合,每一个线程代表着一个正在使用应用程序的用户。在 jmeter 中,每个线程意味着模拟一个真实用户向服务器发起请求。
在 jmeter 中,线程组组件运行用户设置线程数量、初始化方式等等配置。例如,如果你设置线程数为 100,那么 jmeter 将创建并模拟测试100 个用户请求到服务器端。
![](https://img-blog.csdnimg.cn/709e3adfbb9e4fb9aedf7e72b9aaf65c.png)
2. 取样器 Samplers
我们常用的 jmeter 测试有 HTTP、FTP、JDBC 协议,以及其他各种支持的协议。
在 jmeter 中 Samplers 组件已经实现了哪些协议的支持。如下图所示:
![](https://img-blog.csdnimg.cn/54cc3bb947034831b6b6be6156579e94.png)
(1)BeanShell Sampler
这个组件元素允许我们在 jmeter 中写 Bean Shell 脚本,写这个脚本有什么作用?意味着你可以完全的控制和实现自己的需要。灵活定制,自然也就有难度,你得有点脚本功底。
![](https://img-blog.csdnimg.cn/882408928f3d4cdf89b2c762be934bdd.png)
注:每一个 Sampler 都有自己独立的 beanshell 解析器,并且sampler 只能在自己的线程中调用(意味着不可跨线程使用)。
(2)FTP Request
FTP Request 元素提供了测试 ftp 服务器的能力,这个元素让我们能够去测试 ftp 的上传、下载功能。下面我们看一下 ftp 元素的基本配置说明:
![](https://img-blog.csdnimg.cn/2a894a7731c540c7b7c9d6d26c6f568c.png)
注:我们经常在 windows 和 linux 直接通过 ftp 进行文件传输,建议勾选 Use Binary Mode,避免编码问题。
(3)HTTP Request
HTTP Request 提供了 HTTP/HTTPS 协议的测试支持能力。了解下基本的功能。
![](https://img-blog.csdnimg.cn/9a22667e23b34409a109e94f92f9b506.png)
(4)Java Request
Java Request 提供了测试 java API 的支持,但要注意要测试的
java API 需要有对应的测试类,该测试类必须继承AbstractJavaSamplerClient。
示例如下:
待测类 class Sum; -> 生成 sum.jar
继承至 AbstractJavaSamplerClient 的测试类 Class
TestSum(AbstractJavaSamplerClient) -> 生成 testSum.jar
注:
一个 java 测试应该要实现以下几个方法,以便 jmeter java sampler 可以正确调用:
方法说明
(1)Arguments getDefaultParameters() 用于获取jmeterjava sampler 传入的测试数据
(2)SampleResult runTest(JavaSamplerContextarg0) 测试事务处理
(3)void setupTest(JavaSamplerContext arg0) 初始化
(4)void teardownTest(JavaSamplerContext arg0) 清理
注意 testSum.jar 要能调用 sum.jar。将上述 sum.jar、testSum.jar 拷贝至 jmeter 安装目录的 lib/ext下。
![](https://img-blog.csdnimg.cn/2e41f2594c634f079154e6cd0774d5b6.png)
3.监听器 Listeners
在 jmeter 中 Listeners 提供了执行结果生成和显示能力的支持,提供了树形结构、表、图形和日志方式。下面我们先看下几种结果显示示例图。
(1)图形模式
![](https://img-blog.csdnimg.cn/4bdce105a4df4d66a06e91df35787024.png)
(2)树模式
![](https://img-blog.csdnimg.cn/40ec894de2734ba8a38e51e66bc14322.png)
(3)表模式
![](https://img-blog.csdnimg.cn/92d73b6cf3a84e3594551295abfde591.png)
(4)聚合模式
![](https://img-blog.csdnimg.cn/b4644c5fd1cf4dec951c7e7f9245cd3b.png)
(5)日志方式
![](https://img-blog.csdnimg.cn/981b206035714b2a9485ccc7a97a1556.png)
4. 配置元件 Configuration Elements
配置元件包含了 Samplers 下各种 Sampler 的默认配置设置,如果有配置默认配置,在 Sampler 下对应的 sampler 就会使用该默认配置。
下面我们看看我们主要用到的默认配置有哪些。
现在进行逐一的说明。
(1)CSV Data Set Config
CSV Data Set Config 主要用于读取 csv 格式的文件中数据,实现参数化。
![](https://img-blog.csdnimg.cn/dd61f4b980964f3f9c0383dac2215338.png)
(2)HTTP Cookie Manager
HTTP Cookie Manager 主要用于默认 cookie 管理。
![](https://img-blog.csdnimg.cn/f8ef0c3f80f74a6c859b35e1f27be4e7.png)
(3)HTTP Request Defaults
HTTP Request Defaults 用于配置 HTTP request 的默认值,例如 IP、端口等等都设置好默认值后,在后续 HTTPrequest 元素里就不需要重复设置,节省时间。
![](https://img-blog.csdnimg.cn/3964faf30355418a8886d030228066ea.png)
二 执行顺序
类似于运算符或操作符的优先级,当JMeter测试中包含多个不同的元素时,哪些元素先执行,哪些元素后执行,并不是严格按照它们出现的先后顺序依次有序执行的,而是会遵循一定的内部规则,我们称之为JMeter元素的执行顺序,一般情况下JMeter元素按照如下顺序依次执行:
(1) 配置元件
(2) 定时器
(3)前置处理器
(4)取样器
(5) 后置处理器
(6)断言
(7)监听器
行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: ,里面有各种软件测试+开发资料和技术可以一起交流学习哦。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
![](https://img-blog.csdnimg.cn/direct/15f11b9000784d40a96da05717b0d9b0.jpeg)