背景
网关测试脚本使用 JMeter书写繁琐,繁琐的原因是参数的组装,体现在以下 2 个方面:
1、head 参数
2、body 参数
示例配图
第一步
第二步
第三步
第四步
第五步
改之前需要 5 步,才能完成,且参数变化后,会发现需要调整的步骤也多; 我们优化的方向是希望过程更简练,修改更集中,减少缺漏的概率。
优化后,只需要 3 步即可完成, 一步参数,一步执行,一步断言,信息更集中,更改更方便,为了使其生效,直接将这里的二方包放在了 jmeter 目录下的 lib/ext 下
优化结果
第一步
第二步
第三步
实现思路
核心在于通过将过程抽象封装出来并输出一个可执行的 jar 包
具体步骤:通过创建一个 maven 工程,打包成 jar 包,然后丢到 jmeter 的 lib/ext 目录下,全局访问,这部分就不再重点赘述了,这里重点说下如果这个 jar 包里面依赖了其他包,怎么处理呢?重点如下在 pom.xml里面加好如下配置
<build>
<plugins>
<!-- 配置将依赖包一并打入到项目的 jar 包中 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<archive>
<manifest>
<mainClass></mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<excludeTransitive>false</excludeTransitive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
今天的内容就分享到这里啦,感兴趣的可以自我实践下,有问题欢迎交流~