Jmeter+Maven+Jenkins+Git接口自动化流程

  最近在实现 Jmeter+Maven+Jenkins+Git 接口自动化,研究不到两周,实现了 Jmeter+Maven+Jenkins+Git  接口自动化 的整体流程。 仅以此博客简单记录下自己实现的过程。

一. 职责、角色明确

  Jmeter: 执行者,录制接口测试脚本,运行脚本,得到结果,生成报告,统计数据;

  Maven,Git :管理者, Maven 主要负责项目的依赖管理,Git 主要负责项目的代码管理;

  Jenkins:调度者,持续集成(CI)工具;构建、部署自动化;可以持续编译,运行代码;运行UT或集成测试;将运行结果发送至邮件,或展示成报告。

二. 接口自动化意义

  基本上来说,有这么几点好处:提供测试效率;  完成手工测试复杂,但对自动化测试很简单的事 ;  反复执行; 提高维持测试覆盖度;日常巡检;

三. 环境准备

想要全部实现,首先需要确保环境是ok的。jdk,jmeter,maven,git,jenkins 都需要是ok的。

3.1. java环境:java包安装,配置环境变量

cmd中 输入 java -version,显示java版本即安装成功

Java下载地址连接:https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html

3.2  Jmeter安装

  Jmeter下载:http://jmeter.apache.org/download_jmeter.cgi

  jmeter下载压缩包后,解压,配置环境变量。

  即可使用 验证cmd,输入jmeter -v,显示jmeter版本,jmeter可正常使用。

3.3 Maven

  maven 下载链接:http://maven.apache.org/download.cgi

  选择 二进制zip存档链接,下载解压,安装;

  配置环境变量,MAVEN_HOME;将%MAVEN_HOME%\bin添加到Path变量下

  验证:cmd中输入 mvn -v

maven运行,需要安装maven IDE插件--eclipse:下载安装链接: https://www.runoob.com/eclipse/eclipse-install.html,安装neon版本。 (具体安装,不再详述)

3.4 git

  git 下载: http://git-scm.com/downloads

  git安装完成后,在菜单git-git bash,点击,显示一个类似命令行窗口的东西,说明git安装成功。

其中git 安装完毕后,需要进行ssh连接,才能使用。 稍微,git的ssh 认证单独写一篇。

3.5 Jenkins, 如果公司有运维,一般是运维在服务器上安装Jenkins,然后给相关人员 公司jenkins地址链接,同时每个人的用户名与密码。

当然,没有运维,自己电脑上也可以安装本地jenkins,进行自动化的构建。

下面进入本篇的正题:接口自动化 整体流程。。  自动化流程 -----key

一、使用jmeter 进行接口脚本准备,脚本运行通过,保存脚本jmx,导出。

二、使用eclipse 创建Maven项目 eclipse打开--file---New--other,

Select a wizard,选择Maven--Maven project,点击next。

界面进入New Maven Project,选择 第二个:User default Workspace location:使用本地默认的工作空间

默认使用第2 个,点击next。界面进入New Maven project,Catalog,Filter 选择 Artifact Id: maven-archetype-webapp,版本1.0,点击next、

其中Group Id:组Id,针对一个项目的普遍唯一识别符。是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构,相当于我们日常使用的包名,例如:org.hhh,最好是填写公司或者组织名称 com.company Artifact Id:要新建的项目的名字,项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称 Version:版本号,默认0.0.1-SNAPSHOT。 package:输入group、artifact,会自动生成package,目录+名字=完整路径。输入group,artifact,点击next,生成maven项目 注意:group id+artifact id+version必须是一个唯一的名字,不要和任何别的jar包全名一模一样,否则会引发冲突。

使用eclipse,创建maven项目、成功。

使用eclipse 创建maven项目,只会自动生成src/main/resources 和target/classes, target/test-classes,需要自己手动添加其他目录,并且指定项目的source以及编译后的输出目录。 使用eclipse运行接口测试脚本,选择project 右击----run as ------maven build,然后再弹出的对话框Goals 写上verify,--run。运行后会有测试结果文件,显示BUILD SUCCESS,即为运行成功。

二)、Maven项目约定

Maven中使用项目约定,它约定Java源代码放在哪个目录,约定编译的class文件放在哪个目录,约定资源或配置文件放在哪个目录,每一种文件的存放目录都有着明确的约定,下面是Maven的项目约定结构图:

MavenProject(项目根目录)

|----src —— 源代码目录    |

  |----main        ----  开发使用

    |----java —— 存放项目的.java文件

    |----resources —— 存放项目资源文件,如spring、hibernate配置文件    |      |

    |----webapp ---如果是web项目则需要该目录,存放WEB-INF目录、web.xml、jsp、html、js等文件    |

  |----test -----测试 主用

    |----java —— 存放所有测试.java文件,如JUnit测试类

    |----resources —— 存放项目测试用的资源文件,如spring, hibernate配置文件

|----target —— 项目输出目录,存放经过编译的class文件和打包部署的jar包等

|----pom.xml —— 定义项目的对象模型,同时标识该项目是一个Maven项目

三)、本地构建Maven项目

1.在src下手动新建test目录,src/test目录下新建jmeter文件夹,把准备好的jmeter接口测试的jmx脚本复制到这个文件夹下

2.在src/test目录下创建resources文件夹,并把测试模板(E:\apache-jmeter-5.1\apache-jmeter-5.1\extras的如下文件)复制到这个resources文件下

文件1:jmeter-results-detail-report_21.xsl

文件2:jmeter-results-report_21.xsl

3.将下面五个文件从jmeter/bin目录复制到 src/test/jmeter文件夹

文件1 :jmeter.properties

文件2:saveservice.properties

文件3:system.properties

文件4:upgrade.properties

文件5:user.properties

四)、关键点:pom.xml 配置文件 -------构建 Maven项目中最重要的一个文件

pom 配置文件,maven项目生成时 ,pom文件中是有一部分内容的。 我们主要是在pom 文件中增加各种插件

4.1 测试报告---html地址配置。properties 增加在dependencies依赖之前

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<jmeter.result.jtl.dir>${project.build.directory}/jmeter/results</jmeter.result.jtl.dir >

<jmeter.result.html.dir>${project.build.directory}/jmeter/html</jmeter.result.html.dir > <jmeter.result.html.dir1>${project.build.directory}/jmeter/html1</jmeter.result.html.dir1>

<ReportName>TestReport</ReportName>

</properties>

其中需要注意,多个报告时, html 与 html1, dir 与dir1。 如果设置一样,生成报告 可能会存在 报告一致的情况。

其他插件增加在 dependencies依赖 build finalName 后

测试报告configuration中的 transformationSets配置

<dir>${jmeter.result.jtl.dir}</dir>

<stylesheet>src/test/resources/jmeter-results-detail-report_21.xsl</stylesheet>

<outputDir>${jmeter.result.html.dir}</outputDir>

<fileMappers>

<fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper"> <targetExtension>html</targetExtension> </fileMapper> </fileMappers>

核心插件jmeter -maven-plugin     --------核心插件

<plugin>

<groupId>com.lazerycode.jmeter</groupId>

<artifactId>jmeter-maven-plugin</artifactId>

<version>2.4.1</version>

<configuration>

<resultsFileFormat>xml</resultsFileFormat>

<ignoreResultFailures>true</ignoreResultFailures>

<ignoreResultErrors>false</ignoreResultErrors>

<testResultsTimestamp>false</testResultsTimestamp>

<resultsDirectory>${jmeter.result.jtl.dir}</resultsDirectory>

</configuration>

<executions>

<execution> <id>jmeter-tests</id>

<phase>verify</phase>

</plugin>

<goals>

<goal>jmeter</goal>

</goals>

</execution>

</executions>

此核心插件:用来执行jmx脚本,版本号特别注意。 上一页与本页是 该核心插件。其中配置解释 resultsFileFormat:设置jmeter生成结果文件格式; ignoreResultFailures:设置忽略失败是否停止运行; ignoreResultErrors:设置忽略错误是否停止运行 testResultsTimestamp:设置结果是否有时间戳 resultsDirectory: 指定jtl 生成目录。

脚本所在文件夹

<executions>

<execution>

<id>jmeter-tests</id>

<phase>verify</phase>

<goals>

<goal>jmeter</goal>

</goals>

</execution>

</executions>

插件 xml-maven-plugin, 配置文件中: (该插件:根据xsl模板把jtl文件转换成html) ?

