springgateway二次请求转发_JMeter二次开发指南(四) Assertion(上)

本文介绍了如何在JMeter中创建自定义Assertion,用于SpringGateway二次请求转发的校验。通过创建MyAssertion类实现Assertion接口,进行响应数据的数字校验。同时,讲解了创建AssertionGui类以设置显示标签,并指导如何运行和使用生成的jar包。
摘要由CSDN通过智能技术生成

7a1d5fb7467abccba7575837b9d94cbd.png

一、概述

JMeter自带的Assertion功能已经可以满足绝大多数的场景,但是有时候我们可能需要进行一些比较复杂的校验,例如有些包括业务逻辑的校验,此类校验也可以通过BeanShell Assertion的方式来做,但如果代码量较大,且需要多次使用的话,我们不妨新建一个自定义的Assertion,只需要暴露个别参数即可使用,这样脚本的风格会更加的清晰。

下面我们会分两篇用两个例子,来给大家进行介绍。

二、创建Assertion

这个例子中我们将创建一个最简单的Assertion,不需要在页面上GUI中填写任何内容,默认获取响应数据并校验其是否为数字。

在src/components下的org.apache.jmeter.assertions包下创建类MyAssertion。可以看到我们的MyAssertion类继承自AbstractTestElement并实现了Assertion接口,我们需要做的就是去实现getResult方法。

62cfc3438cc9bc78f6eba03fad2f6398.png

其中参数response对应的是各类Sampler中的SampleResult,可以参考上一篇JavaSampler中的runTest方法,我们可以获取SampleResult中ResponseCode、ResponseData等内容,并用于校验。此外,我们需要做的就是根据不同情况,设置AssertionResult的值。

9f8ce826c3fb59662f0396c1b9c649f2.png

在src/components下的org.apache.jmeter.assertions.gui包下创建类MyAssertionGui类。可以看到我们的MyAssertionGui类继承自AbstractAssertionGui,我们需要做的就是去实现以下3个方法

6dc3901ee121459bccccb12d1f7ec4dd.png

1、getLabelResource

用于显示监听器中的lable,其中my_assertion_title2需要在国际化文件中添加对应的内容,国际化文件在/src/core/src/main/resources/org/apache/jmeter/resources目录下

84719f1eeee3594a82ada0f0d44f31cd.png

2、createTestElement

这边需要注意的是需要new对应的Assertion类。

08f11a0206d62a0f4dd478d2560af3e4.png

3、modifyTestElement

这个没什么好说的,直接复制就行。

5ead95f86d4f1081a86e3b7a0e05aa76.png

4、annotation

此外我们可以通过annotation设置Assertion的位置及名称

f2694306a2d50c62ad6ca879406bcf5b.png

9b00140ff05501fae4881ea6e8a18f0a.png

0c67c6f87e191baffe0ac6986457a41e.png

55c8c4ee41da86ae70b61dd2bcfe7b75.png

da70302ffa89cc355a6cb7b369083452.png

三、运行

直接通过runGui启动就行,不清楚的同学可以参考<环境搭建篇>。新建一个Java请求,选择我们刚刚创建的MyAssertion,我们可以在java sampler的ResultData中填入数字或非数字内容进行测试。

570f729064c9bd53ffbde40f69c90f73.png

此外,生成的jar包为jmeter/lib/ext/ApacheJMeter_components.jar,如果其他小伙伴需要用的话,直接将此文件覆盖原有文件即可。

四、总结

上简单为大家介绍了一下JMeter中Assertion的二次开发,本例中没有涉及到在Assertion中填写数据并在代码中获取的内容,此部分内容涉及到java swing的内容,因此未做展开,此部分内容将会在下一篇中为大家介绍。如果大家还有别的什么问题,可以在评论中留言。

每一篇文章都来自鲁德精心原创,如果文章能帮到你,欢迎转发和点赞,让更多的朋友受益!跟着鲁德一起,每天进步一点点,终会质变!让你面试拿高薪!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值