『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程

『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程

  • 1 JDK安装部署
    • 1.1 JDK下载
    • 1.2 JDK配置
  • 2 Jmeter安装部署
    • 2.1 Jmeter下载
    • 2.2 Jmeter安装
    • 2.3 Jmeter相关目录配置
    • 2.4 Jmeter启动配置
    • 2.5 检查并启动
  • 3 Jmeter汉化
    • 3.1 临时修改
    • 3.2 永久修改
  • 4 准备测试对象
    • 4.1 下载安装
    • 4.2 启动服务
    • 4.3 访问测试对象
    • 4.4 注意事项
    • 4.5 其他参数
    • 4.6 网页登录数据库
  • 5 测试数据
  • 6 测试目标
  • 7 脚本设计
    • 7.1 添加http信息头管理器
    • 7.2 添加http请求默认值
    • 7.3 添加线程组
    • 7.4 添加http请求
    • 7.5 添加查看结果树
    • 7.6 运行调试
  • 8 安装jmeter-plugins-manager插件
    • 8.1 jmeter-plugins-manager包配置
    • 8.2 下载PerfMon插件并应用
    • 8.3 添加PerfMon监听器
  • 9 服务端配置ServerAgent
    • 9. 1下载ServerAgent
    • 9.2配置ServerAgent
  • 10 Jmeter配置监控指标
  • 11 GUI方式运行
  • 12 非GUI运行
    • 12.1 安装jmeter-plugins-cmd插件
    • 12.2 命令行启动性能脚本
  • 13 报告查看
  • 14 命令行生成监控图片
  • 15 命令行生成csv文件

注意:
1、之前写过一个是windows平台的,本文是Linux平台的;
2、另外需要注意的是,本文仅为示例过程,所以将客户端和服务器都用在同一台机器上。一般情况下不建议这么做,会影响性能结果的准确性。

1 JDK安装部署

1.1 JDK下载

  • 安装地址:Java Downloads;
  • 先查看自己的系统配置:
noamanelson@noamanelson-Virtual-Machine:~$ uname -a
Linux noamanelson-Virtual-Machine 6.2.0-36-generic #37~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Oct  9 15:34:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
  • 我的是x86_64,选对应的包即可:

在这里插入图片描述

1.2 JDK配置

  • 将下载的包上传到服务器:
    在这里插入图片描述
  • 创建一个文件夹:
sudo mkdir /usr/local/java
  • 把压缩包放到以上目录进行解压:
    在这里插入图片描述
sudo tar -zxvf jdk-21_linux-x64_bin.tar.gz 
  • 解压后删除多余的其他安装包,解压后如下:
    在这里插入图片描述
  • 配置环境变量sudo vim /etc/profile,增加java解压后的路径即可:
export JAVA_HOME=/usr/local/java/jdk-21.0.1
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
  • 保存后,使配置文件生效(以下方法如果不行,建议重启电脑):
source /etc/profile
  • 使用java -version查看安装是否ok即可。

2 Jmeter安装部署

2.1 Jmeter下载

  • 下载地址:Jmeter官网;
  • 选择文件下载:
    在这里插入图片描述

2.2 Jmeter安装

  • 将下载的Jmeter上传到服务器:
    在这里插入图片描述
  • 创建Jmeter目录:
mkdir jmeter_test
  • 查看安装包的权限并赋予执行权限:
    在这里插入图片描述
chmod +755 apache-jmeter-5.6.2.tgz

在这里插入图片描述

  • 解压到当前目录下:
tar -zxvf apache-jmeter-5.6.2.tgz 

2.3 Jmeter相关目录配置

  • 解压后如下,即安装目录为:
# /home/noamanelson/jmeter_test/apache-jmeter-5.6.2

在这里插入图片描述

  • 创建脚本存放目录jmeter_scirpt:
# /home/noamanelson/jmeter_test/jmeter_scirpt
mkdir jmeter_scirpt
  • 创建报告存放目录jmeter_report
# /home/noamanelson/jmeter_test/jmeter_report
mkdir jmeter_report
  • 创建日志存放目录jmeter_log
# /home/noamanelson/jmeter_test/jmeter_log
mkdir jmeter_log
  • 创建结果存放目录jmeter_result
# /home/noamanelson/jmeter_test/jmeter_result
mkdir jmeter_result

2.4 Jmeter启动配置

  • 打开配置文件sudo vim /etc/profile,最后添加如下内容:
export JMETER_HOME=/home/noamanelson/jmeter_test/apache-jmeter-5.6.2
exportCLASSPATH=${JMETER_HOME}/lib/ext/ApacheJMeter_core.jar:${JMETER_HOME}/lib/jorphan.jar:${CLASSPATH}
export PATH=${JMETER_HOME}/bin:$PATH
  • 使得配置文件生效(以下方法如果不行,建议重启电脑):
source /etc/profile

2.5 检查并启动

  • 输入jmeter -v,如果出现以下内容,说明安装成功了:
noamanelson@noamanelson-Virtual-Machine:~$ jmeter -v
WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release
WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release
WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release
WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release_    ____   _    ____ _   _ _____       _ __  __ _____ _____ _____ ____/ \  |  _ \ / \  / ___| | | | ____|     | |  \/  | ____|_   _| ____|  _ \/ _ \ | |_) / _ \| |   | |_| |  _|    _  | | |\/| |  _|   | | |  _| | |_) |/ ___ \|  __/ ___ \ |___|  _  | |___  | |_| | |  | | |___  | | | |___|  _ <
/_/   \_\_| /_/   \_\____|_| |_|_____|  \___/|_|  |_|_____| |_| |_____|_| \_\ 5.6.2Copyright (c) 1999-2023 The Apache Software Foundation
  • 输入jmeter启动即可:
    在这里插入图片描述
    在这里插入图片描述

3 Jmeter汉化

3.1 临时修改

  • 即设置后只对本次使用有效,重启后恢复默认语言;
  • 选择Options—>Choose Language—>选择语言(例如:Chinese(Simplified)简体中文)设置成功。重启Jmeter又会恢复英文;
    在这里插入图片描述

3.2 永久修改

  • 即永久性设置,设置后每次打开显示的语言都是一样的;
  • 进入到Jmeterbin目录下,找到jmeter.properties文档;
  • 打开查找language,找到language=en的行如下图,将en改为zh_CN,并且去掉前面的#号,保存退出;
vim jmeter.properties 

在这里插入图片描述

  • 重启jmeter,语言设置成功。
    在这里插入图片描述

4 准备测试对象

4.1 下载安装

  • 禅道官网找到Linux一键安装包:
    在这里插入图片描述
  • 点击下载后,使用xftp上传到ubuntu上;
  • 把上传到ubuntu上的禅道安装包复制到/opt目录下:
sudo cp ZenTaoPMS-18.8-zbox_amd64.tar.gz /opt/
  • 将安装包直接解压到/opt目录下:
sudo tar -zxvf ZenTaoPMS-18.8-zbox_amd64.tar.gz 

在这里插入图片描述

4.2 启动服务

  • 禅道服务包括ApacheMysql,启动命令如下;
  • 启动所有服务:/opt/zbox/zbox start
    在这里插入图片描述
  • 停止所有服务:/opt/zbox/zbox stop
  • 重启所有服务:/opt/zbox/zbox restart
  • 开机自动启动:以把 /opt/zbox/zbox restart 加到操作系统的自启目录。

4.3 访问测试对象

  • 禅道安装完并启动服务后,直接浏览器输入:
http://禅道服务器ip:apache端口。

特别注意:这里需要开放几个端口:
在这里插入图片描述
1、sudo ufw status查看开放的端口:
在这里插入图片描述
2、开放需要的端口:sudo ufw allow 端口
在这里插入图片描述
这里是引用

4.4 注意事项

  • 如果网页无法访问,请先关闭禅道所在电脑的防火墙和selinux再刷新网页访问试一下;
  • 使用云服务器请注意在安全组中开放apache使用端口;
  • 禅道默认管理员帐号是 admin,密码 123456;
  • 初次登陆请修改密码:
    在这里插入图片描述

4.5 其他参数

  • 如果不加任何参数执行 /opt/zbox/zbox 会打印输出命令可用参数:
  • Usage: ./zbox {start|stop|status} [--aport=8080] [--mport=3307]

–aport参数 可以修改Apache的端口
–mport参数 可以修改Mysql的端口

4.6 网页登录数据库

  • 禅道数据库管理用的是adminer,但是为了安全,访问adminer的时候需要身份验证,需要运行 sudo /opt/zbox/auth/adduser.sh来添加用户,如下命令:
# 进入脚本目录
cd /opt/zbox/auth# 执行添加用户的脚本
bash adduser.sh
This tool is used to add user to access adminer
Account: admin  # 输入用户名
Password:       # 输入密码
Adding password for user admin 
  • 打开浏览器,输入 http://禅道服务的ip:apache端口 点击“数据库管理”:
    在这里插入图片描述
  • 输入用户名和密码:
    在这里插入图片描述
  • 网页直接显示登录界面:
    在这里插入图片描述

1、系 统:默认选择MySQL。
2、服务器:127.0.0.1:MySQL端口
(MySQL端口启用的是3306,那么就填写127.0.0.1:3306。
注意:ip只能写127.0.0.1)
3、用户名:root(禅道默认的数据库用户名是root) 密 码:123456(禅道默认的数据库密码是123456) 数据库:zentao。

5 测试数据

  • 将以下数据中的地址、用户名等参数改为自己的即可:
# 请求地址:
http://172.26.132.77:80/zentao/api.php/v1/tokens# 请求方式:
POST# 请求参数:
{"account": "admin", "password": "123456"}

6 测试目标

  • 使用登陆接口,对登陆接口进行压测;
  • 并发20,持续时间为5分钟。

7 脚本设计

7.1 添加http信息头管理器

  • 测试计划-右键-添加-配置元件-HTTP信息头管理器,如下:
    在这里插入图片描述
    在这里插入图片描述

7.2 添加http请求默认值

  • 测试计划-右键-添加-配置元件-HTTP请求默认值,如下:
    在这里插入图片描述
    在这里插入图片描述

7.3 添加线程组

  • 测试计划-右键-添加-线程(用户)-线程组,如下:
    在这里插入图片描述
    在这里插入图片描述

7.4 添加http请求

  • 线程组-右键-添加-取样器-http请求,如下:
    在这里插入图片描述
    在这里插入图片描述

7.5 添加查看结果树

  • 测试计划-右键-添加-监听器-查看结果树,如下:
    在这里插入图片描述

7.6 运行调试

  • 点击运行按钮,查看返回数据是否ok,如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

8 安装jmeter-plugins-manager插件

8.1 jmeter-plugins-manager包配置

  • 可以通过在jmeter客户端集成jmeter-plugins-manager插件,在服务端部署插件serverAgent来实时监控被压测服务器的性能;
  • 下载插件管理包:
    在这里插入图片描述
  • 放置到jmeter的安装目录lib\ext下:
    在这里插入图片描述

8.2 下载PerfMon插件并应用

  • 重启Jmeter,点击选项-插件管理器:
    在这里插入图片描述
  • PerfMon(Servers Performance Monitoring)选项,点击右下角的Apply Changes and Restart JMeter按钮应用:
    在这里插入图片描述
  • 安装完后如下:
    在这里插入图片描述

8.3 添加PerfMon监听器

  • 测试计划-右键-添加-监听器-jp@gc-PerfMon Metrics Collector,如下:
    在这里插入图片描述

9 服务端配置ServerAgent

9. 1下载ServerAgent

  • 下载ServerAgent-2.2.3.zip,下载官网地址;
    在这里插入图片描述

9.2配置ServerAgent

  • 下载后上传到linux上,并解压:
sudo unzip ServerAgent-2.2.3.zi
  • 进入到解压目录ServerAgent-2.2.3下,直接运行./startAgent.sh 启动;
    在这里插入图片描述

特别注意:
1、默认启动端口为4444;
2、也可以使用命令指定端口启动(例如将指定TCP为5678,UDP指定为6789):./startAgent.sh --tcp-port 5678--udp-port 6789--sysinfo
3、建议将此脚本写成shell脚本,授权chmod -R 777 XXX 之后下次直接启动脚本程序。
4、如果提示无法连接到4444端口,需要开放4444端口:sudo ufw allow 4444

10 Jmeter配置监控指标

  • jp@gc-PerfMon Metrics Collector上进行指标选择;
  • 点击AddRow,然后在host的地方添加需要监控的服务器的主机域名或者IP,port填写端口,Metric to collect下拉选择监控的指标(CPU、Memory、Swap、Disks I/O、Network I/O等):
    在这里插入图片描述

11 GUI方式运行

  • 直接运行脚本即可:
    在这里插入图片描述

12 非GUI运行

  • 性能测试时建议使用这种方式可以提升性能;
  • 这种方法运行时将监控数据输出到指定文件,文件必修是.jtl结尾;

12.1 安装jmeter-plugins-cmd插件

  • 在插件管理器中勾选如图即可:
    在这里插入图片描述