<groupId>org.codehaus.mojo</groupId>

<artifactId>xml-maven-plugin</artifactId>

<version>1.0.2</version>

<executions>

<execution>

<phase>verify</phase>

<goals>

<goal>transform</goal>

</goals>

</execution>

</executions>

<configuration>

xml 插件的configuration 中配置两个报告 transformationSet ,每个报告中包括dir,stylesheet,outputDir,报告配置如下

<transformationSet>

<dir>${jmeter.result.jtl.dir}</dir>

<stylesheet>src/test/resources/jmeter-results-detail-report_21.xsl</stylesheet>

<outputDir>${jmeter.result.html.dir}</outputDir>

<fileMappers>

<fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">

<targetExtension>html</targetExtension> </fileMapper>

</fileMappers>

</transformationSet>

注意:多个报告时,报告的stylesheet、outputDir 必须不能一致。stylesteet 是指定的报告样式,可以自己网上下载样式,放置jmeter 相关文件中,这里写上;也可以使用jmeter 包中现有的 报告样式; 另外,jmeter的配置文件,其实可以进行修改 代码,来获得自己想要的报告样式;

最后一个插件,XSLT插件  (忘记这个插件是什么作用了)

<dependency>

<groupId>net.sf.saxon</groupId>

<artifactId>saxon</artifactId>

<version>8.7</version>

</dependency>

基本以上,是所有的pom 中需要配置的插件。 代码需要自己输入,粘贴会出现 缩进等问题

五)、eclipse运行接口测试脚本

运行接口测试脚本

选择project 右击----run as ------maven build,然后再弹出的对话框Goals 写上verify,--run。

运行后会有测试结果文件。运行,console中等待运行完毕,显示build success,即运行成功。

脚本构建成功,在target中生成报告,target中 jmeter/html 中是生成的报告。

如果有多维度报告,jmeter会存在多个html。

注意问题:如果需要生成多个报告,pom.xml文件中html的transformationSet 中,stylesheet 配置两个报告模板,生成html报表文件路径outputDir 不能重复,一个dir,一个dir1 到此,jmeter + maven项目,本地已经构建成功。可成功生成报告。

三、Jenkins   本地下载安装

https://jenkins.io/download/ 官网下载安装;

坑一:jenkins中新建项目 没有一个 “创建一个Maven项目”的选项

解决:需要安装Maven 项目插件:Maven Integration.

系统管理---管理插件--可选插件,搜索框中输入插件名Maven Integration,搜索到,点击安装,安装完毕重启,重启ok。

jenkins 构建maven本地项目

Maven项目本地调试通过,在cmd中切换到maven 项目 的pom.xml 所在路径, 执行mvn clean install ,显示BUILD SUCCESS----执行成功

jenkins中 Manage Jenkins, Glogal Tool Configuration, 配置jdk,

其中,install automatically ,如果想使用本地jdk,可以不勾选。

写上本地jdk 版本号,jdk 本地安装路径 maven 使用本地maven的话,同样不勾选,install automatically ,写上本地maven 版本号,本地maven 安装路径。

配置完成,点击应用。 (本地jenkins,JDK,maven需要自己配置。 公司服务器,jenkins 基础服务运维负责)

Jenkins 本地构建

jenkins新建项目----maven项目,构建Maven项目,

General:输入简单的描述               源码管理:None

Pre Steps:Execute Windows batch command

命令:  (cmd 命令窗口框中的命令一致,即可。)

cd C:\Maven\MavenProject\testOne

mvn clean install

Build

Root POM: C:\Maven\MavenProject\testOne\pom.xml

点击:应用。

即可 应用,构建的时候,起作用。

点击构建,点击build 下的本次构建的进度条,--console output,查看日志,日志最后Finish success,即构建成功。 构建失败,同样可以在日志中查看错误。

二)、Jenkins Html测试报告

系统管理---- 插件管理-- 可选插件,下载HTML Publisher。 (本地jenkins需要,公司jenkins,运维)

构建项目,构建后操作-----Publish HTML reports 构建后操作-----Publish HTML reports,

HTML directory to archive: target\jmeter\html (jenkins本地项目可使用路径,一般连接公司jenkins时,默认所在位置:当前项目目录,所以直接输入当前目录后路径即可)

