Jmeter外部函数引用
Jmeter外部函数引用
1、Beanshell引用Jmeter变量
添加用户自定义变量,输入变量名称和变量值,添加Debug sampler,用于输出初始变量值。
添加Beanshell sampler,修改username变量值,添加Debug sampler用户输出修改后username变量值。Beanshell 内容如下:
|
vars.put("username","AutoLoadTest"); var a = vars.get("username"); log.info(a); return a; |
运行察看结果树,username变量值被修改。
2、Java请求调用外部jar包
步骤:
1)创建java工程;
2)将{Jmeter_home}/lib/ext下的jar包导入Build path;
3)创建一个Test类并继承AbstractJavaSamplerClient接口;
4)Test调用实际被测方法Add;
5)Export为JAR file,并将jar包放入{Jmeter_home}/lib/ext
6)打开Jmeter创建线程组,新建java请求,引用jar包中的类。
被测方法Add代码如下:
|
package com.test.jmeter; public class Add { public int sum(int a,int b) { return a+b; } } |
Test类方法如下:
|
package com.test.jmeter; import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; import org.apache.jmeter.samplers.SampleResult; import com.test.jmeter.Add; public class Test extends AbstractJavaSamplerClient { private String a; private String b; private String resultData; // 自定义jmeter输入参数,设置默认值。 public Arguments getDefaultParameters() { Arguments params = new Arguments(); params.addArgument("num1", ""); params.addArgument("num2", ""); return params; } //每个线程测试前执行一次,做一些初始化工作; public void setupTest(JavaSamplerContext arg0) { } //开始测试,从arg0参数可以获得参数值; public SampleResult runTest(JavaSamplerContext arg0) { a = arg0.getParameter("num1"); b = arg0.getParameter("num2"); SampleResult sr = new SampleResult(); sr.setSampleLabel( "Java请求名称"); try { // jmeter 开始统计响应时间标记 sr.sampleStart(); Add test = new Add(); // 调用sum方法,保存结果。 resultData = String.valueOf(test.sum(Integer.parseInt(a), Integer .parseInt(b))); //将结果显示在jmeter察看结果树响应数据中。 if (resultData != null && resultData.length() > 0) { sr.setResponseData("结果是:"+resultData, null); sr.setDataType(SampleResult.TEXT); } sr.setSuccessful(true); } catch (Throwable e) { sr.setSuccessful(false); e.printStackTrace(); } finally { // jmeter 结束统计响应时间标记 sr.sampleEnd(); } return sr; } //测试结束时调用; public void teardownTest(JavaSamplerContext arg0) { } } |
Jmeter中调用Test类如下:
运行结果:
3、Beanshell调用java文件
在D盘目录下创建.java文件,代码内容如下:
|
package com.test.jmeter; public class Add { public int sum(int a,int b) { return a+b; } } |
Jmeter中新建Beanshell sampler,内容如下:
source("D:\\Add.java");用于引用外部java文件。
运行结果:
4、Beanshell调用jar包
步骤:
1)创建java工程;
2)创建一个idNum类用于随机生成身份证号;
3)Export为JAR file,并将jar包放入{Jmeter_home}/lib/ext
4)打开Jmeter创建线程组,新建Beanshell sampler请求,import引用jar包中的类。
运行结果:
Jmeter外部函数引用的更多相关文章
- JMeter常用函数整理
"_csvRead"函数 csvRead函数是从外部读取参数,csvRead函数可以从一个文件中读取多个参数. 下面具体讲一下如何使用csvread函数: 1.新建一个csv或者t ...
- 用static声明外部变量与内、外部函数
1.用static声明外部变量 若希望某些外部变量只限于被本文件引用,而不能被其他文件引用,可以在定义外部变量时加一个static声明. 例:(file1.c) #include <stdafx ...
- JNI的又一替代者—使用JNR访问Java外部函数接口(jnr-ffi)
1. JNR简单介绍 继上文“JNI的替代者—使用JNA访问Java外部函数接口”,我们知道JNI越来越不受欢迎,JNI是编写Java本地方法以及将Java虚拟机嵌入本地应用程序的标准编程接口.它管理 ...
- C语言学习笔记:14_内部函数和外部函数
/* * 14_内部函数和外部函数.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include & ...
- (C语言逻辑运算符!)&&两种定义字符串的方法&&局部变量、全局变量&&内部函数、外部函数。(新手基础知识备忘录)
(一) 四个逻辑运算符:!(逻辑非) ||(或) &&(与) ^ (异或) 位运算:&(与) |(位或) (二) 如何定义字符串: 1,字符串常量 ...
- Jmeter 常用函数(1)- 详解 __Random
如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 作用 产生一个随机数 语法格式 ${__Ra ...
- Jmeter 常用函数(2)- 详解 __RandomDate
如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 作用 产生一个随机日期 语法格式 ${__R ...
- Jmeter 常用函数(3)- 详解 __RandomString
如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 作用 根据指定的字符产生一个随机字符串 语法 ...
- Jmeter 常用函数(5)- 详解 __property
如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 作用 读取 Jmeter 属性 语法格式 $ ...
随机推荐
- codeforces 381 D Alyona and a tree(倍增)(前缀数组)
Alyona and a tree time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- UML学习笔记
目前转岗到业务开发,业务逻辑用到了大量的类库.UML则是理解.指导其代码实现的利器. 有6种重要的关系,按照关系的强弱排序如下: 实现 = 泛化 > 组合(关联) >聚合 > 依赖 ...
- Sublime Text 2 配置
设置Python的Tab缩进为四个空格,打开一个Py文件 # Preferences---->Settings-More---->Syntax Specific-User # 贴入如下代码 ...
- elasticsearch的marvel
摘自: http://kibana.logstash.es/content/logstash/plugins/input/syslog.html 一:marvel介绍 marvel 是 Elastic ...
- 用minidwep-gtk研究wifi
全图,不解释
- 士兵站队问题sol
作者:http://www.cnblogs.com/taoziwel/articles/1859577.html 相类似题目:输油管道问题 [问题描述] 在一个划分成网格的操场上,n个士兵散乱地站在网 ...
- 每日学习心得:$.extend()方法和(function($){...})(jQuery)详解
2014-02-09 前言: 节后头两天上班,主要是调整工作状态.项目也不是很紧,趁着周末把年前遇到了一些关于JS和JQuery的一些问题给总结一下.主要是介绍JQuery的extend方法和(fun ...
- 文件hash数据库
unit YxdDB; interface uses Windows, Classes, SysUtils, SyncObjs; type TYXDDBValue = packed record Si ...
- Spring Boot中使用Swagger2构建强大的RESTful API文档
由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这 ...
- Redis介绍以及安装(Linux)
Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...