Jmeter集成到jenkins

news2024/10/6 22:32:10

Jmeter集成到Jenkins

序号

修改人

版本

创建日期

修改日期

备注

1

进击的雷神

V1.0

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.zip、JMeterPlugins-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账号

  https://github.com/login

账号创建按照github要求创建

创建组织

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

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

创建完成之后选择成员,完成之后创建repositories

创建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

 新的分支的话Target Ref Name则是空,需要手动填写

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;

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

5.打开Jenkins,首次进入会默认让你选择安装插件(此处如果完全不清楚自己需要什么插件,建议全选)。插件安装完成之后,需要设置登录用户,按照自己喜好设置即可。

6.这样jenkins就安装成功了。然后我们打开一个浏览器,输入localhost:8080(默认路径是这个,如果你修改了端口号,那就换成你改的端口号) 就会弹出jenkins的web界面。如下图: 

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

2.Jenkins插件安装:

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

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

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

3.git插件Git plugin

执行连接github资源库

4.github插件GitHub plugin

5.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新建测试项目

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

  1. 项目配置步骤1

a、描述:用于编写该项目的介绍(请忽略);

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信息,如下图

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

​​​​​​​项目配置步骤

配置展示在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文件中有详解

<!-- 需要改成自己workspace的 Jmeter 目录--> 
    <property name="jmeter.home" value="JmeterforJenkins/apache-jmeter-2.13" /> 
    <!-- jmeter生成jtl格式的结果报告的路径--> 
    <property name="jmeter.result.jtl.dir" value="JmeterforJenkins/apache-jmeter-2.13/bin/JmeterResult" /> 
    <!-- jmeter生成html格式的结果报告的路径--> 
    <property name="jmeter.result.html.dir" value="JmeterforJenkins/apache-jmeter-2.13/bin/ReportHtml" /> 
    <!-- 生成的报告的前缀--> 
    <property name="ReportName" value="TestReport" /> 
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" /> 
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" /> 
<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.coloradmin.cn/o/652207.html

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

相关文章

ADC动态指标

量化误差ADC输出-ADC模拟输入 量化噪声功率&#xff1a; 信噪比&#xff1a; 由于仅仅考虑了量化噪声&#xff0c;上式为ADC的SNDR所能达到的极限值 N8,SNDR_max50dB N12,SNDR_max74dB N16,SNDR_max98dB N20,SNDR_max122dB 实际ADC还需要考虑期间噪声和电路非理想特性&am…

Python10行以内代码能有什么高端操作

Python10行以内代码能有什么高端操作 Python凭借其简洁的代码&#xff0c;赢得了许多开发者的喜爱。因此也就促使了更多开发者用Python开发新的模块&#xff0c;从而形成良性循环&#xff0c;Python可以凭借更加简短的代码实现许多有趣的操作。下面我们来看看&#xff0c;我们…

关于组织申报国家重点研发计划“高性能制造技术与重大装备”等重点专项2023年度项目的通知

源自&#xff1a;上海市科学技术委员会 各有关单位&#xff1a; 根据《科技部关于发布国家重点研发计划“高性能制造技术与重大装备”等6个重点专项2023年度项目申报指南的通知》&#xff08;国科发资〔2023〕90号&#xff09;《科技部关于发布国家重点研发计划“文化科技与现…

Linux---端口(nmap、netstat)、进程管理(ps、kill)

1. 端口 端口&#xff0c;是设备与外界通讯交流的出入口。端口可以分为&#xff1a;物理端口和虚拟端口两类。 物理端口&#xff1a;又可称之为接口&#xff0c;是可见的端口&#xff0c;如USB接口&#xff0c;RJ45网口&#xff0c;HDMI端口等。 虚拟端口&#xff1a;是指计…

制定测试计划和测试用例

制定测试计划和测试用例 测试是软件开发过程中很重要的一环&#xff0c;通过测试可以发现和修复软件中的缺陷或错误&#xff0c;保证软件的质量和可靠性。在进行软件测试时&#xff0c;制定合理的测试计划和测试用例是非常必要的&#xff0c;下面我将从这两个方面分别进行讲解。…

第10篇:强化学习Q-learning求解迷宫问题 代码实现

你好&#xff0c;我是郭震&#xff08;zhenguo&#xff09; 今天重新发布强化学习第10篇&#xff1a;强化学习Q-learning求解迷宫问题 代码实现 我想对此篇做一些更加详细的解释。 1 创建地图 创建迷宫地图&#xff0c;包括墙网格&#xff0c;走到墙网格就是负奖励。 注意&…

使用JRS303校验对参数进行提前校验

文章目录 前言JRS303简单使用版本JRS303提供的常用校验注解 JRS303进阶使用版本情景一&#xff1a;对于一个主键id字段我想要新增的时候不校验 但是更新的时候进行校验情景二&#xff1a; 在实际项目中 我们有一些字段只能填入规定的几个值 类似于枚举 那么就需要我们编写自定义…

N-Gram语言模型工具kenlm的详细安装教程