index page:index.html

Report title: 测试报告

三)Jenkins 邮件通知

Email Extension Plugin 插件

系统管理---系统设置,在系统设置中找到Jenkins Locaction 填好JenkinsURL 跟系统管理员的邮件地址,注意必填。

邮件通知--点击高级配置 QQ邮箱smtp服务器地址:**smtp.qq.com** (qq邮箱要登陆邮箱→设置→账户 开启SMTP服务) 使用SMTP认证,勾选。

jenkins 邮件通知输入,

用户名:输入自己的QQ

密码:Q邮箱的话,是你开启smtp服务后他会给你密码的,而不是你的QQ邮箱密码了。

端口号:465 勾选通发送测试邮件测试配置 ,Test configuration 点击,测试是否配置成功。 如果email 显示成功,则测试 邮件发送成功。

注意:邮件端口号:一定 465,其他,邮件通知发送不成功。

四、 Jmeter + Maven + Jenkins + Git

本地代码放置git上,代码同步;

源码管理,选择Git,输入git 上该项目http地址,输入git用户名、密码

需要配置--general、源码管理、构建触发器、Build、Post Steps、构建设置(E-mail Notification)、 构建后操作(html报告,邮件Edirtable Email Notification)--- 搞定。

使用 git中代码,Pre Steps 就不需要输入命令。 ---build 中 pom + goals 命令就可以了 (使用公司服务jenkins,一般jenkins各种系统配置运维会配置。个人拿到自己的账号、密码,登录成功,就可以构建自己的自动化项目了)

Build中,root Pom 输入maven 项目 ./pom.xml Goals and options :clean verify

Post Steps

构建三个选择---可根据需要设置

构建设置:邮箱设置,多个邮箱,英文空格为间隔。选择第一、第三 ------(可根据自己实际需要进行设置) 每一次不稳定的构建、每一次失败的构建--都需发送邮件

构建后操作 构建后 HTML 报告,报告路径:target/jmeter/html index page:多个jmx 脚本,多个报告时,以英文逗号隔开 Report title:jenkins运行完毕脚本后,显示的报告title

构建后邮件设置

构建后邮件-Editable Email Notification

勾选 Project Recipient List :[email protected] [email protected] (邮件接收人,多个接收人时可空格/逗号 隔开)

Project Reply-To List : $DEFAULT_REPLYTO

Content Type :HTML(text/html) ---- 邮件 中内容格式

Default Subject : $DEFAULT_SUBJECT

Default Content : $DEFAULT_CONTENT

Advanced Setting:点击 (高级配置)

Pre-send Script :$DEFAULT_PRESEND_SCRIPT

Post-send Script: $DEFAULT_POSTSEND_SCRIPT

Triggers , 勾选 Always, send to --勾选 Recipient List, 高级--点击

展开中: Recipient List :收件人

Reply-To List: $PROJECT_DEFAULT_REPLYTO (回复列表)

Content Type:HTML(text/html)

Subject: 【接口测试报告】$PROJECT_NAME - $BUILD_STATUS - Build #$BUILD_NUMBER!

subject--邮件标题

Content:邮件中内容,是一段 html 代码。

点击应用。。

到目前为止,jmeter + maven +jenkins +git,项目已全部增加。

jenkins中点击testone,进入;

点击左侧--立即构建,下面显示构建进度条 进度条走完,变成 蓝色球:构建成功;

变成灰色球,构建失败;

构建过程中,点击 该次构建,进入本次构建详情页, 构建详情页中,左侧有控制台输出,点击进入可查看 构建日志 构建完毕,收件人邮箱收到 本次构建结果。

原文地址:https://www.cnblogs.com/MTXue/p/11209268.html

时间: 2024-11-24 13:06:00

Jmeter+Maven+Jenkins+Git接口自动化流程的相关文章

Jmeter +Maven+jenkins+eclipse 接口自动化测试

背景: 首先用jmeter录制或者书写性能测试的脚本,用maven添加相关依赖,把性能测试的代码提交到github,在jenkins配置git下载性能测试的代码,配置运行脚本和测试报告,配置运行失败自动发邮件通知,这样一来性能测试的job配置完成.接着,把性能测试的job配置成开发job的下游job,一旦开发有了新的代码提交运行开发自己的job后,就会自动触发我们性能测试的job.这样我们就实现了接口性能测试的全自动化,我们只需要关注测试失败的邮件! 1 环境搭建 下载安装 jdk &eclip

