1,打开eclipse,新建maven工程,在pom中引用jmeter核心jar包,具体请看---https://www.cnblogs.com/guanyf/p/10863033.html---,这里就不再赘述

2,代码如下:

  1. package com.mytest.functions;
  2. import org.apache.jmeter.engine.util.CompoundVariable;
  3.  
  4. import org.apache.jmeter.functions.AbstractFunction;
  5.  
  6. import org.apache.jmeter.functions.InvalidVariableException;
  7.  
  8. import org.apache.jmeter.samplers.SampleResult;
  9.  
  10. import org.apache.jmeter.samplers.Sampler;
  11.  
  12. import org.apache.jmeter.threads.JMeterVariables;
  13.  
  14. import java.util.Collection;
  15.  
  16. import java.util.LinkedList;
  17.  
  18. import java.util.List;
  19.  
  20. /**
  21.  
  22. * Provides a DoubleSum function that adds two or more Double values.
  23.  
  24. * Mostly copied from LongSum
  25.  
  26. */
  27.  
  28. public class DoubleSum extends AbstractFunction {
  29.  
  30. private static final List<String> desc = new LinkedList<String>();
  31.  
  32. private static final String KEY = "__doubleSum";
  33.  
  34. static {
  35.  
  36. desc.add("First double to add");
  37.  
  38. desc.add("Second long to add - further doubles can be summed by adding further arguments");
  39.  
  40. desc.add("Name of variable in which to store the result (optional),The author is guanyf");
  41.  
  42. }
  43.  
  44. private Object[] values;
  45.  
  46. /**
  47.  
  48. * No-arg constructor.
  49.  
  50. */
  51.  
  52. public DoubleSum() {
  53.  
  54. }
  55.  
  56. /**
  57.  
  58. * {@inheritDoc}
  59.  
  60. */
  61.  
  62. @Override
  63.  
  64. public synchronized String execute(SampleResult previousResult, Sampler currentSampler)
  65.  
  66. throws InvalidVariableException {
  67.  
  68. JMeterVariables vars = getVariables();
  69.  
  70. Double sum = 0D;
  71.  
  72. String varName = ((CompoundVariable) values[values.length - 1]).execute().trim();
  73.  
  74. for (int i = 0; i < values.length - 1; i++) {
  75.  
  76. sum += Double.parseDouble(((CompoundVariable) values[i]).execute());
  77.  
  78. }
  79.  
  80. try {
  81.  
  82. sum += Double.parseDouble(varName);
  83.  
  84. varName = null; // there is no variable name
  85.  
  86. } catch (NumberFormatException ignored) {
  87.  
  88. }
  89.  
  90. String totalString = Double.toString(sum);
  91.  
  92. if (vars != null && varName != null && varName.length() > 0) {// vars will be null on TestPlan
  93.  
  94. vars.put(varName, totalString);
  95.  
  96. }
  97.  
  98. return totalString;
  99.  
  100. }
  101.  
  102. /**
  103.  
  104. * {@inheritDoc}
  105.  
  106. */
  107.  
  108. @Override
  109.  
  110. public synchronized void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
  111.  
  112. checkMinParameterCount(parameters, 2);
  113.  
  114. values = parameters.toArray();
  115.  
  116. }
  117.  
  118. /**
  119.  
  120. * {@inheritDoc}
  121.  
  122. */
  123.  
  124. @Override
  125.  
  126. public String getReferenceKey() {
  127.  
  128. return KEY;
  129.  
  130. }
  131.  
  132. /**
  133.  
  134. * {@inheritDoc}
  135.  
  136. */
  137.  
  138. @Override
  139.  
  140. public List<String> getArgumentDesc() {
  141.  
  142. return desc;
  143.  
  144. }
  145.  
  146. }

