降本提效|JMeter二方包开发体验

背景

网关测试脚本使用 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>

今天的内容就分享到这里啦,感兴趣的可以自我实践下,有问题欢迎交流~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值