美文网首页
详解使用git和jmeter-maven-plugin管理jme

详解使用git和jmeter-maven-plugin管理jme

作者: 测试开发Kevin | 来源:发表于2022-06-01 10:54 被阅读0次

    上一篇文章中讲解了如何使用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内容如下:

    <?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 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文件。

    相关文章

      网友评论

          本文标题:详解使用git和jmeter-maven-plugin管理jme

          本文链接:https://www.haomeiwen.com/subject/zzwzprtx.html