jmeter添加自定义扩展函数之DoubleSum的更多相关文章

  1. jmeter添加自定义扩展函数之图片base64编码

    打开eclipse,新建maven工程,在pom中引入jmeter核心jar包: <!-- https://mvnrepository.com/artifact/org.apache.jmete ...

  2. jmeter添加自定义扩展函数之if判断

    1,打开eclipse,新建maven工程,在pom中引用jmeter核心jar包,具体请看---https://www.cnblogs.com/guanyf/p/10863033.html---,这 ...

  3. jmeter添加自定义扩展函数之小写转换大写

    1,打开eclipse,新建maven工程,在pom中引用jmeter核心jar包,具体请看---https://www.cnblogs.com/guanyf/p/10863033.html---,这 ...

  4. jmeter添加自定义扩展函数之大写转换小写

    1,打开eclipse,新建maven工程,在pom中引用jmeter核心jar包,具体请看---https://www.cnblogs.com/guanyf/p/10863033.html---,这 ...

  5. jmeter添加自定义扩展函数之MD5加密

    1,打开eclipse,新建maven工程,在pom中引用jmeter核心jar包,具体请看---https://www.cnblogs.com/guanyf/p/10863033.html---,这 ...

  6. jmeter添加自定义扩展函数之Strng---base64解密

    1,打开eclipse,新建maven工程,在pom中引用jmeter核心jar包,具体请看---https://www.cnblogs.com/guanyf/p/10863033.html---,这 ...

  7. jmeter添加自定义扩展函数之String---base64加密

    1,打开eclipse,新建maven工程,在pom中引用jmeter核心jar包,具体请看---https://www.cnblogs.com/guanyf/p/10863033.html---,这 ...

  8. jmeter添加自定义扩展函数之图片base64

    原文连接:---------https://www.cnblogs.com/qiaoyeye/p/7218770.html----------- 打开eclipse,新建maven工程,在pom中引用 ...

  9. jmeter的使用--添加自定义函数和导入自定义jar

    1.添加自定义函数,增加  号码生成函数 MobileGenerator和身份证生成函数IdCardGenerator 在package org.apache.jmeter.functions;中增加 ...

随机推荐

  1. docker安装及基本命令

    Ubuntu安装docker sudo apt-get install docker.io Centos安装docker # 更新系统软件包 yum -y upgrade # 官方下载地址 curl ...

  2. 使用requests_html抓取数据

    from requests_html import HTMLSession import json class YejiCollege: def __init__(self, url): self.u ...

  3. scite配置文件及常用设置

    在linux系统中,SciTE的用户设置文件为 ~/.SciTEUser.properties,优先级高于全局配置文件. scite是个不错的IDE工具,只是本人发现,在开发团队中和其他成员的编辑工具 ...

  4. 59-python基础-python3-集合-集合常用方法-判断一个集合是否是另一个集合的子集-issubset()-issuperset()

    判断一个集合是否是另一个集合的子集-issubset()-issuperset() 1-issubset() s1.issubset(s) 判断s1是否是s的子集 2-issuperset() 与is ...

  5. SpringBoot-技术专区-详细打印启动时异常堆栈信息

    SpringBoot在项目启动时如果遇到异常并不能友好的打印出具体的堆栈错误信息,我们只能查看到简单的错误消息,以致于并不能及时解决发生的问题,针对这个问题SpringBoot提供了故障分析仪的概念( ...

  6. 灰常牛逼的命令行备忘录 navi

    灰常牛逼的命令行备忘录 navi 1. navi命令简介 1.1 navi命令简介 命令行是非常高效的工具,但一个很常见的现象是,很多命令行过一段时间就容易忘.举个栗子,如果我们常用 git 命令行管 ...

  7. python爬虫:抓取下载视频文件,合并ts文件为完整视频

    1.获取m3u8文件 2.代码 """@author :Eric-chen@contact :sygcrjgx@163.com@time :2019/6/16 15:32 ...

  8. windows linux子系统(Windows Subsystem for Linux)的存放目录

    win10子系统把windows的底层接口做了个转换到Linux从而能运行linux,但是他在安装的时候并没有提供安装位置的选项.(还有hyper v) 现在,所有从商店安装的发行版都存在于以下目录中 ...

  9. 第五节:从一条记录说起——InnoDB记录结构

    <MySQL 是怎样运行的:从根儿上理解 MySQL>第五节:从一条记录说起——InnoDB记录结构 准备工作 现在只知道客户端发送请求并等待服务器返回结果.    MySQL什么方式来访 ...

  10. after()和append()的区别、before()和prepend()区别、appendTo()和prependTo()、insertAfter()和insertBefore()

    一.after()和before()方法的区别 after()——其方法是将方法里面的参数添加到jquery对象后面去:    如:A.after(B)的意思是将B放到A后面去:    before( ...