12.2 命令行启动性能脚本

  • 我们之前已经创建了脚本、报告等的存放路径:
    在这里插入图片描述
# /home/noamanelson/jmeter_test/jmeter_scirpt  # 脚本路径
# /home/noamanelson/jmeter_test/jmeter_report  # 报告路径
# /home/noamanelson/jmeter_test/jmeter_log     # 日志路径
# /home/noamanelson/jmeter_test/jmeter_result  # 结果路径
  • 命令行执行脚本命令为:
jmeter -n -t 脚本路径 -l jtl数据文件路径 -e -o 测试报告存放路径
  • 创建示例:
jmeter -n -t \
./jmeter_scirpt/test_login.jmx -l \
./jmeter_result/test_login.jtl -e -o \
./jmeter_report/
Creating summariser <summary>
Created the tree successfully using ./jmeter_scirpt/test_login.jmx
Starting standalone test @ 2023 Nov 30 16:15:44 CST (1701332144880)
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary +   1133 in 00:00:15 =   76.4/s Avg:   247 Min:    62 Max:  3045 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0
summary +   2442 in 00:00:30 =   81.7/s Avg:   245 Min:   108 Max:  1383 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0
summary =   3575 in 00:00:45 =   80.0/s Avg:   245 Min:    62 Max:  3045 Err:     0 (0.00%)
summary +   2585 in 00:00:30 =   86.2/s Avg:   231 Min:   117 Max:   616 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0
summary =   6160 in 00:01:15 =   82.4/s Avg:   240 Min:    62 Max:  3045 Err:     0 (0.00%)
summary +   2509 in 00:00:30 =   83.6/s Avg:   238 Min:    97 Max:  1172 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0
summary =   8669 in 00:01:45 =   82.8/s Avg:   239 Min:    62 Max:  3045 Err:     0 (0.00%)
summary +   2644 in 00:00:30 =   88.0/s Avg:   227 Min:    92 Max:   826 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0
summary =  11313 in 00:02:15 =   84.0/s Avg:   236 Min:    62 Max:  3045 Err:     0 (0.00%)
summary +   2606 in 00:00:30 =   87.0/s Avg:   229 Min:   101 Max:   985 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0
summary =  13919 in 00:02:45 =   84.5/s Avg:   235 Min:    62 Max:  3045 Err:     0 (0.00%)
summary +   2656 in 00:00:30 =   88.5/s Avg:   226 Min:   110 Max:  1042 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0
summary =  16575 in 00:03:15 =   85.1/s Avg:   233 Min:    62 Max:  3045 Err:     0 (0.00%)
summary +   2656 in 00:00:30 =   88.5/s Avg:   225 Min:   113 Max:  1199 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0
summary =  19231 in 00:03:45 =   85.6/s Avg:   232 Min:    62 Max:  3045 Err:     0 (0.00%)
summary +   2724 in 00:00:30 =   90.8/s Avg:   220 Min:   108 Max:  1299 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0
summary =  21955 in 00:04:15 =   86.2/s Avg:   231 Min:    62 Max:  3045 Err:     0 (0.00%)
summary +   2676 in 00:00:30 =   89.2/s Avg:   223 Min:    88 Max:  1357 Err:     0 (0.00%) Active: 20 Started: 20 Finished: 0
summary =  24631 in 00:04:45 =   86.5/s Avg:   230 Min:    62 Max:  3045 Err:     0 (0.00%)
summary +   1407 in 00:00:16 =   90.6/s Avg:   221 Min:   127 Max:  1441 Err:     0 (0.00%) Active: 0 Started: 20 Finished: 20
summary =  26038 in 00:05:00 =   86.7/s Avg:   230 Min:    62 Max:  3045 Err:     0 (0.00%)
Tidying up ...    @ 2023 Nov 30 16:20:45 CST (1701332445534)
... end of run

13 报告查看

  • 打开报告存放路径,比如:
/home/noamanelson/jmeter_test/jmeter_report

在这里插入图片描述
在这里插入图片描述

14 命令行生成监控图片

  • 新建存放图片的路径,比如mkdir jmeter_picture:
/home/noamanelson/jmeter_test/jmeter_picture
  • 命令行先执行JMeterPluginsCMD.sh,看下这个命令有没有问题:
