企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

详解使用git和jmeter-maven-plugin管理jmeter脚本的接口测试方案

wudianyun 2025-03-05 22:09:52 精选文章 23 ℃



上一篇文章中讲解了如何使用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 以列表形式查看指定文件的历史修改记录

远程操作

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




使用该插件核心有以下三点:

  • 使用jmeter-maven-plugin,我们需要把所有的用例放在/src/test/jmeter目录下
  • 运行脚本通过mvn clean verify
  • 生成的日志和报告在工程目录 \target\jmeter,一个jmx脚本会生成一个报告

在pom.xml中,如果你想忽略某个jmx文件的运行,可以如下设置:

Demo.jmx

默认如果jmx执行过程中有错误,则会停止运行,pom中配置true则可以避免这个问题。

还有很多关于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文件。

Tags:

最近发表
标签列表