尝试使用jmeter-maven-plugin

news2024/11/17 11:25:06
前提准备

1、maven项目

2、已安装JMeter、Jenkins、maven、jdk

环境要求:

jmeter>5.6.2

maven >3.9

jdk>1.8

Jenkins ?

备注:jmeter-maven-plugin 无需下载,可查阅相关地址:GitHub - jmeter-maven-plugin/jmeter-maven-plugin: The JMeter Maven Plugin

创建maven项目

打开ij编辑器,File-->New-->Project,选择Maven,点击next,输入Groupid跟ArtifactId(这个目前随便填就好)

添加jmeter相关文件

1、在maven项目,如果是模块项目的话,可以找一个模块即可,如api模块,在${project.base.directory}/src/test/创建文件夹录jmeter跟resources。(如果只有一个模块,同理)

jmeter文件夹内容存放来源:jmeter安装目录下bin文件下的配置文档+jmeter脚本(需要用来执行的jmeter脚本)

resource目录内容存文档来源:jmeter安装目录下extras文件

resources文件夹需要修改文件类型,在resources文件夹右键-Mark Directory as-test resources Root,如下

修改项目的pom

整个pom.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>Grit</groupId>
    <artifactId>GritJmeter</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!--此路径用于存储JMeter的原生测试结果文件,比如csv或者jtl-->
        <jmeter.result.jtl.dir>${project.build.directory}\jmeter\results</jmeter.result.jtl.dir>
        <!--此路径用于存储由模板转换过来的详细的测试结果的html文件-->
        <jmeter.result.html.dir>${project.build.directory}\jmeter\html_detail_report</jmeter.result.html.dir>
        <!--此路径用于存储由模板转换过来的测试结果的html文件-->
        <jmeter.result.html.dir1>${project.build.directory}\jmeter\html_report</jmeter.result.html.dir1>
        <ReportName>TestReport</ReportName>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_core</artifactId>
            <version>5.4.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_java</artifactId>
            <version>5.4.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>jorphan</artifactId>
            <version>5.4.3</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>3.6.0</version>
                <configuration>
                    <!--指定jmeter版本号-->
                    <jmeterVersion>5.4.3</jmeterVersion>

                    <!-- JVM 设置-->
                    <jMeterProcessJVMSettings>
                        <xms>2048</xms>
                        <xmx>2048</xmx>
                    </jMeterProcessJVMSettings>
                    <!--JMeter能够创建.jtl(XML格式)测试结果和csv测试结果。 默认情况下,此插件使用csv格式。这里需要将其切换为xml格式。-->
                    <resultsFileFormat>xml</resultsFileFormat>
                    <!--这里是否生成result report需要设置为false,否则运行时会出现“前言中不允许有内容”的报错。
                    因为若该项为true,无论你在.properties配置文件或者此pom文件中将结果文件的格式显示设置为xml,最后都只会生成csv的结果文件。
                    而csv的格式无法转换成我们最后要的html结果文件,就会报上述的错。-->
                    <generateReports>true</generateReports>
                    <!--忽略失败-->
                    <ignoreResultFailures>true</ignoreResultFailures>
                    <!--报告文件尾部输出时间戳 -->
                    <appendResultsTimestamp>true</appendResultsTimestamp>
                    <!--指定日志级别-->
                    <overrideRootLogLevel>error</overrideRootLogLevel>
                    <!-- 将任何其他 Java 库添加到 JMeter 的 lib/ext 目录-->
                    <jmeterExtensions>
                        <artifact>kg.apc:jmeter-plugins-standard:1.4.0</artifact>
                        <artifact>kg.apc:jmeter-plugins-extras:1.4.0</artifact>
                        <artifact>kg.apc:jmeter-plugins-perfmon:2.1</artifact>
                        <artifact>kg.apc:jmeter-plugins-manager:1.7</artifact>
                    </jmeterExtensions>
                    <junitLibraries>
                        <!--                        <artifact>com.lazerycode.junit:junit-test:1.0.0</artifact>-->
                    </junitLibraries>
                    <!-- 指定测试用例的路径-->
                    <testFilesDirectory>src\test\jmeter\</testFilesDirectory>
                </configuration>
                <executions>
                    <!-- Generate JMeter configuration -->
                    <execution>
                        <id>configuration</id>
                        <goals>
                            <goal>configure</goal>
                        </goals>
                    </execution>
                    <!-- Run JMeter tests -->
                    <execution>
                        <id>jmeter-tests</id>
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                    </execution>
                    <!-- Fail build on errors in test -->
                    <execution>
                        <id>jmeter-check-results</id>
                        <goals>
                            <goal>results</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>
