设为首页 收藏本站
查看: 991|回复: 0

Jmeter之Bean shell使用(一)

[复制链接]

尚未签到

发表于 2018-8-25 06:41:49 | 显示全部楼层 |阅读模式
  一、什么是Bean Shell

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

  •   定时器:  BeanShell Timer
  •   前置处理器:BeanShell PreProcessor
  •   采样器:  BeanShell Sampler
  •   后置处理器:BeanShell PostProcessor
  •   断言:   BeanShell断言
  •   监听器:  BeanShell Listener
  三、BeanShell的用法
  在此介绍下BeanShell PreProcessor的用法,其它的beahshell可以类推。在此我们使用beahshell调用自己写的工具类,工具类实现了密码的加、解密功能:
  1、在eclipse写好代码,然后把该类打成jar包(在类上点击右键->Export->jar file)

  2、把jar包放到jmeter目录\apache-jmeter-2.13\lib\ext下
  3、打开jmeter,添加一个http sampler(调用登录接口),在sampler下添加一个BeanShell PreProcessor
  4、在beanshell PreProcessor中导入我们的jar包,调用里面的加、解密码方法,把结果保存在jmeter变量中,下面两个方法是beanshell中我们最常用到的:

  •   vars.get(String paramStr):获得变量值
  •   vars.put(String key,String value):,将数据存到jmeter变量中


import com.pingan.ff.account.user.utils.*System..println(= =.println(=vars.(.println( + getEncode);

  5、把加密后的密码存到jmeter变量中,然后在http sampler中就可以通过${encode}进行使用了:

  6、执行脚本:

  四、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),它是测试用例与BeanShell交互的桥梁,常用方法:
  a) vars.get(String key):从jmeter中获得变量值
  b) vars.put(String key,String value):数据存到jmeter变量中
  更多方法可参考:org.apache.jmeter.threads.JMeterVariables


  •   props - (JMeterProperties ->
  a) props.get("START.HMS");  注:START.HMS为属性名,在文件jmeter.properties中定义
  b) props.put("PROP1","1234");

  •   prev - (SampleResult):获取前面的sample返回的信息,常用方法:
  a) getResponseDataAsString():获取响应信息
  b) getResponseCode() :获取响应code
  更多方法可参考:org.apache.jmeter.samplers.SampleResult

  •   sampler - (Sampler):gives access to the current sampler
  官网:
  http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_Sampler
  http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_PreProcessor
  作者:Glen.He
  出处:http://www.cnblogs.com/puresoul/
  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-556090-1-1.html 上篇帖子: shell实现代码自动化部署 下篇帖子: shell(bash)快捷键
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表