$ JMeterPluginsCMD.sh 
Error: Unable to access jarfile /home/noamanelson/jmeter_test/apache-jmeter-5.6.2/bin/../lib/cmdrunner-2.2.jar
  • 发现这个文件找不到,我们看下图片中的/home/noamanelson/jmeter_test/apache-jmeter-5.6.2/bin/../lib/cmdrunner-2.2.jar中的文件是否存在:
/home/noamanelson/jmeter_test/apache-jmeter-5.6.2/lib
  • 结果发现是cmdrunner-2.3.jar而不是cmdrunner-2.2.jar,则需要修改JMeterPluginsCMD.sh文件;
    在这里插入图片描述
  • JMeterPluginsCMD.sh文件在/home/noamanelson/jmeter_test/apache-jmeter-5.6.2/bin目录下:
    在这里插入图片描述
  • 修改为cmdrunner-2.3.jar
    在这里插入图片描述
  • 完整的执行命令如下:
JMeterPluginsCMD.sh --generate-png 存放图片的路径 --input-jtl jtl数据文件路径 --plugin-type PerfMon --width 图片宽度 --height 图片高度
  • 示例如下:
JMeterPluginsCMD.sh \
--generate-png ./jmeter_picture/test_login.png \
--input-jtl ./jmeter_result/test_login.jtl \
--plugin-type PerfMon --width 800 --height 600

在这里插入图片描述

15 命令行生成csv文件

  • 创建csv文件存放路径,比如/home/noamanelson/jmeter_test/jmeter_csv :
mkdir jmeter_csv
  • 执行的命令为:
JMeterPluginsCMD.sh --tool Reporter --generate-csv 存放csv路径 --input-jtl 存放jtl数据文件路径 --plugin-type PerfMon
  • 示例如下:
JMeterPluginsCMD.sh \
--tool Reporter \
--generate-csv ./jmeter_csv/test_login.csv \
--input-jtl ./jmeter_result/test_login.jtl \
--plugin-type PerfMon
  • 生成后如下:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/212179.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快照读通过MVCC解决不可重复读当前读通过间隙锁解决幻读

简介 Multi-Version Concurrency Control 多版本并发控制&#xff0c;MVCC 是一种并发控制的方法&#xff0c;一般在数据库管理系统中&#xff0c;实现对数据库的并发访问&#xff1b;在编程语言中实现事务内存。 *往期知识不做重点 事务具有4个特征,分别是原子性、一致性、隔…

毕设:《基于hive的音乐数据分析系统的设计与实现》

文章目录 环境启动一、爬取数据1.1、歌单信息1.2、每首歌前20条评论1.3、排行榜 二、搭建环境1.1、搭建JAVA1.2、配置hadoop1.3、配置Hadoop环境&#xff1a;YARN1.4、MYSQL1.5、HIVE(数据仓库)1.6、Sqoop&#xff08;关系数据库数据迁移&#xff09; 三、hadoop配置内存四、导…

用 PHP和html做一个简单的注册页面

用 PHP和html做一个简单的注册页面 index.html的设计 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title…

【Proteus】绘制简单的电路图

参考书籍&#xff1a;微机原理与接口技术——基于8086和Proteus仿真&#xff08;第3版&#xff09;&#xff08;作者&#xff1a;顾晖等&#xff09;&#xff0c;p111 1.放置元件 以8086为例&#xff1a; 确保处于元件模式&#xff0c;点击对应的按钮&#xff1a; 在元件库中…

【离散数学】——期末刷题题库(等价关系与划分)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

邮政单号查询,邮政快递物流查询,并进行提前签收分析

批量查询邮政快递单号的物流信息&#xff0c;并将提前签收件分析筛选出来。 所需工具&#xff1a; 一个【快递批量查询高手】软件 邮政快递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;第一次使用的朋友记得先注册&#xff0c…

JAVA全栈开发 MySql详解

一、数据库 1.数据储存在哪里&#xff1f; 硬盘、网盘、U盘、光盘、内存&#xff08;临时存储&#xff09; 数据持久化 使用文件来进行存储&#xff0c;数据库也是一种文件&#xff0c;像excel &#xff0c;xml 这些都可以进行数据的存储&#xff0c;但大量数据操作&#x…

商家门店小程序怎么做?门店小程序的优势和好处

生活服务类商家在当前数字化时代&#xff0c;越来越认识到门店小程序的重要性。门店小程序不仅为商家提供了一个在线展示的窗口&#xff0c;更为其打造了一个与消费者直接互动的平台。有了门店小程序&#xff0c;商家可以更加便捷地管理商品信息、订单流程&#xff0c;同时还能…