</project>





properties 字段后的所有内容都是本次添加的jmter相关的配置信息,后续可做复制使用。另外,拿到这个配置内容,一般只需要修改以下内容就好

<!-- 指定测试用例的路径-->
                    <testFilesDirectory>src\test\jmeter\</testFilesDirectory>

执行
通过控制台命令执行

mvn clean verify

通过编辑器操作

通过编辑器中的LifeCycle中的操作来执行。

非首次则需要执行clean,再执行verify(首次则直接执行verify即可)

执行时控制台日志:

D:\Software\java\jdk1.8.0_181\bin\java.exe "-Dmaven.multiModuleProjectDirectory=D:\Program Files\GitData\GritJmeter" -Dmaven.home=D:\Software\apache-maven-3.9.1 -Dclassworlds.conf=D:\Software\apache-maven-3.9.1\bin\m2.conf -javaagent:D:\Software\ideaIU-2018.3.6.win\lib\idea_rt.jar=17454:D:\Software\ideaIU-2018.3.6.win\bin -Dfile.encoding=UTF-8 -classpath D:\Software\apache-maven-3.9.1\boot\plexus-classworlds-2.6.0.jar;D:\Software\apache-maven-3.9.1\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version=2018.3.6 verify
[INFO] Scanning for projects...
[INFO] 
[INFO] --------------------------< Grit:GritJmeter >---------------------------
[INFO] Building GritJmeter 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- resources:3.3.0:resources (default-resources) @ GritJmeter ---
[INFO] Copying 0 resource
[INFO] 
[INFO] --- compiler:3.10.1:compile (default-compile) @ GritJmeter ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- jmeter:3.6.0:configure (configuration) @ GritJmeter ---
[INFO]  
[INFO] -------------------------------------------------------
[INFO] C O N F I G U R I N G    J M E T E R
[INFO] -------------------------------------------------------
[INFO]  
[INFO] Creating test configuration for execution ID: configuration
[INFO] Building JMeter directory structure...
[INFO] Generating JSON Test config...
[INFO] Configuring JMeter artifacts...
[INFO] Populating JMeter directory...
[INFO] Copying extensions to D:\Program Files\GitData\GritJmeter\target\39016a4e-390a-4b18-8df3-fb914d5aa91f\jmeter\lib\ext 
Downloading dependencies: true
[INFO] Copying junit libraries to D:\Program Files\GitData\GritJmeter\target\39016a4e-390a-4b18-8df3-fb914d5aa91f\jmeter\lib\junit 
Downloading dependencies: true
[INFO] Copying test plan libraries to D:\Program Files\GitData\GritJmeter\target\39016a4e-390a-4b18-8df3-fb914d5aa91f\jmeter\lib 
Downloading dependencies: true
[INFO] Configuring JMeter properties...
[INFO] 
[INFO] --- resources:3.3.0:testResources (default-testResources) @ GritJmeter ---
[INFO] Copying 6 resources
[INFO] 
[INFO] --- compiler:3.10.1:testCompile (default-testCompile) @ GritJmeter ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- surefire:3.0.0:test (default-test) @ GritJmeter ---
[INFO] 
[INFO] --- jar:3.3.0:jar (default-jar) @ GritJmeter ---
[INFO] Building jar: D:\Program Files\GitData\GritJmeter\target\GritJmeter-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- jmeter:3.6.0:jmeter (jmeter-tests) @ GritJmeter ---
[INFO]  
[INFO] -------------------------------------------------------
[INFO]  P E R F O R M A N C E    T E S T S
[INFO] -------------------------------------------------------
[INFO]  
[INFO] Will generate HTML report in D:\Program Files\GitData\GritJmeter\target\jmeter\reports\cont
[INFO] Executing test: cont.jmx
[INFO] Arguments for forked JMeter JVM: [java, -Xms2048M, -Xmx2048M, -Djava.awt.headless=true, -jar, ApacheJMeter-5.4.3.jar, -d, D:\Program Files\GitData\GritJmeter\target\39016a4e-390a-4b18-8df3-fb914d5aa91f\jmeter, -e, -j, D:\Program Files\GitData\GritJmeter\target\jmeter\logs\cont.jmx.log, -l, D:\Program Files\GitData\GritJmeter\target\jmeter\results\cont-20231017.csv, -n, -o, D:\Program Files\GitData\GritJmeter\target\jmeter\reports\cont, -t, D:\Program Files\GitData\GritJmeter\target\jmeter\testFiles\cont.jmx, -L, ERROR, -Dsun.net.http.allowRestrictedHeaders, true]
[INFO]  
[INFO] SLF4J: Class path contains multiple SLF4J bindings.
[INFO] SLF4J: Found binding in [jar:file:/D:/Program%20Files/GitData/GritJmeter/target/39016a4e-390a-4b18-8df3-fb914d5aa91f/jmeter/lib/log4j-slf4j-impl-2.17.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
[INFO] SLF4J: Found binding in [jar:file:/D:/Program%20Files/GitData/GritJmeter/target/39016a4e-390a-4b18-8df3-fb914d5aa91f/jmeter/lib/slf4j-nop-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
[INFO] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
[INFO] SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
[INFO] Creating summariser <summary>
[INFO] Created the tree successfully using D:\Program Files\GitData\GritJmeter\target\jmeter\testFiles\cont.jmx
[INFO] Starting standalone test @ Tue Oct 17 11:19:57 CST 2023 (1697512797293)
[INFO] Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
[INFO] summary +      1 in 00:00:04 =    0.3/s Avg:  3033 Min:  3033 Max:  3033 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0
[INFO] summary +     13 in 00:00:07 =    1.9/s Avg:   529 Min:     9 Max:  5276 Err:     0 (0.00%) Active: 0 Started: 1 Finished: 1
[INFO] summary =     14 in 00:00:10 =    1.3/s Avg:   708 Min:     9 Max:  5276 Err:     0 (0.00%)
[INFO] Tidying up ...    @ Tue Oct 17 11:20:08 CST 2023 (1697512808570)
[INFO] ... end of run
[INFO] Completed Test: D:\Program Files\GitData\GritJmeter\target\jmeter\testFiles\cont.jmx
[INFO]  
[INFO] 
[INFO] --- jmeter:3.6.0:results (jmeter-check-results) @ GritJmeter ---
[INFO]  
[INFO] -------------------------------------------------------
[INFO] S C A N N I N G    F O R    R E S U L T S
[INFO] -------------------------------------------------------
[INFO]  
[INFO] Will scan results using format: CSV
[INFO]  
[INFO] Parsing results file 'D:\Program Files\GitData\GritJmeter\target\jmeter\results\cont-20231017.csv' as type: CSV
[INFO]  
[INFO] -------------------------------------------------------
[INFO] P E R F O R M A N C E    T E S T    R E S U L T S
[INFO] -------------------------------------------------------
[INFO]  
[INFO] Result (.csv) files scanned: 1
[INFO] Successful requests:         16
[INFO] Failed requests:             0
[INFO] Failures:                    0.0% (0.0% accepted)
[INFO]  
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  57.681 s
[INFO] Finished at: 2023-10-17T11:20:12+08:00
[INFO] ------------------------------------------------------------------------
[INFO] Shutdown detected, destroying JMeter process...
[INFO]  

Process finished with exit code 0
通过jmeter gui

cd 到maven项目代码目录下,执行命令

mvn jmeter:configure jmeter:gui

会自动打开jmeter界面

控制台日志

查看日志可知执行的时候获取的配置是默认配置execution ID: default-cli,而不是我们在pom中配置execution ID: configuration

Microsoft Windows [版本 10.0.17763.4974]
(c) 2018 Microsoft Corporation。保留所有权利。

D:\Program Files\GitData\GritJmeter>mvn jmeter:configure jmeter:gui
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------------< Grit:GritJmeter >---------------------------
[INFO] Building GritJmeter 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- jmeter:3.6.0:configure (default-cli) @ GritJmeter ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] C O N F I G U R I N G    J M E T E R
[INFO] -------------------------------------------------------
[INFO]
[INFO] Creating test configuration for execution ID: default-cli
[INFO] Building JMeter directory structure...
[INFO] Generating JSON Test config...
[INFO] Configuring JMeter artifacts...
[INFO] Populating JMeter directory...
[INFO] Copying extensions to D:\Program Files\GitData\GritJmeter\target\caab0619-1b6c-4fcb-b55c-13626e70662f\jmeter\lib\ext
Downloading dependencies: true
[INFO] Copying junit libraries to D:\Program Files\GitData\GritJmeter\target\caab0619-1b6c-4fcb-b55c-13626e70662f\jmeter\lib\junit
Downloading dependencies: true
[INFO] Copying test plan libraries to D:\Program Files\GitData\GritJmeter\target\caab0619-1b6c-4fcb-b55c-13626e70662f\jmeter\lib
Downloading dependencies: true
[INFO] Configuring JMeter properties...
[INFO]
[INFO] --- jmeter:3.6.0:gui (default-cli) @ GritJmeter ---
[INFO]
[INFO] -------------------------------------------------------
[INFO]  S T A R T I N G    J M E T E R    G U I
[INFO] -------------------------------------------------------
[INFO] Arguments for forked JMeter JVM: [java, -Xms2048M, -Xmx2048M, -jar, ApacheJMeter-5.4.3.jar, -d, D:\Program Files\GitData\GritJmeter\target\caab0619-1b6c-4fcb-b55c-13626e70662f\jmeter, -L, ERROR]
[INFO]

这个方式执行速度比较慢

查看报告

执行完成后会存在一个targer目录

通过Jenkins执行

问题记录

问题1:

testFilesDirectory 元素值只能是目录,不能是文件,不然会提示找到的不是目录类型而报错

问题2:pom.xml报错提示:Element 'configuration' cannot have character [children], because the type's content type is element

解决办法:发现pom文件内容中少了一个<导致。

配置文件中的beans节点下面只能是元素节点,不能有字符或者文本存在

比如,多余的标点符号,点,也有可能是空格。

问题3:执行结果 ,提示jmeter-maven-plugin版本3.6需要maven 版本3.5.2

解决方案:

参考:

Win10系统Jmeter+maven+Jenkins接口自动化环境搭建(一) | 柯南的博客记录

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS属性:定位属性+案例讲解:博雅互动 前端开发入门笔记(五)

CSS中的定位属性用于指定HTML元素在文档中的位置。常用的定位属性有以下几种&#xff1a; position&#xff1a;用于定义元素的定位方式。 static&#xff08;默认值&#xff09;&#xff1a;元素遵循正常的文档流&#xff0c;不进行特殊的定位。relative&#xff1a;相对定位&…

2023年【起重机械指挥】考试题库及起重机械指挥证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 起重机械指挥考试题库是安全生产模拟考试一点通总题库中生成的一套起重机械指挥证考试&#xff0c;安全生产模拟考试一点通上起重机械指挥作业手机同步练习。2023年【起重机械指挥】考试题库及起重机械指挥证考试 1、…

Python股票交易中的卡尔曼滤波器

卡尔曼滤波器 什么是卡尔曼滤波器&#xff1f; 鉴于测量结果会受到噪声的影响&#xff0c;卡尔曼滤波器 (KF) 算法可以恢复被跟踪的底层对象的真实状态。该算法有两个步骤&#xff1a;预测步骤和测量更新步骤。该滤波器结合了噪声传感器的测量结果和基于物理的模型的预测&…

山西电力市场日前价格预测【2023-10-19】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-19&#xff09;山西电力市场全天平均日前电价为210.83元/MWh。其中&#xff0c;最高日前电价为337.00元/MWh&#xff0c;预计出现在18: 30。最低日前电价为0.00元/MWh&#xff0c;预计出…

GitHub-使用 Git工具 创建密钥id_rsa.pub

快速导航 步骤1 打开Git Bash步骤2 输入指令【ssh-keygen】步骤3 打开创建的公钥文件步骤4 复制其中所有内容步骤5 打开GitHub中的Setting界面步骤6 添加SSH keys 步骤1 打开Git Bash 打开Git Bash 工具 步骤2 输入指令【ssh-keygen】 输入指令【ssh-keygen】&#xff0c;并…

C语言验证哥德巴赫猜想

完整代码&#xff1a; /*写一个函数验证哥德巴赫猜想&#xff1a;一个不小于 6 的偶数可以表示为两个素数之和&#xff0c;如 633&#xff0c;835&#xff0c;1037…在主函数中输入一个不小于 6 的偶数 n&#xff0c;然后调用函数 gotbaha&#xff0c; 在 gotbaha 函数中再调用…

Aria2NG连接aria2-pro提示认证失败的处理办法

本文档适用于已经安装了aria2-pro和AriaNg的小伙伴~ 第一次登录管理端会提示”认证失败“ 这是因为aria设置了密码&#xff0c;需要在设置中配置上密码即可 配置完密码重新加载就可以正常使用啦 下载速度明显比以前快了很多 下载参考文档 Docker安装下载神器aria2并使用过程记…

Eclipse Xtext 实现PLC ST 语言到C的转换

Eclipse Xtext 是开发领域专用语言&#xff08;DSL&#xff09;的工具。例如数据库的SQL 语言&#xff0c;PLC 的ST 语言都是一种领域专用语言。在开放自动化领域&#xff0c;提倡基于模型的设计方法。DSL 是描述模型的强有力工具。 在开发PLC 程序IDE时&#xff0c;开发ST编译…

STM32-LCD液晶显示

LCD液晶显示 针对野火指南者配套资料&#xff1a;3.2寸 LCD电阻屏&#xff0c;屏幕里自带ILI9341液晶控制器芯片&#xff0c;该控制器芯片中存在GRAM&#xff08;即显存&#xff09;。该液晶控制器使用8080接口与单片机通讯&#xff0c;液晶面板引出来的FPC信号线为8080接口&am…

ESP RainMaker 客户案例 #1|Halonix

Halonix 是印度规模增长最快的电器公司之一&#xff0c;专注于照明、风扇等电器产品&#xff0c;正在进军健康和安全领域&#xff0c;现已推出紫外线消毒器和安全摄像头。Halonix 致力于创新&#xff0c;不断采用新兴前沿技术实现产品迭代&#xff0c;并通过加强设备间的互联互…

23.项目开发之量化交易抓取数据QuantTradeData(二)

后端业务&#xff1a;定时更新“A股日线行情”数据 需求说明 为了获取前一天的最新数据&#xff0c;我们需要每天晚上10点定时刷新daily股票列表基础信息&#xff0c;并将最新数据插入或更新到数据库中。 如果该内容是在当天交易日信息未更新前查询&#xff08;15~16点之前&a…

谢宝栋教授:左心室辅助装置最新进展【ACC最新科学声明解读】

谢宝栋教授 主任医师 哈尔滨医科大学附属第一医院心脏大血管外科主任 独立完成十余例LVAD手术&#xff0c;具有丰富经验。 心力衰竭&#xff08;HF&#xff09;是一种严重的心脏病&#xff0c;导致心脏无法有效地泵送血液到全身。根据指南指导的药物治疗虽然可以缓解部分HF患…

ubuntu 18.04 开机自启 打开终端执行脚本

一 打开设置开机自启配置程序 alt F2 输入 gnome-session-properties 或 终端输入 gnome-session-properties 二 添加开机自启配置 点右方的add加入 填写名称&#xff0c;可自定义 填写指令&#xff0c;即开机想要执行的指令 gnome-terminal -x bash -c “ls; exec bash” …

JAVA生成ORC格式文件

一、背景 由于需要用到用java生成hdfs文件并上传到指定目录中&#xff0c;在Hive中即可查询到数据&#xff0c;基于此背景&#xff0c;开发此工具类 ORC官方网站&#xff1a;https://orc.apache.org/ 二、支持数据类型 三、工具开发 package com.xx.util;import com.alibab…

安防视频监控平台EasyCVR出现视频流播放卡顿情况,如何优化?

视频集中存储/云存储/视频监控管理平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。AI智能/大数据视频分析EasyCVR平台已经广泛应用在工地、工厂、园区、楼…

成都股票开户选择哪家证券公司开户最便宜?炒股开户佣金最低是多少?

成都股票开户选择哪家证券公司开户最便宜&#xff1f;炒股开户佣金最低是多少&#xff1f; 股票开户是指向证券公司注册开立证券账户&#xff0c;以便购买和销售股票。一般而言&#xff0c;股票开户需要提供身份证明、联系方式、银行账户等信息并完成相应的申请手续。开户后&a…

postman请求400错误-日期LocalData

错误日志参考 [nio-8080-exec-3] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type java.lang.String to required type java.time.LocalDate; neste…

RK3568驱动模块编译进内核

一、创建文件 首先在drivers/char目录下创建hello文件夹&#xff0c;然后在hello文件夹下创建hello.c 文件、Kconfig和Makefile文件。   hello.c 文件内容如下 #include <linux/module.h> #include <linux/kernel.h> static int __init helloworld_init(void) …

Shell 一键替换当前目录下所有文件的指定内容

文件内容&#xff1a; 脚本&#xff1a; #!/bin/bash source_content"127.0.0.1" target_content"helo cloudmusic"# 指定目录 directorypwd# 使用循环遍历目录中的每个文件 for file in "$directory"/* doif [ -f "$file" ]; then# …

B站狂转清华大佬手写笔记:Spring Security+ OAuth2.0分布式认证授权

微服务认证方案 微服务认证方案目前有很多种&#xff0c;每个企业也是大不相同&#xff0c;但是总体分为两类&#xff0c;如下&#xff1a; 网关只负责转发请求&#xff0c;认证鉴权交给每个微服务商控制统一在网关层面认证鉴权&#xff0c;微服务只负责业务 你们公司目前用…