jmeter,学这些重点就可以了

JMeter:常用功能详解与性能测试最佳实践,

前言

对测试来说,jmeter应该是大家使用较频繁的测试工具之一,因为其开源、免费、轻量、功能强大,支持很多种协议,除了测功能,还能做自动化和性能测试;

据某机构的调查,性能并发工具中,jmeter市场占有率已经50%+,超过了老大哥loadrunner;

这么一款如此优秀的工具,对测试而言,是必须掌握的;

经常看到群里大家讨论jmeter的各种功能,我发现有些朋友过度使用了一些不必要的功能;

其实,jmeter常用的功能并不多,把主要的掌握,基本上就可以搞定90%的需求了,所以,不要把时间耗费在工具不常用的功能上,如果是做性能测试,分析定位调优才是重点

jmeter常用功能(性能方向)

从jmeter2.x版本用到现在的5.x,常用的功能也就下面列举的这些,我不详细单讲,因为网上很多介绍,我博客或者公众号,也有对应的实战应用:

测试计划

线程组

【Sampler】

HTTP请求:可以参考:测试必备:jmeter测试http协议接口的各种传参方式

BeanShell Sampler

Debug Sampler:只看到jmeter变量

如果是其它协议,比如java、dubbo、websocket、smtp、tcp、jdbc,添加对应的取样器等即可,如果没有,那么就需要我们自己开发,所以,java基础是必备的。

【逻辑控制器】

事务控制器

ForEach控制器

仅一次控制器

【前置处理器】

BeanShell PreProcessor

【后置处理器】

正则表达式提取器:关联的方式很多,我喜欢用万能的正则,另外,大家可以看之前写的:jmeter关联的5种方式

Debug PostProcessor:除了可以看到jmeter变量,还可以看到配置信息,最好放在正则表达式提取器后面,否则看不到提取的结果;

BeanShell PostProcessor

【断言】

响应断言

BeanShell断言

【定时器】

固定定时器

高斯随机定时器

Synchronizing Timer

【配置元件】

HTTP信息头管理器

HTTP Cookie管理器

CSV 数据文件设置

HTTP请求默认值

【监听器】

查看结果树

聚合报告

函数助手

常用的函数需要掌握,如随机函数等,举例:生成1-1000的随机数,可以通过${__Random(1,1000,key)}生成随机数,通过${key}可以获取这个随机数;

分布式压测

分布式压测也是需要掌握的,参考:jmeter5.1分布式压测

另外,beanshell相关的,可以参考:玩转jmeter:beanshell必备技能

jmeter执行顺序

配置元件 → 前置处理器 → 定时器 → 取样器 → 后置处理器 → 断言 → 监听器;

同一层级的,顺序执行;

jmeter最佳实践

最后,我们来看看官方的最佳实践,地址是:

http://jmeter.apache.org/usermanual/best-practices.html

大概意思是:

Jmeter压测减少资源使用的一些建议,即压测结果会更准确:

1、使用非GUI模式(也就是CLI,Command Line Interface,命令行界面):jmeter -n -t test.jmx -l result.jtl

2、少使用Listener, 如果使用-l参数,它们都可以被删除或禁用

3、在加载测试期间不要使用“查看结果树”或“用表格查看结果”监听器,只能在脚本阶段使用它们来调试脚本

4、包含控制器在这里没有帮助,因为它将文件中的所有测试元素添加到测试计划中

5、不要使用功能模式

6、使用CSV输出而不是XML

7、只保存你需要的数据

8、尽可能少地使用断言

9、如果测试需要大量数据,尤其是需要将其随机化,可以提前准备好测试数据放到数据文件中,从CSV数据集中读取, 这样可以避免在运行时浪费资源

如有不准之处,或者补充,请文末留言,谢谢。

<think>嗯,用户这次需要具体指导如何用JMeter测试习通登录接口,看来已经掌握了基础安装知识(从引用内容看用户关注过环境配置)。用户可能是个教育行业测试人员,或者正在自接口测试的生,着急想看到实际测试结果。翻看之前的引用资料,发现几个关键点需要串联:1)JMeter基础操作流程(引用2提到的测试计划-线程组-取样器链路);2)中文界面配置技巧(引用3和4重复提到的永久汉化方法);3)登录接口测试的特殊性(需要处理鉴权)。用户没提但可能需要补全的知识点:习通登录接口的文档在哪里找?测试数据怎么准备?准备分步解决:先快速搭建测试框架(测试计划+线程组+HTTP请求),重点突出登录接口特有的HTTP头配置(尤其是Content-Type和User-Agent容易被忽略),再强调检查点设置(登录必须验证登录成功或失败)。需要警告用户注意密码安全问题,建议先用测试账号。另外用户可能对JSON提取和Cookie传递不熟悉,得准备简单示例代码。突然想到习通可能有反爬机制,得提醒用户注意请求频率控制(引用2提到的定时器元件这里能用上)。最后补充性能测试可能性——如果用户后续想压测登录接口,得留好扩展空间。</think> 以下是根据习通登录接口特性整理的JMeter测试配置教程,重点包含接口参数设置和结果验证: ### 一、基础环境配置 1. **安装要求** - JDK 1.8+(建议JDK 11) - JMeter 5.4+([官网下载](https://jmeter.apache.org/)) - 中文配置:编辑`jmeter.properties`,添加`language=zh_CN`[^3][^4] 2. **永久汉化(Windows)** ```bash # 路径:apache-jmeter-5.4/bin/jmeter.properties 找到第37行,添加:language=zh_CN ``` ### 二、测试计划配置流程 1. **创建测试结构** ```mermaid graph TD A[测试计划] --> B[线程组] B --> C[HTTP信息头管理器] B --> D[HTTP请求] B --> E[响应断言] B --> F[查看结果树] ``` 2. **关键元件配置** - **HTTP信息头管理器** ```ini Content-Type: application/json User-Agent: Mozilla/5.0 ``` - **HTTP请求** | 参数 | 值 | |------------|-----------------------------| | 协议 | HTTPS | | 方法 | POST | | 服务器名称 | passport.chaoxing.com | | 路径 | /api/login | - **请求体(JSON格式)** ```json { "uname": "${username}", "password": "${encryptedPassword}" } ``` 3. **密码加密处理** 在HTTP请求前添加**JSR223前置处理器**: ```groovy import org.apache.commons.codec.digest.DigestUtils; vars.put("encryptedPassword", DigestUtils.md5Hex(vars.get("password"))); ``` ### 三、测试数据管理 1. **CSV数据文件设置** | 参数文件(userdata.csv) | |--------------------------| | test1,123456 | | test2,abcdef | ```ini 文件名: userdata.csv 变量名: username,password ``` ### 四、断言配置(验证登录成功) 1. **JSON路径断言** ```jsonpath $.status == true $.message == 登录成功 ``` ### 五、执行与调试 1. **启动测试** - 线程数:10(模拟10用户并发) - 循环次数:3 2. **结果验证** 在**查看结果树**中检查: - HTTP响应码应为200 - 响应体包含`"status":true` ### 六、完整脚本示例 ```java 测试计划 └── 线程组(线程数:10,循环次数:3) ├── CSV数据文件设置(userdata.csv) ├── JSR223前置处理器(密码MD5加密) // 见步骤3 ├── HTTP信息头管理器 ├── HTTP请求(POST /api/login) ├── JSON断言 // 见步骤4 └── 查看结果树 ``` **安全提示**:测试时使用测试账号,避免使用真实密码明文存储[^2][^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值