Jmeter+maven+Jenkins构建云性能测试平台(mark 推荐)

转自:http://www.cnblogs.com/victorcai0922/archive/2012/06/20/2555502.html Jmeter+maven+Jenkins构建云性能测试平台(一) 最近在利用Jmeter来做一套自动化性能测试框架,做自动化性能测试框架的目的 是希望能够针对系统做一个benchmark的性能测试,能够快速的在每个版本发布后,对该版本进行benchmark性能测试,以比较与上一个版本的性 能是否发生变化,若发生变化便可以快速的通知开发人员以确定性能发生变

postman+newman+node.js+git+jenkins实现接口自动化持续集成

缺少的配图会在后期慢慢更新出来 1 首先我们来说说postman+newman+node.js+git+jenkins它们之间的关系.首先jenkins只支持命令行模式,包含win的和linux的.postman的命令行运行环境是newman,而newman又依赖于node.js. 2 以上软件都是开源的,大家百度一下很容易找到. jenkins 地址 https://jenkins.io/download/ 其中jenkins下载war包放入tomcat启动. 在配置上win环境和linux配

使用jmeter+ant+jenkins实现接口自动化测试

本次使用linux环境搭建自动化框架 配置ANT ?首先下载Ant压缩包,下载地址https://ant.apache.org/bindownload.cgi?解压下载的ant包,然后复制jmeter/extras下的ant-jmeter-1.1.1.jar文件放到ant的lib目录?然后对该文件进行压缩,然后使用rz命令上传zip压缩包?上传成功之后,使用unzip apache-ant-1.10.5.zip 命令解压到当前文件夹,使用pwd查看当前文件路径,需要在jenkins配置用到?然后

Jmeter + ant + jenkins轻量级接口自动化测试

需要安装的工具: jdk1.8 jmeter3.2 ant1.9 jenkins2.1 1.Jdk 安装包安装 设置环境变量 验证是否安装正确 Java -version检查,如下就代表安装成功了,环境变量设置就去搜索了,网上很多. 2.Jmeter jmeter直接下载解压,然后配置环境变量就可以了 3.ANT Ant下载解压,配置环境变量,一样的操作.           window中设置ant环境变量:           以下是我电脑ant配置 ANT_HOME    D:\apach

使用postman+newman+jenkins实现接口自动化 (待更新~)

一.环境准备 安装好node.js  安装好newman  二.本机调试脚本 了解命令行执行脚本    从postman导出脚本-->本机调试生成报告 1~2操作步骤包含本地newman生成html:https://www.cnblogs.com/miaomiaoka/p/11168642.html 将本地脚本 导出到github上,通过github在jenkins添加 1.Github新建一个远程仓库 点击加号,选择[new repository]  2.创建完成 复制 3.Cmd命令行 cd

python(pytest)+allure+jenkins 实现接口自动化的思路

效果图镇楼: 上述各模块作用: python(pytest): 1:用于读测试用例(本次用例写在csv文件中) 2:环境配置相关 3:提取1中的测试数据,组成请求体 4:发送请求 5:获取结果 6:断言生成测试结果 allure: 将测试结果以页面形式展示出来 jenkins: 1:集成pytest和allure 2:参数化构建 3:持续定期构建 先写这些了,下班.. 原文地址:https://www.cnblogs.com/wanghouxuan/p/10367074.html

Java+TestNG+Maven+Excel+IDEA接口自动化入门(一)环境配置

前置: 1.本机环境安装了maven并配置环境变量 2.本机环境安装了IDEA软件 3.本机环境安装了Java jdk 8版本 4.有一定java和maven基础 因为以上网上例子很多,就不再重复赘述了 一.新建maven项目,在生成的pom.xml中配置所需jar包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0

jmeter+maven+jenkins报告优化(一):添加90% line和QPS

问题:默认jmeter-results-detail-report_21.xsl报告比较简陋,想要添加一些参数怎么办? 添加90% Line模板 <xsl:template name="max"> <xsl:param name="nodes" select="/.." /> <xsl:choose> <xsl:when test="not($nodes)">NaN</xs