【本配置过程基于Linux系统】 下载源代码&#xff1a; wget -O - https://kheafield.com/code/kenlm.tar.gz |tar xz 编译&#xff1a; makdir kenlm/build cd kenlm/build cmake .. && make -j4 发现报错&#xff1a; 系统中没有cmake&#xff0c;按照错误提示&am…

华为认证 | HCIA-SDN 考试大纲

01 考试概述 02 考试范围 HCIA-SDN V1.0考试覆盖数据通信基础知识&#xff0c;SDN架构&#xff0c;SDN二、三层网络原理&#xff0c;SDN接口协议原理比如OpenFlow协议、Netconf协议、RestFul协议原理&#xff0c;以及在华为交换机与路由器中的实现。 SDN二三层技术&#xff1…

【JVM系列】java类加载机制详解

文章目录 一、类的生命周期二、类的加载过程加载验证准备解析初始化 三、类加载时机四、类加载器分类五、双亲委派原则六、Java字节码文件中的JVM指令 类是在运行期间第一次使用时动态加载的&#xff0c;而不是一次性加载所有类。因为如果一次性加载&#xff0c;那么会占用很多…

chatgpt赋能python:Python怎么生成程序?

Python怎么生成程序&#xff1f; 介绍 Python作为一种高级编程语言&#xff0c;最初是为简化代码编写而设计的。Python是一种相对简单的语言&#xff0c;因此在编写软件时非常有用。随着搜索引擎优化的出现和与之相关的需求&#xff0c;Python成为了生成程序的主要方式之一。…

策略模式(二十五)

相信自己&#xff0c;请一定要相信自己 上一章简单介绍了状态模式(二十四), 如果没有看过, 请观看上一章 一. 策略模式 引用 菜鸟教程里面 策略模式介绍: https://www.runoob.com/design-pattern/strategy-pattern.html 在策略模式&#xff08;Strategy Pattern&#xff09;…

【MySQL函数】:让你的数据库操作更高效(二)

前言 ✨欢迎来到小K的MySQL专栏&#xff0c;本节将为大家带来MySQL日期时间、条件判断、系统信息、加密、进制转换和IP地址转换函数的讲解✨ 目录 前言一、日期和时间函数二、条件判断函数三、系统信息函数四、加密函数五、进制转换函数六、IP地址转换函数七、总结 一、日期和时…

chatgpt赋能python:Python怎么直接打出两个括号?

Python怎么直接打出两个括号&#xff1f; 你是否曾经在使用Python编写代码时&#xff0c;需要频繁地输入括号&#xff1f;每次都需要输入Shift键和9/0键来输入左右两个括号&#xff0c;有时还会出现输入错误的情况。那么有没有一种更加快捷的方法来输入括号呢&#xff1f;答案…

【Python 随练】企业奖金计算器

题目&#xff1a; 企业发放的奖金根据利润提成。利润 &#xff1a; 低于或等于 10 万元时&#xff0c;奖金可提 10%&#xff1b;高于 10 万元&#xff0c;低于 20 万元时&#xff0c;低于 10 万元的部分按 10%提成&#xff0c;高于 10万元的部分&#xff0c;可提成7.5%&#…

PCIe卡设计方案:单路12Gsps 3G 带宽模拟信号源PCIe卡

一、板卡概述 单路3G带宽模拟信号源卡由DA子卡和PCIe底板组成&#xff0c;二者通过标准FMC连接器互联&#xff0c;可以实现将PCIe总线数据转换为一路高速的模拟量输出。北京太速科技板可广泛用于雷达、通信、光电领域的噪声信号、毛刺、脉冲信号模拟产生等领域。 二、 …

程序的性能优化实践总结——JAVA

文章目录 1、 衡量程序性能的指标2、Java 程序性能优化切入点3、获取程序的性能数据1、nmon:获取系统性能数据2、jvisualvm:获取JVM性能数据3、jmc:获取Java应用详细性能数据4、arthas:获取单个请求的调用链耗时5、wrk获取Web接口的性能数据 4、应用程序优化1、缓冲区2、缓存3、…

mlr3系列机器学习教程1–mlr3介绍.

mlr3包是既往mlr包的升级&#xff0c;mlr3包为大量的机器学习技术提供了一个通用的技术接口。mlr3不单单是一个包&#xff0c;而是一个生态系列&#xff0c;包括一系列机器学习的R包。 我们下导入mlr3包&#xff0c;使用R自带的汽车数据来做个简单的演示 library(mlr3) libra…

Nodejs一、初识

零、文章目录 Nodejs一、初识 1、初识 Node.js &#xff08;1&#xff09;回顾与思考 浏览器中的 JavaScript 的组成部分 为什么 JavaScript 可以在浏览器中被执行 为什么 JavaScript 可以操作 DOM 和 BOM 浏览器中的 JavaScript 运行环境 JavaScript 能否做后端开发&#…

HTMLCSS Day07 CSS Flex布局

文章目录 1.flex布局2.flex布局属性容器属性元素属性 3.flex弹性盒模型3.1.主轴3.2.沿主轴的排列处理3.3.flex-flow属性3.4.justify-content属性3.5.align-items属性3.6.align-content3.7 项目属性3.8.order3.9.flex-grow3.10.flex-shrink3.11.flex-basis3.12.flex3.13.align-s…