CentOS系统基础配置
sudo yum install java-1.8.0-openjdk-devel -y java -version # 验证安装(需显示1.8及以上版本)
wget https://dlcdn.apache.org/jmeter/binaries/apache-jmeter-5.6.3.tgz # 替换为最新版本 tar -xzf apache-jmeter-5.6.3.tgz sudo mv apache-jmeter-5.6.3 /opt/jmeter # 移动至无中文路径
~/.bashrc
,添加:export JMETER_HOME=/opt/jmeter export PATH=$JMETER_HOME/bin:$PATH source ~/.bashrc # 生效配置
移动设备准备
设置→关于手机→多次点击版本号
→开启开发者选项→设置→开发者选项→开启USB调试
;iOS:设置→隐私与安全性→开启开发者模式
)。代理工具配置(可选但常用)
配置JMeter代理服务器
/opt/jmeter/bin/jmeter.sh
),右键工作台→添加→非测试元件→HTTP代理服务器
。8888
(可自定义,需与移动设备代理设置一致);线程组→录制控制器
(用于存储录制的请求);启动
,点击启动
按钮启动代理。移动设备代理设置
设置→WLAN→长按当前WiFi→修改网络→显示高级选项
,将代理改为手动
,输入CentOS服务器的IP地址(ifconfig
查看)和代理端口(如8888
)。设置→WLAN→选中当前WiFi→配置代理→手动
,输入服务器IP和端口。安装代理证书(HTTPS请求必需)
chls.pro/ssl
(Charles)或jmeter-proxy-cert.pem
(JMeter内置证书),下载并安装证书。设置→安全→加密与凭据→从存储设备安装
,选择下载的证书;设置→通用→描述文件与设备管理→信任证书
。录制操作
/api/login
、/api/data
)。参数化动态数据
CSV Data Set Config
组件:创建users.csv
文件(包含username,password
字段),在JMeter中添加CSV Data Set Config
,设置Filename
为users.csv
,Variable Names
为username,password
,实现多用户数据循环读取。${__Random(1000,9999)}
生成随机数,${__time()}
生成时间戳。关联处理
token
、session_id
),通过正则表达式提取器
或JSON提取器
获取,后续请求通过${token}
引用。后置处理器
中添加JSON提取器
,设置Names of created variables
为token
,JSON Path expression
为$.data.token
,后续请求的Header
中添加X-Token: ${token}
。逻辑控制
仅一次控制器
(Once Only Controller)包裹登录请求,避免重复登录;循环控制器
(Loop Controller)包裹核心业务请求(如浏览商品),设置循环次数(如${__Random(1,5)}
)。配置线程组
测试计划→添加→Threads(Users)→线程组
,设置: 100
);10
秒,表示10秒内启动100个用户);永远
(持续负载)或指定次数(如10
次)。添加监听器
聚合报告
(查看响应时间、TPS、错误率)、图形结果
(直观展示趋势);查看结果树
(调试阶段使用,正式测试建议关闭以避免内存溢出)、聚合报告
(保存为.jtl
文件,用于后续分析)。分布式测试(可选)
jmeter.properties
,添加remote_hosts=slave1_ip:1099,slave2_ip:1099
;jmeter-server
(/opt/jmeter/bin/jmeter-server
);jmeter -n -t test.jmx -l result.jtl -r
(-r
表示启动所有远程从机)。网络环境模拟
设置→开发者模式→Network Link Conditioner
、Android开发者选项→网络模拟
)模拟3G/4G/Wi-Fi;tc
命令模拟网络延迟(如tc qdisc add dev eth0 root netem delay 100ms
表示添加100ms延迟)。生成HTML报告
jmeter -n -t test.jmx -l result.jtl -e -o /tmp/ResultReport
,生成包含图表(响应时间、错误率、TPS)的HTML报告,通过浏览器查看。性能瓶颈定位
top
、vmstat
命令查看CPU、内存、磁盘IO),或应用日志(如Spring Boot的logs/application.log
),分析响应时间过长的原因(如数据库慢查询、线程池不足)。调优建议
server.xml
中maxThreads
参数)、优化JVM堆内存(-Xms
、-Xmx
参数);通过以上流程,可在CentOS环境下使用JMeter完成移动端应用的性能、功能测试,覆盖从脚本录制到结果分析的全生命周期。需注意移动端的网络环境、设备多样性及协议支持(如WebSocket需安装插件),确保测试结果的准确性。