1.  Bean Shell简介

  • BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
  • BeanShell是一种松散类型的脚本语言(这点和JS类似);
  • BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器。
  • BeanShell可执行标准Java语句和表达式,另外包括一些脚本命令和语法。

2.  Bean Shell常用内置变量

JMeter在其BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:

  • log:写入信息到jmeber.log文件,使用方法:log.info(“This is log info!”);
  • ctx:该变量引用了当前线程的上下文,使用方法可参考:org.apache.jmeter.threads.JMeterContext。
  • vars:即JMeterVariables,操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),常用方法:
  1. vars.get(String key):从jmeter中获得变量值
  2. vars.put(String key,String value):数据存到jmeter变量中,其作用可简单理解为赋值操作:key=value,更多方法可参考:org.apache.jmeter.threads.JMeterVariables
  • props:即JMeterProperties - class java.util.Properties,操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是put函数,value数据类型只能为String,不能是一个对象。对应于java.util.Properties。
  1. props.get("START.HMS");  注:START.HMS为属性名,在文件jmeter.properties中定义
  2. props.put("PROP1","1234");
  • Parameters:从参数输入框中获取的参数值的集合
  • bsh.args:从参数输入框中获取的参数值的数组

3.  启动Jmeter ,添加测试计划,线程组等

4.  添加BeanShell Sampler

右键线程组->添加->Sampler->BeanShell Sampler

5.  应用举例

4.1 自定义脚本、函数

注:UUID含义是通用唯一识别码 (Universally Unique Identifier),java中可调用randomUUID直接生成。

代码如下:

使用保存的unique_id变量值

4.2 引用外部java文件

说明:运行结果,在d盘根目录下生成shouke.txt文件

附:eclipse中代码组织结构如下(下同,不再赘述):

其中:

CreateFile.java代码文件内容:

4.3 引用外部class文件

运行后,在d盘根目录下生成destfile.txt文件

注意:

addClassPath(String class_path);

1) 这里的class_path可以不是绝对上级路径,只需要包含.class文件即可,比如可以是

addClassPath("D:\\workspace\\StudyProject\\");

addClassPath("D:\\ ");

2)class_path不能包含包名对应的目录路径

如上,如果改成addClassPath("D:\\workspace\\StudyProject\\bin\\ mypackage");

运行会报类似如下错误

2016/10/17 17:55:50 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   CreateFile (wrong name: mypackage/CreateFile)

2016/10/17 17:55:50 WARN  - jmeter.protocol.java.sampler.BeanShellSampler: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval    CreateFile (wrong name: mypackage/CreateFile)

4.4 引用外部jar文件

如下,

1、在eclipse中单独把CreateFile.java文件打包成jar文件,比如create-file.jar

2、把create-file.jar文件放到JMeter安装目录->lib目录下

3、然后在JMeter的【测试计划】面板中添加打包的jar文件

4.5 JMeter内置变量演示

添加【配置原件】-【用户定义的变量】,并在面板中添加var1,var2两个变量

运行结果:

注:

1、log.info等方法会把日志写入到JMeter安装目录->bin目录下的jmeter.log文件中(形如:D:\Program Files (x86)\Jmeter\apache-jmeter-2.13\bin jmeter.log)

2、参数输入框中也可以直接输入字符串参数值,如下

Jmeter自定义函数和引入外部文件的几种方法相关推荐

  1. import是引进外部函数吗_CMake之引入外部项目的三种方法

    以下内容的完整演示代码请参考我的github项目https://github.com/BrightXiaoHan/CMakeTutorial​github.com 本节主要介绍如何引入外部项目源码作为 ...

  2. HTML中引入CSS文件的几种方法

    概况来说有以下四种: 1.行内式:也称内联式,在标记的style属性中设定CSS样式.这种方式没有体现出CSS的优势: 2.嵌入式:将CSS样式集中写在网页的<head></head ...

  3. Maven引入外部jar的几种方法

    方式1:dependency 本地jar包 <dependency><groupId>com.jouypub</groupId> <!--自定义-->& ...

  4. HTML引入css文件(四种方法)

    一.内嵌样式表 在HTML的<head>标签中的<style>标签中添加css样式,使用内嵌样式表定义的 CSS 样式只能在当前网页内使用. <!DOCTYPE html ...

  5. vue3+typescript引入外部文件

    vue3+typescript中引入外部文件有几种方法 (eg:引入echarts) 第一种方法: 1 indext.html中用script引入 <div id="app" ...

  6. vue引入外部文件_vue3+typescript引入外部文件

    vue3+typescript中引入外部文件有几种方法 (eg:引入echarts) 第一种方法: 1 indext.html中用script引入 2 在.vue页面使用,先声明后使用 declare ...

  7. html如何引入css文件?HTML引入外部css文件的四种方法

    在学习前端的时候,我们应该知道css给html标记添加各种样式,用来告诉浏览器,因该如何显示这些标记里面的内容.既然css是用来给html添加各种样式的,那么,html中如何引入外部的css文呢?本篇 ...

  8. 【php基础入门】PHP环境搭建与初识php代码书写及演示PHP和JS中遍历数组的区别、引入外部文件等知识点学习笔记

    php是什么? PHP是PHP:HypertextPreprocessor(超文本预处理器)的首字母缩写,是一种跨平台的.开源的.免费的脚本语言,其语法吸收了C语言.Java 和 Perl 的特点,利 ...

  9. vue 引入外部less_Vue项目中引入外部文件的方法(css、js、less)

    这两天学习了Vue.js ,正好了解了如何引入外部文件的方法,而且很重要,所以,今天添加一点小笔记. 例子中css文件采用bootstrap.css,js文件采用jQuery,less文件用less. ...

最新文章

  1. Latex中的列表环境[一]
  2. js函数 every some map ()=a+b;
  3. Linux下crontab命令的用法
  4. 【最全最详细】使用publiccms实现动态可维护的首页轮播
  5. 搜索引擎优化学习原理_如何使用数据科学原理来改善您的搜索引擎优化工作
  6. Javascript正则
  7. no plugin found for prefix ‘tomcat 7‘ in the current project and in the plugin groups的解决方法
  8. 马云谈 5G 危机;腾讯推出车载版微信;Ant Design 3.22.1 发布 | 极客头条
  9. 316.去除重复字母
  10. linux版wps无法输入中文的解决办法
  11. Matlab基础教程—【10】Matlab符号运算
  12. windown+cpu+Keras/Tensorflow+python+yolo3训练自己的数据集
  13. WIKI系统 ScrewTurn WIKI
  14. 小程序实时货币汇率计算
  15. 约瑟夫环(简单理解版)
  16. 关于学习的认知方法 | 九七的奇思妙想
  17. java生成生日贺卡代码_【5号课堂】scratch制作电子生日贺卡
  18. C语言之字符串(草稿)
  19. Eclipse与JDK多版本兼容性设置
  20. matlab微积分如何计算器,如何用matlab对这个函数进行积分。 请问这个公式是如何算出来的?使用微积分吗?...

热门文章

  1. 国内 Java 开发者必备的两个装备,你配置上了么?
  2. 分布式系统关注点:弹性架构
  3. Spring Cloud Alibaba基础教程:几种服务消费方式(RestTemplate、WebClient、Feign)
  4. java项目使用过滤器实例_Java web开发--过滤器篇(详细介绍)
  5. 配置访问oracle_SpringBoot中application.properties的常用配置
  6. scrapy爬虫储存到mysql_详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
  7. 线段检测M-LSD 已开源
  8. pytorch 指定层学习率
  9. pytorch IntermediateLayerGetter
  10. opencv 运动检测