Jmeter集成到jenkins

Jmeter集成到Jenkins

Jmeter集成到Jenkins. 1

软件下载... 4

一:环境配置... 4

1.JDK安装:... 4

配置JDK环境变量... 5

2.Jmeter安装:... 5

配置jmeter环境变量... 6

3.安装Ant 7

配置Ant环境变量... 7

4.Git安装:... 8

配置git环境变量... 9

5.Github设置... 11

创建github账号... 11

创建组织... 12

创建Repositories. 14

二:Eclipse操作使用github. 16

1.Eclipse连接github. 16

1.1创建本地Branch. 20

1.2 Eclipse创建项目... 21

1.3 Share项目... 22

1.4上传项目到github. 25

1.5提交文件... 25

三:Jenkins相关配置... 30

1.安装Jenkins: 30

2.Jenkins插件安装:... 32

3.Jenkins系统配置... 34

3.1 Jenkins邮件配置... 34

3.2 Git工具配置... 35

3.3 Github相关帐户配置... 36

4.配置测试项目... 37

4.1新建测试项目... 37

4.2项目源码管理配置... 38

4.3项目构建配置... 38

4.4测试报告插件配置... 39

4.5邮件发送配置... 41

四:Jmeter构建说明... 43

1.目录详解... 43

2.build说明详解... 44

3.执行jenkins之前动作... 46

软件下载

JDK  http://java.sun.com/javase/downloads/index.jsp

jmeter  http://jmeter.apache.org/download_jmeter.cgi

搭建环境:

JDKjdk1.7.0_79

Antapache-ant-1.9.7

Jmeter: apache-jmeter-2.13

Jenkins: jenkins-1.651.1

Git tool

Github管理资源库

以上安装包以及相关工具下载地址:

Jenkins_Jmeter_Ant_免费高速下载|百度网盘-分享无限制

一:环境配置

1.JDK安装:

1.双击JDK安装包,选择安装路径(为了节省C盘系统盘空间,不建议选择默认路径。本人所有相关软件全部安装在 D:\Progrom Files目录下,例如Jdk安装在D:\Progrom Files\Java\jdk1.7.0_79路径下);

配置JDK环境变量:

1)系统变量新建 JAVA_HOME 变量

变量值填写jdk的安装目录(本人是 D:\Progrom Files\Java\jdk1.7.0_79)

2)系统变量寻找 Path 变量编辑

在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

3)系统变量新建 CLASSPATH 变量

变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意最前面有一点)

系统变量配置完毕

4)检验是否配置成功 运行cmd 输入 java -version java -version 之间有空格)

若如图所示 显示版本信息 则说明安装和配置成功。

2.Jmeter安装:

  1. 解压apache-jmeter-2.13.zip到D:\Progrom Files目录下。

2.Jmeter插件的安装。解压JMeterPlugins-Extras-1.3.0.zipJMeterPlugins-Standard-1.3.0.zip,将对应ext目录下的文件拷贝到D:\Progrom Files\apache-jmeter-2.13\lib\ext目录下

配置jmeter环境变量

  1. 设置环境变量,新建系统变量在变量名中输入:JMETER_HOME,变量值中输入:D:\Progrom Files\apache-jmeter-2.13,点击确定即可。
  2. 在环境变量CLASSPATH中添加%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar; 在环境变量Path中添加%JMETER_HOME%\bin
  3. 检验是否配置成功 运行cmd 输入 jmeter -v jmeter -v 之间有空格)
  4. 若如图所示 显示版本信息 则说明安装和配置成功。

3.安装Ant

  1. 解压apache-ant-1.9.7-bin.zip到D:\Progrom Files目录下;

配置Ant环境变量

  1. 新建以下环境变量:

ANT_HOMED:\Progrom Files\apache-ant-1.9.7,此为你的ANT安装路径;

设置完成后,点击"确认"来保存。

     2.在环境变量PATH的最后面添加一下内容:

;%ANT_HOME%\bin 注意前面的分号,如果PATH中最后没有分号";"的话要加上,有的话就可去除。

