当前位置:网站首页>Jmeter自带函数不够用?不如自己动手开发一个
Jmeter自带函数不够用?不如自己动手开发一个
2022-07-07 01:11:00 【码同学软件测试】
在Jmeter的函数助手里,有很多内置的函数,比如Random、UUID、time等等。使用这些函数可以快速帮我们生成某些数据,进行一些逻辑处理。用起来非常的方便。
但是在实际接口测试过程中,有很多的需求,Jmeter内置的函数可能并不能满足我们的需求。这个时候我们可以通过自己编写代码,扩展Jmeter的内置函数。
比如现在想在Jmeter里添加一个简单的求和的函数,代码逻辑非常简单,大体代码如下:
public int sum(int a, int b){
return a + b;
}
接下来来看下如何把自定义的逻辑封装为Jmeter的内置函数。
新建工程
在idea中新建Java工程,然后把Jmeter的核心jar包ApacheJMeter_core.jar(在jmeter的lib/ext目录下可以找到)导入到工程中
在src目录下新建package,需要注意的是package的名字必须包含".functions",比如"com.mtx.jmeter.functions",JMeter设计让一些核心的类可以在非UI的方式下运行的时候能被加载进来,这些类会被优先加载。加载这些类的时候是通过命名规则来实现的。所有实现function的类必需包含".functions",否则自定义的函数不会生效。
创建自定义函数类
新建一个类,继承Jmeter的抽象类AbstractFunction。在函数类里,需要定义以下属性和方法。
属性
自定义函数的参数名称列表,List类型
自定义函数的名称,String类型
保存用户输入数据的数组,CompoundVariable[]类型
方法
execute:执行函数的逻辑
setParameters:获取用户输入的参数
getReferenceKey:返回自定义函数的名称
getArgumentDesc:返回自定义函数所有的参数名描述
具体代码如下:
将代码导出为jar包
在idea中设置工程的归档品artifacts,然后通过build,将代码导出为jar包,然后放到Jmeter的lib/ext目录下,再启动Jmeter。
函数助手中可以看到刚才的函数名称和参数。
输入参数,运行函数,就可以看到计算结果。
边栏推荐
- Career experience feedback to novice programmers
- DC-7靶机
- Storage of dental stem cells (to be continued)
- cf:C. Column Swapping【排序 + 模拟】
- Financial risk control practice - decision tree rule mining template
- Digital IC interview summary (interview experience sharing of large manufacturers)
- Win configuration PM2 boot auto start node project
- Ten stages of becoming a Senior IC Design Engineer. What stage are you in now?
- [SQL practice] a SQL statistics of epidemic distribution across the country
- ML's shap: Based on the adult census income binary prediction data set (whether the predicted annual income exceeds 50K), use the shap decision diagram combined with the lightgbm model to realize the
猜你喜欢
Opensergo is about to release v1alpha1, which will enrich the service governance capabilities of the full link heterogeneous architecture
693. 行程排序
cf:C. Column Swapping【排序 + 模拟】
Understand the deserialization principle of fastjson for generics
Cf:c. column swapping [sort + simulate]
数字IC面试总结(大厂面试经验分享)
Web authentication API compatible version information
Question 102: sequence traversal of binary tree
Sequential storage of stacks
Harmonyos practice - Introduction to development, analysis of atomized services
随机推荐
PowerPivot - DAX (function)
SAP Spartacus checkout 流程的扩展(extend)实现介绍
Go language learning notes - Gorm use - Gorm processing errors | web framework gin (10)
测试开发基础,教你做一个完整功能的Web平台之环境准备
PTA 天梯赛练习题集 L2-004 搜索树判断
980. 不同路径 III DFS
10W word segmentation searches per second, the product manager raised another demand!!! (Collection)
Input of native applet switches between text and password types
Mysql-centos7 install MySQL through yum
Convert numbers to string strings (to_string()) convert strings to int sharp tools stoi();
生活中的开销,怎么记账合适
解决pod install报错:ffi is an incompatible architecture
目标检测中的损失函数与正负样本分配:RetinaNet与Focal loss
zabbix_ Get test database failed
Things about data storage 2
谈fpga和asic的区别
Dc-7 target
Deep clustering: joint optimization of depth representation learning and clustering
Harmonyos practice - Introduction to development, analysis of atomized services
STM32 key state machine 2 - state simplification and long press function addition