欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    JmeterJenkinsmaven接口自动化集成jqc.docx

    • 资源ID:48211960       资源大小:1.71MB        全文页数:38页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JmeterJenkinsmaven接口自动化集成jqc.docx

    Jmeter+Jenkins+maven接口自动化集成(V1.0) 目录Jmeter+Jenkins+maven接口自动化集成1软件版本说明3一、 JDK安装配置3二、 Maven安装配置31.1 Maven安装31.2设置环境变量31.3 maven配置5三、 Maven工程搭建92.1、eclipse创建maven工程92.2、Maven工程子目录创建102.3、Jmeter配置文件修改112.4、编辑pom.xml文件12四、 Jenkins集成193.1 Jekins 安装193.2 Jekins 配置193.3  jenkins新建一个maven风格的项目223.4  执行job立即构建27五、 附录28软件版本说明软件名称版本号下载地址JDK1.8 64bit Jenkins 2.89.4(LTS)https:/jenkins.io/download/ maven3.3.9http:/maven.apache.org/download.cgitomcat8.5.27https:/tomcat.apache.org/download-80.cgi 一、 JDK安装配置因为本次配套的Jmeter和Jenkins是基于JAVA语言开发的,需要JDK1.8支持,首选需要安装配置JDK1.8。 JDK安装配置详见附录手册。二、 Maven安装配置Maven是一个软件项目管理工具,管理java项目。我们最能感受到的Maven的好处应该是它的“自动化构建”与“管理依赖关系”两大功能。1.1、Maven安装将Maven包(apache-maven-3.3.9.zip)解压到对应目录,我这里放到D:java目录下。1.2、设置环境变量新建变量名MAVEN_HOME,变量值为maven包路径:MAVEN_HOME=D:javaapache-maven-3.3.9在PATH变量值末位追加:;%MAVEN_HOME%bin 。 验证是否配置成功打开cmd命令窗口 输入:MVN V,窗口打印出maven版本及环境信息,说明配置成功。1.3、maven配置默认maven是从公有仓库下载依赖jar包,如果公司有自己的私服,最好连上,这样下载jar会快点。 路径:D:javaapache-maven-3.3.9confsettings.xmlMaven配置文件:<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http:/maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http:/www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/maven.apache.org/SETTINGS/1.0.0 http:/maven.apache.org/xsd/settings-1.0.0.xsd"> <pluginGroups> <!- pluginGroup | Specifies a further group identifier to use for plugin lookup. <pluginGroup>com.your.plugins</pluginGroup> -> </pluginGroups> <mirrors> <!- mirror | Specifies a repository mirror site to use instead of a given repository. The repository that | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used | for inheritance and direct lookup purposes, and must be unique across the set of mirrors. | <mirror> <id>mirrorId</id> <mirrorOf>repositoryId</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url> </mirror> -> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http:/repo2.maven.org/maven2/</url> </mirror> <mirror> <id>mvnrepository</id> <name>mvnrepository maven</name> <url>http:/central.maven.org/maven2/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>net-cn</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url> </mirror> <mirror> <id>ui</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http:/uk.maven.org/maven2/</url> </mirror> <mirror> <id>ibiblio</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http:/mirrors.ibiblio.org/pub/mirrors/maven2/</url> </mirror> <mirror> <id>jboss-public-repository-group</id> <mirrorOf>central</mirrorOf> <name>JBoss Public Repository Group</name> <url>http:/repository.jboss.org/nexus/content/groups/public</url> </mirror> </mirrors> <profiles> <!- profile | Specifies a set of introductions to the build process, to be activated using one or more of the | mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/> | or the command line, profiles have to have an ID that is unique. | | An encouraged best practice for profile identification is to use a consistent naming convention | for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc. | This will make it more intuitive to understand what the set of introduced profiles is attempting | to accomplish, particularly when you only have a list of profile id's for debug. | | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo. <profile> <id>jdk-1.4</id> <activation> <jdk>1.4</jdk> </activation> <repositories> <repository> <id>jdk14</id> <name>Repository for JDK 1.4 builds</name> <url> <layout>default</layout> <snapshotPolicy>always</snapshotPolicy> </repository> </repositories> </profile> -> </profiles> <!- activeProfiles | List of profiles that are active for all builds. | <activeProfiles> <activeProfile>alwaysActiveProfile</activeProfile> <activeProfile>anotherAlwaysActiveProfile</activeProfile> </activeProfiles> -> <localRepository>D:javaapache-maven-3.3.9repo</localRepository> <!-localRepository>D:apache-maven-3.3.9repository</localRepository-></settings>三、 Maven工程搭建2.1、eclipse创建maven工程打开eclipse,新建 File->New->Project->Maven ProjectMaven工程需要输入groupId、artifactId、version、package。2.2、Maven工程子目录创建创建maven工程后,在工程目录下创建如下所需的文件夹 src/test/resources -存放报告模板文件 src/test/jmeter -存放jmeter配置文件及测试脚本说明:1)、这里的resource下放的是报告模板文件:jmeter-results-report-apitest.xsl,以及模板用到的资源文件:collapse.png和expand.png (D:apache-jmeter-3.3extras下复制过来的);2)、jmeter.properties是jmeter配置文件(D:apache-jmeter-3.3bin下复制过来的))后缀.jmx为jmeter脚本(后续只需要把本地调试通过的jmeter脚本放入如图这个目录就可以了);3)、如果properties文件有过更改,则把相关的propertie文件也复制到jmeter文件夹里,见上图,否则系统会使用默认的jmeter配置文件。2.3、Jmeter配置文件修改jmeter执行结果文件默认保存的不是xml格式,无法转化成html格式。jmeter执行结果文件默认有很多执行数据是不保存的,而测试报告需要这些数据。1) 去掉注释(#),修改csv为xml2) 添加jtl文件结果参数jmeter.save.saveservice.data_type=truejmeter.save.saveservice.label=truejmeter.save.saveservice.response_code=true# response_data is not currently supported for CSV outputjmeter.save.saveservice.response_data=true# Save ResponseData for failed samplesjmeter.save.saveservice.response_data.on_error=falsejmeter.save.saveservice.response_message=truejmeter.save.saveservice.successful=truejmeter.save.saveservice.thread_name=truejmeter.save.saveservice.time=truejmeter.save.saveservice.subresults=truejmeter.save.saveservice.assertions=truejmeter.save.saveservice.latency=truejmeter.save.saveservice.connect_time=truejmeter.save.saveservice.samplerData=truejmeter.save.saveservice.responseHeaders=truejmeter.save.saveservice.requestHeaders=truejmeter.save.saveservice.encoding=falsejmeter.save.saveservice.bytes=truejmeter.save.saveservice.url=truejmeter.save.saveservice.filename=truejmeter.save.saveservice.hostname=truejmeter.save.saveservice.thread_counts=truejmeter.save.saveservice.sample_count=truejmeter.save.saveservice.idle_time=true2.4、编辑pom.xml文件<?xml version="1.0"?><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>mavenjmeter</groupId> <artifactId>maven3jmeter</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>maven3jmeter</name> <url>http:/maven.apache.org</url> <properties> <!-指定Maven用什么编码来读取源码及文档 -> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <jmeter.result.jtl.dir>$env.WORKSPACE/Report/$env.BUILD_ID/jtl</jmeter.result.jtl.dir> <jmeter.result.html.dir>$env.WORKSPACE/Report/$env.BUILD_ID/html</jmeter.result.html.dir> </properties> <dependencies> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-core</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <!- 核心插件,用来执行jmx脚本,注意版本号,2.1.0可以使用jmeter3.1生成的脚本。最新的2.2.0使用jmeter3.2生成的脚本,2.5.1使用jmeter3.3生成的脚本 -> <groupId>com.lazerycode.jmeter</groupId> <artifactId>jmeter-maven-plugin</artifactId> <version>2.5.1</version> <configuration> <jmeterExtensions> <!- jmeter扩展插件 json path assert -> <artifact>kg.apc:jmeter-plugins-json:2.6</artifact> </jmeterExtensions> <!- 设置jmeter生成结果文件格式-> <resultsFileFormat>xml</resultsFileFormat> <!- 设置忽略失败是否停止运行-> <ignoreResultFailures>true</ignoreResultFailures> <!-设置结果是否有时间戳-> <testResultsTimestamp>false</testResultsTimestamp> <testFilesIncluded> <!- /指定运行的jmeter脚本 -> <jMeterTestFile>testdemo.jmx</jMeterTestFile> <!- 指定jtl生成目录 -> <resultsDirectory>$jmeter.result.jtl.dir</resultsDirectory> </configuration> <executions> <execution> <id>jmeter-tests</id> <phase>verify</phase> <!-脚本所在的文件夹 -> <goals> <goal>jmeter</goal> </goals> </execution> </executions> </plugin> <plugin> <!-根据xsl模版把jtl文件转换成html,官网地址: http:/www.mojohaus.org/xml-maven-plugin/examples/transform-saxon.html-> <groupId>org.codehaus.mojo</groupId> <artifactId>xml-maven-plugin</artifactId> <version>1.0.1</version> <executions> <execution> <phase>verify</phase> <goals> <goal>transform</goal> </goals> </execution> </executions> <configuration> <transformationSets> <!- 可以根据不同的模版,同时生成多个报告-> <transformationSet> <dir>$jmeter.result.jtl.dir</dir> <stylesheet>srctestresourcesjmeter-results-report-apitest.xsl</stylesheet> <outputDir>$jmeter.result.html.dir</outputDir> <!- 把jtl格式转传承html -> <fileMappers> <fileMapper implementation="ponents.io.filemappers.FileExtensionMapper"> <targetExtension>html</targetExtension> </fileMapper> </fileMappers> </transformationSet> </transformationSets> </configuration> <!- using XSLT 2.0 -> <dependencies> <dependency> <groupId>net.sf.saxon</groupId> <artifactId>saxon</artifactId> <version>8.7</version> </dependency> </dependencies> </plugin> </plugins> </build></project>Maven配置说明:jmeter.result.jtl.dir -生成.jtl格式的测试报告路径jmeter.result.html.dir -生成.html格式的测试报告路径jmeter-maven-plugin -jmeter执行jmx脚本核心插件jmeterExtensions -配置jmeter扩展依赖包kg.apc:jmeter-plugins-json:2.6 -jmeter用来做json数据断言用的插件testFilesDirectory -指定jmx文件夹testFilesIncluded -指定可执行测试脚本testFilesExcluded -指定不可执行测试脚本3) 调试工程,确保工程能正常运行5) 把工程代码上传到svn上。 其中srctestjmeter目录下专门存放jmeter脚本,以后开发好的脚本可以上传到这里。2.5、集成第三方扩展插件Maven 配置pom.xml文件<jmeterExtensions>节点用来配置依赖包。自己公司开发的jar包没有注册到Maven公有仓库,我们无法获取到,那我们需要注册本地就可以通过配置调用到。增加jar包,需要先将jar注册到本地maven仓库,打开cmd使用如下命令:mvn install:install-file -Dfile=D:javapomjmeter-plugins-json.jar -DgroupId=com.jmeter.chajian -DartifactId=jmeter-plugins-json -Dversion=2.6 -Dpackaging=jar四、 Jenkins集成3.1、Jekins 安装这里将下载好的jenkins.war放进tomcat/webapps目录下,启动tomcat的startup.bat。登入http:/localhost:8080/jenkins,进入Jenkins。Jenkins详细安装说明,请参考附录手册。3.2、Jekins 配置l 全局工具配置路径:系统管理-全局工具配置l 邮件配置路径:系统管理-系统设置l 插件安装路径:系统管理-插件管理安装插件:Subversion、Performance Plugin、HTML Publisher plugin、Email Extension Plugin、Email Ext Recipients Column Plugin、Groovy Label Assignment plugin。勾选如上必须要安装的插件,点击直接安装。3.3、jenkins新建一个maven风格的项目因为Jenkins安全默认是把如下功能都关闭了,需要 Groovy 插件执行 Groovy 脚本开启。1、 javascript2、html上的内置插件3、内置css或从其它网站的css4、从其它网站的图片5、AJAX构建配置时,勾选如下Groovy脚本,每次构建后执行这段脚本开启如上功能。System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")SVN配置配置jmeter接口脚本工程地址,以及鉴权用户密码。构建配置定时构建在【配置】页面中,下拉到【构建触发器】,在这里有两个可选选项,分别是“Build periodically”和“Poll SCM”,它们的特点如下:l Build periodically无论SVN中数据有无变化,均执行定时化的构建任务l Poll SCM定时轮询SVN,查看SVN中是否有数据变化,如果有变化,则执行构建任务l 定时构建语法* * * * *(五颗星,中间用空格隔开)第一颗*表示分钟,取值059第二颗*表示小时,取值023第三颗*表示一个月的第几天,取值131第四颗*表示第几月,取值112第五颗*表示一周中的第几天,取值07,其中0和7代表的都是周日1.每30分钟构建一次:H/30 * * * *2.每2个小时构建一次H H/2 * * *3.每天早上8点构建一次0 8 * * *4.每天的8点,12点,22点,一天构建3次0 8,12,22 * * *(多个时间点,中间用逗号隔开)如下图示例:至于接口脚本什么时候自动执行,具体依据实际情况设定。有些基础接口可能需要定时进行接口轮训检查,就需要设置定时任务,一次性测试的接口不宜设置。邮件通知设置-E-mail Notification构建后操作邮件通知配置邮件高级配置新增Triggers 设置为Always邮件标题:【接口测试报告】$PROJECT_NAME - $BUILD_STATUS - Build # $BUILD_NUMBER!邮件内容:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>$PROJECT_NAME-第$BUILD_NUMBER次构建日志</title> </head> <body size="4" leftmargin="8" marginwidth="0" topmargin="8" margin

    注意事项

    本文(JmeterJenkinsmaven接口自动化集成jqc.docx)为本站会员(jix****n11)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开