​​​​​​​​​​​​​​        3.进入cmd命令窗口,在CMD窗口中输入ant -version,敲击回城键,会显示出你安装的ANT版本,如果成功显示,说明你的配置应该是成功了.

  1. 本地调试使用ant构建运行Jmeter,并且生成jtl、Html报告;
    1. jmeter默认保存的是.csv格式的文件,所以我们先要设置一下bin/jmeter.properties文件内容,修改jmeter.properties文件 jmeter.save.saveservice.output_format=xml;
    2. 将apache-jmeter-2.13\extras\ant-jmeter-1.1.1.jar拷贝到apache-ant-1.9.7\lib目录下;
    3. 在\apache-jmeter-2.13\extras目录下打开CMD,运行"ant.bat -file build.xml -Dtest=Test" . 查看\apache-jmeter-2.13\extras目录下是否出现Test.jtl、Test.html文件,若有,则构建成功。注意:Test.jmx是默认存在的Sample脚本文件。

若构建失败,请分析cmd打印的日志消息,定位问题;

3.    记得把jmeterextras目录下的ant-jmeter-1.1.1.jar拷贝到antlib目录下

4.Git安装:

  1. 安装git

git下载下来后直接安装运行就行。

配置git环境变量

添加path:例如:G:\git\Git\cmd 

然后打开cmd,运行:git

5.Github设置

创建github就是为了使用jmeter相关东西,像构建里面的path就可以配置成相对路径

创建github账号

  Sign in to GitHub · GitHub

账号创建按照github要求创建

创建组织

    1. 登录github创建team,也可以创建,后边建项目时直接建在登录账号下,如果要对项目权限访问更细那就建议建一个

点击右上角的+,点击new organization创建一个组织机构名

创建Repositories

你可以选择公共的还是私有的

创建完成之后如下图

创建完成之后就可以连接到该库了,也可以把一些代码上传到这个上面,后面会把jmeter相关的传到这个上面

如图中的地址就是项目的地址,你可以在eclipse里面直接连接

二:Eclipse操作使用github

1.Eclipse连接github

可以在Eclipse中上传jmeter相关到github

首先需要安装github插件到Eclipse中,这个就不细说了,网上搜一下安装就行

  1. Eclipse连接到github

连接的URL\就是你刚才建好的项目的URL,直接复制就行,你复制后回到Eclipse页面后对应信息会自动填入,然后你输入帐户,密码就可以了,下一步直到完成

如上图,我的项目就是Autotest这个,如果新建的项目还没有上传任何东西时只有一个master分支。如下图

1.1创建本地Branch

先建一个本地仓库的branch,后面提交东西可以提交到这个分支上。创建好了之后切换到java窗口,新建一个项目

1.2 Eclipse创建项目

1.3 Share项目

完成项目创建之后,选中项目点击右键 ,有看到一个team的功能嘛,点击share project

1.4上传项目到github

然后把你下载下来的包含jmeter的那个project信息放进去,上传,鼠标右键点击team→commit,如果是新上传的,需要勾选,如果是更新什么的就只需要选中那些要更新的然后点击这个就行,会自动帮你勾选上的

这里操作上传之前一定要记得选择一个分支,也就是之前建立的那个branch

1.5提交文件

提交文件操作时,勾选要上传的文件,有全选和去掉全选按钮的,然后写上提交的备注信息

然后点击commit之后就可以看到branch有提交记录,然后这个才是提交到本地仓库,如果要提交到远程,则还需要操作一步

选择刚才提交上去信息的branch,比如我的是init-branch,右键选择pull branch

Heads后面那个是你要提交的分支名字

refs/heads/master

如图,这个就是提交成功以后的页面,然后可以到github上面看下你提交的东西是否上去了

如下图所示,就是我已经上传好的信息了

三:Jenkins相关配置

1.安装Jenkins:

  1. 安装的是jenkins-1.651.1.msi安装版,也可自行选择安装Jenkins其他版本;
  2. 双击jenkins.msi启动安装,安装目录选择D:\Progrom Files\Jenkins,然后启动成功。
  3. Jenkins服务默认端口为8080,如与其他服务冲突,可在..\Jenkins\jenkins.xml中修改默认端口,如我这里修改为--httpPort=7033;

  1. Jenkins服务默认是自动启动的,如果想修改为手动启动,请自行管理->服务,找到Jenkins服务,修改为手动启动即可。

  1. 打开Jenkins,首次进入会默认让你选择安装插件(此处如果完全不清楚自己需要什么插件,建议全选)。插件安装完成之后,需要设置登录用户,按照自己喜好设置即可。
  2. 这样jenkins就安装成功了。然后我们打开一个浏览器,输入localhost:8080(默认路径是这个,如果你修改了端口号,那就换成你改的端口号) 就会弹出jenkins的web界面。如下图: 