网络机房的功能有哪些?

网络机房的功能主要包括&#xff1a; 信息存储和管理&#xff1a;机房作为信息系统的核心&#xff0c;需要提供可靠的存储和管理能力&#xff0c;包括服务器、存储设备、备份系统等硬件设备&#xff0c;以及数据备份、数据迁移、容灾等管理方法和技术。网络连接和通信&#xf…

北京市经信局局长姜广智带队调研三六零 强调大模型应与行业结合

12月6日&#xff0c;北京市经济和信息化局局长姜广智、副局长王磊带队走访调研三六零集团&#xff0c;就共促城市级数字安全基础设施项目落地&#xff0c;打造引领行业发展标杆项目&#xff0c;推动大模型落地应用赋能产业、行业发展等话题进行交流。360集团创始人周鸿祎接待来…

【数据结构】二叉树---C语言版

二叉树 一、树的概念及结构1.树的概念2.树的相关概念3.树的表示4.树在实际中的应用 二、二叉树的概念及结构1.二叉树的概念2.满二叉树3.完全二叉树4.二叉树的性质5.二叉树的储存结构 三、二叉树的遍历1.前序遍历2.中序遍历3.后序遍历4.层序遍历 四、手撕二叉树&#xff08;务必…

Linux-代码实现通过system v共享内存实现的进程间的通信

一.makefile编写 .PHONY:all all:processa processbprocessa : processa.ccg -o $ $^ -g -stdc11 processb : processb.ccg -o $ $^ -g -stdc11.PHONY:clean clean:rm -rf processa processb 二.创建system v共享内存 1.系统调用接口 key&#xff1a;a.key是一个数值…

【Java系列】函数式接口编程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

数据结构之栈

作者简介&#xff1a; zoro-1&#xff0c;目前大二&#xff0c;正在学习Java&#xff0c;数据结构等 作者主页&#xff1a; zoro-1的主页 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f496; 数据结构之栈 概念特性常用方法栈模拟实现接口实现…

OSHI-操作系统和硬件信息库

文章目录 引言一、快速入门1.1 OSHI的简介1.2 引入依赖1.3 涉及的包&#xff08;package&#xff09;1.4 涉及的核心类 二、操作系统信息&#xff1a;OperatingSystem2.1 总揽2.2 文件系统信息&#xff1a;FileSystem2.3 网络参数信息&#xff1a;NetworkParams2.4 进程信息&am…

C++ 函数详解

目录 函数概述 函数的分类 函数的参数 函数的调用 函数的嵌套调用 函数的链式访问 函数声明和定义 函数递归 函数概述 函数——具有某种功能的代码块。 一个程序中我们经常会用到某种功能&#xff0c;如两数相加&#xff0c;如果每次都在需要用到时实现&#xff0c;那…

状态机的练习:按键控制led灯

设计思路&#xff1a; 三个按键控制led输出。 三个按键经过滤波(消抖)&#xff0c;产生三个按键标志信号。 三个led数据的产生模块&#xff08;流水&#xff0c;跑马&#xff0c;闪烁模块&#xff09;&#xff0c;分别产生led信号。 这六路信号&#xff08;三路按键信号&am…

LAMP部署

一.什么是LAMP&#xff1f; LAMP架构是企业网站应用模式之一&#xff0c;包括linux系统&#xff0c;apache网站服务&#xff0c;mysql数据库服务器&#xff0c;php&#xff08;python&#xff09;网页编程语言。 linux&#xff08;平台&#xff09;&#xff1a;作为LAMP架构的…

西南科技大学模拟电子技术实验六(BJT电压串联负反馈放大电路)预习报告

一、计算/设计过程 BJT电压串联负反馈放大电路图1-1-1-1为BJT电压串联负反馈放大实验电路,若需稳定输出电压,减小从信号源所取电流,可引入电压串联负反馈闭合开关。 图1-1-1-1 理论算法公式(1)闭环电压放大倍数 (2)反馈系数 (3)输入电阻 (4)输出电阻 计算过程。开环…

Redis常见类型

常用类型String字符串类型Hash字典类型List列表类型Set集合类型ZSet有序集合类型 Java程序操作Redis类型代码操作Redis 常用类型 String字符串类型 使用方式&#xff1a; 使用场景&#xff1a; Hash字典类型 字典类型(Hash) 又被成为散列类型或者是哈希表类型&#xff0…