JMeter元件系列(四)---jmeter常用Sampler详解

常用的Sampler:

  • Http请求
  • Debug Sampler
  • BeanShell Sampler
  • JDBC请求

1、Http请求

http这里不多做解释在这里插入图片描述

2、Debug Sampler

主要是用来调试的,里面的参数默认不用修改。

3、BeanShell Sampler

Jmeter有哪些Bean Shell

  • 定时器:  BeanShell Timer
  • 前置处理器:BeanShell PreProcessor
  • 采样器:  BeanShell Sampler
  • 后置处理器:BeanShell PostProcessor
  • 断言:   BeanShell断言
  • 监听器:  BeanShell Listener

主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求。本节内容如下:

  • 操作变量
  • 操作属性
  • 自定义函数
  • 引用外部java文件
  • 引用外部class文件
  1. 操作变量:通过使用Bean shell内置对象vars可以对变量进行存取操作(这两个方法也是BeanShell中常用的)
      (1) vars.get(“name”); 从jmeter中获得变量值
      (2) vars.put(“key”,“value”); 数据存到jmeter变量中

  2. 操作属性:通过使用Bean shell内置对象props 可以对属性进行存取操作
      (1) props.get(“START.HMS”); 注:START.HMS为属性名,在文件jmeter.properties中定义
      (2) props.put(“PROP1”,“1234”);

  3. 自定义函数:
      在BeanShell中,我们可以使用java语言自定义函数来处理特定的逻辑,结合BeanShell的内置对象进行变量的存取,方便我们进行测试提高脚本的灵活性。

示例:

(1) 在Test Plan中添加一个变量:hello = 111。
在这里插入图片描述
(2) Debug sampler-1和Debug sampler-2什么都不处理,用来查询对比beahshell处理前后的结果。
(3) BeanShell Sampler中的脚本如下:
在这里插入图片描述
(4) 运行结果:
    Debug sampler-1中显示:hello=111
    BeanShell sampler中 返回结果为:success
    Debug sampler-1中显示:hello=333,jmeter=222
在这里插入图片描述在这里插入图片描述在这里插入图片描述
4. 引用外部java文件:已有的java源文件或者class文件,在jmeter中引用。
     (1) 假如我有一个java 源文件,名为:test.java,代码如下: 
在这里插入图片描述
     (2) Bean Shell使用代码如下:
  在bean shel中通过source(“代码路径”)方法引入java,然后调用方法和java一样,new一个class,再调用里面的add 方法。
在这里插入图片描述
     (3) 运行结果:
在这里插入图片描述
5. 引用外部class文件:
  现在知道如何引用外部文件,有时候如果我们只有class文件怎么办呢?其实在jmeter中也可以直接引用class文件,示例如下:
       (1) 直接把上例中的java文件编译成class文件;编译方法:进入存放test.java文件的路径下,cmd进入命令窗口,输入javac test.java,然后文件夹中会出现test.class文件。
       (2) Bean Shell使用代码如下:
  用addClassPath(“D:\”)方法引入 class文件,再用import导入包+类,然后就可以像java一样调用了。
在这里插入图片描述
需要注意的是:路径我是取在eclipse中找到的Location中的路径。路径不对运行会报错(Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Myclazz (wrong name: jmeter/Myclazz))
在这里插入图片描述

(3) 运行结果如下:
在这里插入图片描述

4、JDBC请求

JDBC连接oracle数据库

  • jar包设置:
    在这里插入图片描述
  • JDBC Connection Configuration的配置:
    在这里插入图片描述
  • JDBC Repuest 的配置:
    在这里插入图片描述
  • 参数解释如下:
    Variable Name的名称必须要对应一致。
    Query :此处写sql语句,后面一定不加分号
    Parameter types:varchar (参数的类型)
    Variable names:name,class (变量名称,填写数据库字段即可)
    Result variable name:result (存放结果的变量名称)
    Query timeout(s):10 (sql语句超时等待)

JDBC 连接Mysql数据库

  • jar包设置:
    我是在计算机中搜索mysql-connector-java-5.1.7-bin.jar,添加到测试计划中,一般安装mysql或者有开发环境,workspace中也有此jar包,而且版本要对应上,否则不会生效。我的mysql是5.5版本。
  • JDBC Connection Configuration的配置:
    在这里插入图片描述
  • JDBC Repuest 的配置:
    在这里插入图片描述

JDBC测试过程中可能会遇到的几个问题:

  1. 执行sql(sql中有汉字)后,察看结果树中只显示字段,不显示值
    如果遇到这个问题,基本上就是字符集的问题,需要在Database URL后加一些东西:

    在这里插入图片描述

  2. sql语句中的汉字不会显示出来
    打开jmeter的properties配置文件修改#jsyntaxtextarea.font.family=Hack,把#去掉。重启jmeter就可以看见汉字明文显示啦!
    在这里插入图片描述

  3. 如果想执行多个sql语句,需要在数据库后加参数?allowMultiQueries=true,可同时执行多条mysql语句,否则报错。
    在这里插入图片描述

  4. Navicat连接mysql时,报1045 access denied using password :yes错误
    可能是因为不存在用户user引起的,需要创建用户。

  5. JDBC请求报错,显示结果是Cannot create PoolableConnectionFactory(ORA-00923:一堆乱码 FROM 一堆乱码):
    在这里插入图片描述
    图中红框部分改成:Select 1 FROM DUAL

参考博客:https://www.cnblogs.com/puresoul/p/4915350.html
https://www.cnblogs.com/puresoul/p/4949889.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值