3.进入Jenkins主页:(我本机的jenkins地址是:http://localhost:8090/)

2.Jenkins插件安装:

系统设置->管理插件->可选插件,搜索插件,安装插件;

1.Jmeter报告性能的插件(Performance plugin

2.用作展示在jenkinsjobhtml报告插件(HTML Publisher plugin

  1. git插件Git plugin

执行连接github资源库

  1. github插件GitHub plugin

  1. Email插件Email Extension Plugin   Email Ext Recipients Column Plugin

注:另外一些其他用的插件,如果需要可以使用jenkins plugins里面的。

3.Jenkins系统配置

Jenkins系统配置以及工具配置

3.1 Jenkins邮件配置

(系统配置系统设置)

如下图,配置邮件服务信息,用户名以及密码,SMTP端口,配置完成之后可以,点击通过发送测试邮件测试配置

      点击测试邮件后如果看到如下图的信息,说明配置成功

3.2 Git工具配置

(系统配置→Global Tool Configuration

  1. Ant,jdk,maven配置(有些可能用不到)

3.3 Github相关帐户配置

设置连接github的帐户,可以使用用户名和密码,id可以为空,添加后自动生成的

4.配置测试项目

4.1新建测试项目

a、在Jenkins首页左边 点击新建 -> 选择"构建一个自由风格的软件项目",输入Item名称(中英文不限,建议使用英文) –> 点击OK,进入你新建的测试项目的配置页面;

b、丢弃旧的构建:这里勾选上,为了避免多余的构建日志、临时文件占磁盘空间,需要定期的清除过期文件。例如这里选择保存3天之内的构建文件,最大保存N个构建项目的文件;

具体设置如下图所示:

4.2项目源码管理配置

源码管理,选择git

如图所示,填写源码地址,选择连接帐户,还有分支信息

4.3项目构建配置

jmeter -n -t Testcase/test.jmx -l JmeterResult/TestReport.jtl

这个是jmeter的执行命令,为了执行jmeter脚本生成jtl文件,用作转换成html

项目配置步骤:

Ant Version:选择配置的ant的信息

Targets:配置build.xml中的target信息,比如reportfile

Build file:指定build文件的路径信息

4.4测试报告插件配置

配置Publish Performance test result report

首先设置要展示成jenkins这个插件的reportjtl信息,如下图

要展示的性能信息的一些配置参数

    1. 项目配置步骤

配置展示在jenkinsjob的一个html信息

参数解释,网上搜到,可以看你用哪个

下面我解释一下常用的属性。

  •  ${FILE,path="PATH"} 包括指定文件(路径)的含量相对于工作空间根目录。
    • path文件路径,注意:是工作区目录的相对路径。
  •  ${BUILD_NUMBER} 显示当前构建的编号。
  •  ${JOB_DESCRIPTION} 显示项目描述。
  •  ${SVN_REVISION} 显示svn版本号。还支持Subversion插件出口SVN_REVISION_n版本。
  •  ${CAUSE} 显示谁、通过什么渠道触发这次构建。
  •  ${CHANGES } -显示上一次构建之后的变化。
    • showPaths 如果为 true,显示提交修改后的地址。默认false
    • showDependencies 如果为true显示项目构建依赖。默认为false
    • format 遍历提交信息,一个包含%X的字符串,其中%a表示作者,%d表示日期,%m表示消息,%p表示路径,%r表示版本。注意,并不是所有的版本系统都支持%d%r。如果指定showPaths将被忽略。默认“[%a] %m\\n”
    • pathFormat 一个包含“%p”的字符串,用来标示怎么打印路径。
  •  ${BUILD_ID}显示当前构建生成的ID
  •  ${PROJECT_NAME} 显示项目的全名。(见AbstractProject.getFullDisplayName
  •  ${PROJECT_DISPLAY_NAME} 显示项目的显示名称。(见AbstractProject.getDisplayName
  •  ${SCRIPT} 从一个脚本生成自定义消息内容。自定义脚本应该放在"$JENKINS_HOME/email-templates"。当使用自定义脚本时会默认搜索$JENKINS_HOME/email-templatesdirectory目录。其他的目录将不会被搜索。
    •  script 当其使用的时候,仅仅只有最后一个值会被脚本使用(不能同时使用scripttemplate)。
    •  template常规的simpletemplateengine格式模板。
  •  ${JENKINS_URL} 显示Jenkins服务器的url地址(你可以再系统配置页更改)。
  •  ${BUILD_LOG_MULTILINE_REGEX}按正则表达式匹配并显示构建日志。
    •  regex java.util.regex.Pattern 生成正则表达式匹配的构建日志。无默认值,可为空。
    •  maxMatches 匹配的最大数量。如果为0将匹配所有。默认为0
    •  showTruncatedLines 如果为true,包含[...truncated ### lines...]行。默认为true
    •  substText 如果非空,就把这部分文字(而不是整行)插入该邮件。默认为空。
    • escapeHtml 如果为true格式化HTML。默认为false
    •  matchedSegmentHtmlStyle 如果非空,输出HTML。匹配的行数将变为<b style=”your-style-value”> html escaped matched line </b>格式。默认为空。
  •  ${BUILD_LOG} 显示最终构建日志。
    •  maxLines 日志最多显示的行数,默认250行。
    •  escapeHtml 如果为true,格式化HTML。默认false
  •  ${PROJECT_URL} 显示项目的URL地址。
  •  ${BUILD_STATUS} -显示当前构建的状态(失败、成功等等)
  •  ${BUILD_URL} -显示当前构建的URL地址。
  •  ${CHANGES_SINCE_LAST_SUCCESS} -显示上一次成功构建之后的变化。
    •  reverse在顶部标示新近的构建。默认false
    •  format遍历构建信息,一个包含%X的字符串,其中%c为所有的改变,%n为构建编号。默认”Changes for Build #%n\n%c\n”
    •  showPaths,changesFormat,pathFormat分别定义如${CHANGES}showPathsformatpathFormat参数。
  •  ${CHANGES_SINCE_LAST_UNSTABLE} -显示显示上一次不稳固或者成功的构建之后的变化。
    • reverse在顶部标示新近的构建。默认false
    •  format遍历构建信息,一个包含%X的字符串,其中%c为所有的改变,%n为构建编号。默认”Changes for Build #%n\n%c\n”
    •  showPaths,changesFormat,pathFormat分别定义如${CHANGES}showPathsformatpathFormat参数。
  •  ${ENV} –显示一个环境变量。
    •  var– 显示该环境变量的名称。如果为空,显示所有,默认为空。
  •  ${FAILED_TESTS} -如果有失败的测试,显示这些失败的单元测试信息。
  •  ${JENKINS_URL} -显示Jenkins服务器的地址。(你能在系统配置页改变它)
  •  ${HUDSON_URL} -不推荐,请使用$JENKINS_URL
  •  ${PROJECT_URL} -显示项目的URL
  •  ${SVN_REVISION} -显示SVN的版本号。
  •  ${JELLY_SCRIPT} -从一个Jelly脚本模板中自定义消息内容。有两种模板可供配置:HTMLTEXT。你可以在$JENKINS_HOME/email-templates下自定义替换它。当使用自动义模板时,”template”参数的名称不包含“.jelly”
    •  template模板名称,默认”html”
  •  ${TEST_COUNTS} -显示测试的数量。
    • var– 默认“total”
      • total -所有测试的数量。
      •  fail -失败测试的数量。
      •  skip -跳过测试的数量。

4.5邮件发送配置

配置构建后的结果信息要发送的邮件

    1. 项目配置步骤

Project Recipient List:收件人信息,如果有多个用;隔开 默认:$DEFAULT_RECIPIENTS

Project Reply-To List:回复列表,默认:$DEFAULT_REPLYTO

Content Type:邮件内容文本格式,如果要执行下面的脚本,则选择html

Default Subject:邮件主题,可以设置固定格式,也可以设置根据变量值设置,例如:构建通知:$PROJECT_NAME - Build # BUILD_NUMBER - $BUILD_STATUS!

Default Content:默认内容,不设置则默认:$DEFAULT_CONTENT

Pre-send Script:邮件发送前执行的脚本。

配置详看下图中,

邮件正文html代码:

<hr/>

 <font size="4">

<font color="#FF0000">(本邮件是程序自动下发的,请勿回复!)</font><br/><hr/>

 项目名称:$PROJECT_NAME<br/>

 构建编号:$BUILD_NUMBER<br/>

 构建状态:$BUILD_STATUS<br/>

 触发原因:${CAUSE}<br/>

 构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/>

 构建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>

 变更集:${JELLY_SCRIPT,template="html"}<br/><hr/>

 ###单击可查看报告文件详情

 运行结果:<a href="${BUILD_URL}../ws/TestReport.html">Report Detail>>></a><br/>

${FILE,path="./ws/TestReport.html"}<br/><hr/>

如果要配置邮件发送trigger信息,则可以设置这个

:Jmeter构建说明

1.目录详解

Buldfilebuild构建文件目录

ReportHtml:最终生成报告的目录,jenkinsjob显示的html报告也会从这个目录读取

Testcasejmeter脚本存放目录,就是jmx文件目录

bin/ ReportHtml: build后生成的html存放目录。

bin/ JmeterResult:执行jmeter脚本后生成的jtl文件的目录

2.build说明详解

1Property的定义,主要定一些目录信息,build文件中有详解

  1. <!-- 需要改成自己workspace Jmeter 目录--> 
  2.     <property name="jmeter.home" value="JmeterforJenkins/apache-jmeter-2.13" /> 
  3.     <!-- jmeter生成jtl格式的结果报告的路径--> 
  4.     <property name="jmeter.result.jtl.dir" value="JmeterforJenkins/apache-jmeter-2.13/bin/JmeterResult" /> 
  5.     <!-- jmeter生成html格式的结果报告的路径--> 
  6.     <property name="jmeter.result.html.dir" value="JmeterforJenkins/apache-jmeter-2.13/bin/ReportHtml" /> 
  7.     <!-- 生成的报告的前缀--> 
  8.     <property name="ReportName" value="TestReport" /> 
  9.     <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" /> 
  10.     <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" /> 
  11. <property name="jmeter.result.htmlTestName" value="${jmeter.result.html.dir}/${ReportName}_Detail.html" />

2.target信息主要定义写执行的动作

<target name="all"> 

        <antcall target="test" /> 

        <antcall target="report" />

    <antcall target="zipfile" />

    </target> 

 <target name="reportfile"> 

        <antcall target="report" /> 

        <antcall target="zipfile" /> 

    </target>

这里有两个,一个是all的动作,包括执行test,生成report,打包成zip附件

一个是reportfile,包括生成report,打包成zip附件。

<xslt

             classpathref="xslt.classpath"

              force="true"

              in="../../../${jmeter.result.jtlName}" 

              out="../../../${jmeter.result.htmlName}" 

            style="../../../${jmeter.home}/extras/jmeter-results-detail-report_30.xsl">

             <param name="dateReport" expression="${report.datestamp}"/>

       </xslt>

       <xslt

           classpathref="xslt.classpath"

           force="true"

           in="../../../${jmeter.result.jtlName}" 

out="../../../${jmeter.result.htmlTestName}"        style="../../../${jmeter.home}/extras/jmeter-results-detail-reprot-request.xsl">

         <param name="dateReport" expression="${report.datestamp}"/>

    </xslt> 

3.这两个xslt的动作主要是输入jtl文件,然后转成成html文件,如果是绝对路径那就直接可以写绝对路径,如果是相对路径的话则会取到当前所在路径加上定义的路径,所以inputout加了一些../的操作,这个主要就是返回上一级目录。

<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 

       <copy todir="../../../${jmeter.result.html.dir}"> 

            <fileset dir="../../../${jmeter.home}/extras"> 

                <include name="collapse.png" /> 

                <include name="expand.png" /> 

            </fileset> 

        </copy>

    <copy todir="../../../${jmeter.home}/ReportHtml"> 

                <fileset dir="../../../${jmeter.result.html.dir}"> 

                    <include name="collapse.png" /> 

                    <include name="expand.png" />

                   <include name="*.html" /> 

                   <!--<include name="${ReportName}_test.html" />  -->

                </fileset> 

     </copy>

4这个copy主要是因为report中有用到两个图片要从extras文件拷贝到report目录,还有做了report文件的拷贝,拷贝到外层一目录下

<target name="zipfile">

        <zip destfile="../ReportHtml/JmeterReport.zip" basedir="../ReportHtml" includes="**/*.html **/*.png"/>

     </target>

  1. 这个主要用作打包,把最终生成的report打包成附件邮件发送
  2. 这个build中用到了两个重要的文件xsl文件,这是两个生成report时要引用的一个报告样式文件

jmeter-results-detail-reprot-request.xsl

jmeter-results-detail-report_30.xsl

3.执行jenkins之前动作

在本地执行build文件看是否正常build,选择build.xml,右键run as

选择ant build动作

然后在打开页面的勾选“reportfile” 这个target动作,其他的不用选,然后执行

看到执行结果如果是success的话就可以在jenkins执行了

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

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

相关文章

Untiy UDP局域网 异步发送图片

同步画面有问题&#xff0c;传图片吧 using System.Text; using System.Net.Sockets; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using System.Net; using System; using System.Threading.Tasks; using Sy…

java内嵌浏览器CEF-JAVA、jcef、java chrome

java内嵌浏览器CEF-JAVA、jcef、java chrome jcef是老牌cef的chrome内嵌方案&#xff0c;可以进行java-chrome-h5-桌面开发&#xff0c;下面为最新版本&#xff08;2023年9月22日10:33:07&#xff09; JCEF&#xff08;Java Chromium Embedded Framework&#xff09;是一个基于…

Cesium 空间量算——生成点位坐标

文章目录 需求分析1. 点击坐标点实现2. 输入坐标实现 需求 用 Cesium 生成点位坐标&#xff0c;并明显标识 分析 以下是我的两种实现方式 第一种是坐标点击实现 第二种是输入坐标实现 1. 点击坐标点实现 //点位坐标getLocation() {this.hoverIndex 0;let that this;this.view…

板子接线图

1.ST-LINK V2接线 2.对抗板子刷蓝牙固件 接USB转TTL&#xff0c;用镊子短接两个孔 2.对抗板子用串口测试蓝牙AT命令 短接白色箭头&#xff0c;接TX&#xff0c;RX&#xff0c;电源

MongoDB【部署 04】Windows系统实现MongoDB多磁盘存储

Windows系统实现多磁盘存储 1.为什么2.多磁盘存储2.1 数据库配置2.2 文件夹磁盘映射2.3 创建新的数据集 3.总结 1.为什么 这里仅针对只有一台Windows系统服务器的情景&#xff1a; 当服务器存储不足时&#xff0c;或者要接入更多的数据&#xff0c;就会挂载新磁盘&#xff0c…

边缘计算AI智能安防监控视频平台车辆违停算法详解与应用

随着城市车辆保有量呈现高速增长趋势&#xff0c;交通拥堵、违章行为也日益泛滥。因为车辆未停放在指定区域导致的车位浪费、占用/堵塞交通要道、车辆剐蹭等问题层出不穷。通过人工进行违法停车的监控&#xff0c;不仅让监控人员工作负荷越来越大&#xff0c;而且存在发现不及时…

Lua学习笔记:词法分析

前言 本篇在讲什么 Lua的词法分析 本篇需要什么 对Lua语法有简单认知 对C语法有简单认知 依赖Visual Studio工具 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手 提供全流程的源码内容 ★提高阅读体验★ &#x1f449; ♠ 一级标题…

SpringAOP补充-通知获取类型

JoinPoint 是 ProceedingJoinPoint 的父类。 getArgs()是JoinPoint获取原方法返回值的函数。 preceed()是ProceedingJoinPoint获取原方法返回值的函数。

【Java】Servlet API

Servlet API HttpServlet核心方法Servlet生命周期 HttpServletRequest核心方法 HttpServletResponse核心方法 HttpServlet 我们写 Servlet 代码的时候, 首先第一步就是先创建类, 继承自 HttpServlet, 并重写其中的某些方法. 核心方法 方法名称调用时机init在 HttpServlet 实…

近三年各领域数字孪生相关政策汇编(可下载)

自2021年国家“十四五”规划纲要提出“探索建设数字孪生城市”以来&#xff0c;国家发展和改革委员会、工业和信息化部、住房和城乡建设部、水利部、农业农村部等部门纷纷出台政策&#xff0c;大力推动数字孪生在千行百业的落地发展。这些政策不仅为数字孪生的应用提供了广阔的…

39 | selenium基础架构,UI测试架构

什么是测试基础架构&#xff1f; 测试基础架构指的是&#xff0c;执行测试的过程中用到的所有基础硬件设施以及相关的软件设施。因此&#xff0c;我们也把测试基础架构称之为广义的测试执行环境。通常来讲&#xff0c;测试基础架构主要包括以下内容&#xff1a; 执行测试的机器…

机器学习第十一课--K-Means聚类

一.聚类的概念 K-Means算法是最经典的聚类算法&#xff0c;几乎所有的聚类分析场景&#xff0c;你都可以使用K-Means&#xff0c;而且在营销场景上&#xff0c;它就是"King"&#xff0c;所以不管从事数据分析师甚至是AI工程师&#xff0c;不知道K-Means是”不可原谅…

MATLAB | R2023b更新了哪些好玩的东西?

R2023b来啦&#xff01;&#xff01;废话不多说看看新版本有啥有趣的玩意和好玩的特性叭&#xff01;&#xff01;依旧把绘图放最前面叭&#xff0c;有图的内容看的人多。。 1 调色板 MATLAB终于不只有一套配色了&#xff0c;诸君且看&#xff1a; y [3 5 7 9 11; 2 5 6 8 1…

uniapp确认提示框;uniapp判断输入框值是否符合正常手机号,身份证号

确认提示框 UniApp 中&#xff0c;你可以使用 uni.showModal 方法来创建确认提示框。以下是一个示例&#xff1a; <template><view class"container"><button click"showAuthModal">显示确认提示框</button></view> </…

【问题记录】解决“命令行终端”和“Git Bash”操作本地Git仓库时出现 中文乱码 的问题!

环境 Windows 11 家庭中文版git version 2.41.0.windows.1 问题情况 在使用 “命令行终端” 和 “Git Bash” 在本地Git仓库敲击命令时&#xff0c;对中文名称文件显示一连串的数字&#xff0c;如下所示&#xff1a;这种情况通常是由于字符编码设置不正确所引起的 解决办法 设置…

什么是分布式锁?他解决了什么样的问题?

相信对于朋友们来说&#xff0c;锁这个东西已经非常熟悉了&#xff0c;在说分布式锁之前&#xff0c;我们来聊聊单体应用时候的本地锁&#xff0c;这个锁很多小伙伴都会用 ✔本地锁 我们在开发单体应用的时候&#xff0c;为了保证多个线程并发访问公共资源的时候&#xff0c;…

网络编程day05(IO多路复用)

今日任务&#xff1a; TCP多路复用的客户端、服务端&#xff1a; 服务端代码&#xff1a; #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <netinet/in.h> #include <unistd.h> …

uniapp 内容展开组件

uni-collapse折叠面板并不符合需求&#xff0c;需要自己写一个。 效果展示&#xff1a; 代码&#xff1a; &#xff08;vue3版本&#xff09; <template><view class"collapse-view"><view class"collapse-content"><swiper:autopl…

OpenHarmony应用核心技术理念与需求机遇简析

一、核心技术理念 图片来源&#xff1a;OpenHarmony官方网站 二、需求机遇简析 新的万物互联智能世界代表着新规则、新赛道、新切入点、新财富机会;各WEB网站、客户端( 苹果APP、安卓APK)、微信小程序等上的组织、企业、商户等;OpenHarmony既是一次机遇、同时又是一次大的挑战&…

好用的记笔记app选哪个?

当你在日常生活中突然获得了一个灵感&#xff0c;或者需要记录会议的重要内容&#xff0c;或者是学校课堂上的笔记&#xff0c;你通常会拿出手机&#xff0c;因为它总是在你身边&#xff0c;随时可用。这时候&#xff0c;一款好的记笔记App可以让你事半功倍。 敬业签是一款全面…