性能测试阶段7之实战1——http协议
01 数据准备
1.1 安装jdk
参考链接:https://www.runoob.com/java/java-environment-setup.html
1.2 安装mysql
参考链接:https://blog.csdn.net/weixin_43605266/article/details/110477391
1.3 插入数据表
02 安装java和jmeter并配置环境变量(centos7环境)
- jdk1.8下载链接:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downlo
- jmeter下载链接:https://jmeter.apache.org/download_jmeter.cgi
- 安装参考此篇:https://www.jb51.net/article/143296.htm
03 maven配置
3.1 下载maven
下载链接:https://maven.apache.org/download.cgi
3.2 解压并配置maven环境变量
3.3 修改下载插件镜像源
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
04 启动项目
4.1 命令行方式
- mvn clean install
- mvn tomcat7:run
4.2 idea maven视图面板
- 选中clean 和 install 配置文件,点击运行
- 双击tomcat7:run 组件
05 influxdb和grafana配置和启动
5.1 influxdb和grafana配置
5.2 启动influxdb和grafana
- 连接服务器
- 启动docker:systemctl restart docker
- 查看容器: docker ps -a
- 启动influxdb容器:docker restart 容器id
- 启动grafana容器:docker restart 容器id
06 编写&执行压测脚本
6.1 安装插件
- 插件地址:https://jmeter-plugins.org/install/Install/
- 把插件放到xxxx/apache-jmeter-5.5/lib/ext/目录下
- 安装所需插件
6.2 编写压测脚本
6.2.1 设置线程数和持续时间
6.2.2添加配置元件
- 用户定义变量参数(url、port)
- csv参数
- 信息头管理器
6.2.3添加采样器
6.2.4添加监听器
6.2.5 配置backkend listener
6.3 自动化压测脚本
#!/usr/bin/env bash
cd /home/centos7/Desktop/jmeter_scripts/ec_pressure
# 压测脚本模板中设定的压测时间应为60秒
export jmx_template="emenu"
export suffix=".jmx"
export jmx_template_filename="${jmx_template}${suffix}"
export os_type=`uname`
# 需要在系统变量中定义jmeter根目录的位置,如下
# export jmeter_path="/your jmeter path/"
echo "xxx系统/接口 自动化压测全部开始"
# 压测并发数列表
thread_number_array=(10 20 50 100 200)
for num in "${thread_number_array[@]}"
do
export jmx_filename="${jmx_template}_${num}${suffix}"
export jtl_filename="test_${num}.jtl"
export web_report_path_name="web_${num}"
rm -f ${jmx_filename} ${jtl_filename}
rm -rf ${web_report_path_name}
cp ${jmx_template_filename} ${jmx_filename}
echo "生成jmx压测脚本 ${jmx_filename}"
if [[ "${os_type}" == "Darwin" ]]; then
sed -i "" "s/thread_num/${num}/g" ${jmx_filename}
else
sed -i "s/thread_num/${num}/g" ${jmx_filename}
fi
# JMeter 静默压测
${JMETER_HOME}/bin/jmeter -n -t ${jmx_filename} -l ${jtl_filename}
# 生成Web压测报告
${JMETER_HOME}/bin/jmeter -g ${jtl_filename} -e -o ${web_report_path_name}
done
echo "xxx系统/接口 自动化压测全部结束"
6.4 执行压测
sh /home/centos7/Desktop/jmeter_scripts/ec_pressure/auto_stress_emenu_2.sh
07 报告输出