### JMeter基础知识与实践要点详解 #### 一、JMeter简介及配置调整 **1. 日志级别调整** - 在`jmeter.properties`文件中,可以通过设置`log_level.jmeter`来调整JMeter的日志输出级别。例如设置为`Info`或`DEBUG`。调整后需重启JMeter以使更改生效。 **2. 内存调整** - 修改`jmeter.bat`中的内存设置以优化JMeter性能。具体做法是设置`HEAP`和`NEW`变量,例如: - `set HEAP=-Xms256m -Xmx1024m` - `set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m` #### 二、JMeter组件执行流程 JMeter的组件按照以下顺序执行: 1. **配置元素**:用于配置测试计划中的各种参数。 2. **前置处理器**:在取样器之前执行,用于预处理数据。 3. **定时器**:控制请求发送的时间间隔。 4. **取样器**:实际发起请求的组件。 5. **后置处理器**:在取样器之后执行,用于处理响应数据。 6. **断言**:验证取样器返回的结果是否符合预期。 7. **监听器**:收集并显示测试结果。 #### 三、HTTP Cookies管理 - 使用**HTTP Cookie Manager**组件管理会话中的Cookie信息,这对于模拟登录等场景至关重要。需要注意的是,在同一测试计划中,一个**Manager**下只能放置一个**HTTP Cookie Manager**组件,以避免出现数据混乱的情况。以“Default”结尾的Manager组件会被所有取样器共享。 #### 四、User Defined Variables - **User Defined Variables**是一种基础配置组件,它不考虑层级关系,其中定义的变量可以被测试计划中的所有线程共享。例如,使用`${__threadNum}`可以获得当前测试计划的线程数。 #### 五、监听器配置 - 监听器组件可以配置以保存测试结果至文件。例如,使用**Aggregate Report**组件时,可以在配置界面指定文件名进行保存。 - 在`jmeter.properties`文件中,通过`jmeter.save.saveservice.output_format`属性可以进一步配置监听器相关的输出格式。 - 需要注意的是,过多地使用监听器会降低性能。建议使用`CSV Data Writer`并将结果输出为CSV格式,这种方式更为高效。 #### 六、Spline Visualizer注意事项 - `Spline Visualizer`组件仅在JMeter 2.13版本中可用,自JMeter 3起已被移除。 #### 七、正则表达式提取器 - **Regular Expression Extractor**组件用于从响应中提取特定数据。需要注意作用域的合理设置,以确保提取的准确性。 - 示例:使用`(?^)`或`(.*)`按行提取完整响应内容。 #### 八、性能最佳实践 - **使用最新版JMeter**:利用最新的功能和修复的bug提高测试效率。 - **命令行模式**:避免图形界面带来的额外负载。 - **合适的JVM内存分配**:根据实际情况调整内存大小。 - **CSV格式输出**:选择高效的文件格式。 - **合理使用Post-Processor和Assertion**:优化测试逻辑,减少不必要的操作。 - **注意正则表达式的作用域**:提高提取效率。 - **避免使用XPath Extractor**:XPath解析可能消耗大量资源。 - **减少Listener的使用**:监听器会显著影响性能。 #### 九、分布式测试设置 1. **生成器设置**:在各生成器上启动`jmeter-server`。 2. **控制器配置**:编辑`jmeter.properties`文件中的`remote_hosts`属性,添加各生成器的IP地址。 3. **启动控制器**:在控制器上启动JMeter并开始测试。 4. **注意事项**: - 确保所有机器安装相同版本的JMeter和Java。 - 解决防火墙和杀毒软件的问题。 - 所有机器应处于同一子网内。 #### 十、并发用户数限制 - 单个JMeter客户端运行在2-3GHz CPU(较新CPU)上时,能够处理300-600个线程,具体取决于测试类型。特别地,对于涉及XML文件解析的测试,CPU消耗较大。 以上内容基于广州八神的JMeter课程笔记总结,涵盖了从基本配置到高级实践的各种知识点,希望对学习者有所帮助。
- 粉丝: 43
- 资源: 12
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 实验二 枚举与分治.docx
- (源码)基于OpenCV和mediapipe的无人机肢体学模拟教学系统.zip
- web_1731508854623.png
- Java code format
- session身份认证Demo
- 基于FlaskWebIDSKDD99深度学习入侵检测 框架 html + css + jquery + python 3.9
- (源码)基于JavaWeb的枫叶网上书店系统.zip
- (源码)基于Zabbix框架的分布式监控系统.zip
- 基于PythonSnort入侵检测IDS系统 框架 html + css + jquery + echart + python
- (源码)基于Spring Boot和Vue的SaaS多租户管理系统.zip