社区编辑申请
注册/登录
详解使用Git和Jmeter-Maven-Plugin管理Jmeter脚本的接口测试方案
开发 前端
本文我们来继续这一话题,深入讲解如何通过git和jmeter-maven-plugin来管理jmeter脚本,以及其如何在接口持续集成测试中进行应用。

上一篇文章中讲解了如何使用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和jmeter-maven-plugin管理jmeter脚本的接口测试方案

重点!重点!重点!对于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内容如下:

<?xml version="1.0" encoding="UTF-8"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>JmeterAPI</artifactId>
<version>1.0-SNAPSHOT</version>
-<build>
-<plugins>
-<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>3.4.0</version>
-<executions>
<!-- Generate JMeter configuration -->
-<execution>
<id>configuration</id>
-<goals>
<goal>configure</goal>
</goals>
</execution>
<!-- Run JMeter tests -->
-<execution>
<id>jmeter-tests</id>
-<goals>
<goal>jmeter</goal>
</goals>
</execution>
<!-- Fail build on errors in test -->
-<execution>
<id>jmeter-check-results</id>
-<goals>
<goal>results</goal>
</goals>
</execution>
</executions>
-<configuration>
<generateReports>true</generateReports>
-<testFilesExcluded>
<excludeJMeterTestFile>Demo.jmx</excludeJMeterTestFile>
<ignoreResultFailures>true</ignoreResultFailures>
</testFilesExcluded>
</configuration>
</plugin>
</plugins>
</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和jmeter-maven-plugin管理jmeter脚本的接口测试方案

执行命令 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文件。
责任编辑:姜华 来源: 今日头条

同话题下的热门内容

如何创建一个无代码的自助客户聊天机器人Java 服务 Docker 容器化优秀实践程序员不得不知道的 API 接口常识如何提高 TypeScript 的代码质量?聊聊 13 种锁的实现方式11个 ES2022(ES13)中惊人的 JavaScript 新特性使用 Vite 和 TypeScript 带你从零打造一个属于自己的 Vue3 组件库Hooks时代,如何写出高质量的react和vue组件?

编辑推荐

太厉害了,终于有人能把TCP/IP协议讲的明明白白了!牛人5次面试腾讯不成功的经验HBase原理–所有Region切分的细节都在这里了Javascript如何监听页面刷新和关闭事件如何搭建一个HTTPS服务端
我收藏的内容
点赞
收藏

51CTO技术栈公众号