
上一篇文章中讲解了如何使用jmeter进行接口测试以及落地的详解方案,详情参考: 干货!使用Jmeter落地接口测试的脚接口实现方案。 本文我们来继续这一话题,测试深入讲解如何通过git和jmeter-maven-plugin来管理jmeter脚本,详解以及其如何在接口持续集成测试中进行应用。使用 总体策略使用公司的脚接口gitlab管理jmeter脚本(maven工程),大家每次本地编辑脚本后都需要提交更新的测试脚本到gitlab。每个人只更新维护自己的详解脚本(避免引起冲突)。脚本提交前要确保脚本执行的使用正确性。只在主干工作,脚接口没有涉及到分支。测试后续使用jmeter-maven-plugin对jmx执行进行管理,详解这样方便了jmx接口测试脚本在持续集成中的使用应用(脚本编写人员无须关注)接下来会对git基础概念和jmeter-maven-plugin进行基础介绍: Git基础概念这部分讲解非常实用简单,即使大家是脚接口git小白,看了这篇文章也会快速上手git! Git 工作区、暂存区和版本库概念: 工作区:就是在电脑里能看到的目录,下图中的workspace。 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index),源码下载下图中的staging area。 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。 对应下图中的local repository(本地)和remote repository(远程,通常指github、gitlab) 
重点!重点!重点!对于git的各种命令使用记住上面这个图就可以了!!! 核心命令clone(克隆): 从远程仓库中克隆代码到本地仓库。checkout (检出):从本地仓库中检出一个仓库分支然后进行修订。add(添加): 在提交前先将代码提交到暂存区。commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本。fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到工作区,相当于 fetch+merge。push(推送) : 修改完成后,免费源码下载需要和团队成员共享代码时,将代码推送到远程仓库。初始化git init初始化仓库。 备注:使用git clone 无须初始化仓库。 提交代码到仓库git add [file1] [file2] ... 添加一个或多个文件到暂存区。git add [dir] 添加指定目录到暂存区,包括子目录。git add . 添加当前目录下的所有文件到暂存区,提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件。git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)。git add -A 提交所有变化。git commit -m 初始化项目版本 提交暂存区到本地仓库中:git commit -a 参数a设置修改文件后不需要执行 git add 命令,直接来提交。修改git status 查看仓库当前的状态,显示有变更的文件。git diff 比较文件的不同,即暂存区和工作区的差异。git diff <分支名1> <分支名2> :比较两个分支上最后 commit 的内容的差别。git diff --cached 或 git diff --staged:显示暂存区(已add但未commit文件)和最后一次commit(HEAD)之间的所有不相同文件的增删改。git diff HEAD:显示工作目录(已track但未add文件)和暂存区(已add但未commit文件)与最后一次commit之间的所有不相同文件的增删改。站群服务器git reset 回退版本。git rm 删除工作区文件。git mv 移动或重命名工作区文件。提交日志git log 查看历史提交记录。git blame <file> 以列表形式查看指定文件的历史修改记录。远程操作git remote 远程仓库操作。git fetch 从远程获取代码库。git pull 下载远程代码并合并。git push 上传远程代码并合并。Git 分支管理git branch 查看分支。git branch aa 添加分支aa。git checkout aa 切换到aa分支。git branch -d aa 删除aa分支。git branch -d aa 合并完后就可以删除分支。jmeter-maven-plugin管理jmx文件jmeter-maven-plugin实现了在maven项目中运行jmx文件进而批量执行jmeter脚本并生成测试报告的需求,这样在持续继承中运行jmx脚本就非常方便了,pom.xml内容如下: - 4.0.0 org.example JmeterAPI 1.0-SNAPSHOT - - - com.lazerycode.jmeter jmeter-maven-plugin 3.4.0 - - configuration - configure - jmeter-tests - jmeter - jmeter-check-results - results - true - Demo.jmx true </build>使用该插件核心有以下三点: 使用jmeter-maven-plugin,我们需要把所有的用例放在/src/test/jmeter目录下。运行脚本通过mvn clean verify。生成的日志和报告在工程目录 \target\jmeter,一个jmx脚本会生成一个报告。在pom.xml中,如果你想忽略某个jmx文件的运行,可以如下设置: <excludeJMeterTestFile>Demo.jmx</excludeJMeterTestFile>默认如果jmx执行过程中有错误,则会停止运行,pom中配置<ignoreResultFailures>true</ignoreResultFailures>则可以避免这个问题。 还有很多关于jmeter-maven-plugin的使用技巧等待大家自行探索,非常简单,参考: https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki 完全可以轻松搞定! Git管理脚本的具体应用具体执行步骤: 本机安装git环境,下载git bash并默认安装即可,官方链接如下: https://git-scm.com/downloads。 在git bash中可以使用linux命令进行相关操作,创建一个目录 
执行命令 git init,初始化git工程 执行命令 git pull 下载远程项目到本地(我们前一章节讲解的使用了jmeter-maven-plugin的maven项目) 进入工程目录。 /JmeterScript/YourAPIProject/src/test/jmeter通过jmeter编写接口用例,然后把本地jmx用例拷贝到目录 /JmeterScript/YourAPIProject/src/test/jmeter中,这样就实现了git 与maven项目的文件关联。 先后执行命令: git add 具体业务.jmx (只提交自己的jmx文件即可) git commit –m “提交信息”备注:首次提交需要执行命令。 git config --global user.email "you@example.com" git config --global user.name "Your Name"执行命令git push origin master 把脚本上传到gitlab(完成了脚本的上传工作)。 备注:如果只有自己维护代码大家只需要执行push 操作更新gitlab脚本即可;如果涉及多人共享,需要先执行git pull origin master,从gitlab获取最新代码,然后在进行编辑,最后提交。 运行jmx脚本我们可以定时构建使用了jmeter-maven-plugin的maven项目。 运行脚本通过mvn clean verify。生成的日志和报告在工程目录 \target\jmeter。分析日志和报告,判断接口的执行情况,这里需要写一些代码对生成的报告进行解析 ,在此就不详细介绍了。总结文章写了很多,但是总结起来其实很简单,主要包括以下四点: 把jmx放在maven的工程里,通过jmeter-maven-plugin管理jmx的运行策略。maven工程放到gitlab中,通过git上传下载工程文件。本地的jmx文件,通过git上传到gitlab中。通过构建maven工程运行jmx文件。 |