jmete 学习 --常用脚本开发

1.BeanShell Sample

  BeanShell 比较方便用来测试Java接口程序的,如果你不想对Java 接口测试程序进行扩展的话,BeanShell 是一个不错的选择.(实际工作中的较少)

  举例说明:

  1)两个简单的java类

package com.seling.test;

public interface BeanUtil {
	public String getUserName();
	public String getAddress();
	public int mul(int i);

}




//实现上面接口的类
package com.seling.test;

public class BeanShellEg implements BeanUtil {
	private String userName;
	private String address;
	
	public BeanShellEg(String name)
	{
		this.userName = name;
	}
	
	public BeanShellEg(String name,String address){
		this.userName = name;
		this.address = address;
	}
	
	public String getUserName()
	{
		return userName;
	}
	
	public void setUserName(String userName)
	{
		this.userName = userName;
	}
	
	public String getAddress()
	{
		return address;
	}
	
	public void setAddress(String address)
	{
		this.address = address;
	}
}

   2) jmeter 引用该jar包

    java 到处jar包,放入 %JMETER_HOME%\lib\ext 文件夹下面,然后在测试计划中添加,如下图所示。

  3)BeanShell Sampler 中调用

    注意:1.入参使用,多个入参用 空格 隔开,调用用 bsh.args[i]

       2.调用 jar 包 用 import package 包名。

 

2.Debug Sampler

  Debug Sampler  与 察看结果树组合 可以帮助我们知道参数化的变量值取值是否正确,正则表达式提取值是否正确,JMETER 属性,调试服务器是返回什么内容等等等等......

 

3.FTP请求

  FTP请求用于Internet上文件的双向传输

  关键字段解释:

    Remote File:远程FTP服务器文件路劲。

    Local File:本地文件路径

    Local File Contens:本地文件内容(这个是用来干嘛的?)

    Save File in Response:文件内容是否保存到响应中区,如果选择,且运行FTP请求后我们在察看结果树的响应数据中可以看到内容。

 

4.Java 请求

  测试的类必须继承 AbstractJavaSamplerClinet 类 或实现 JavaSamplerClient 接口。

  且要重写如下方法:

    getDefaultParameters()  设置入参

    setupTest(JavaSamplerContext context) 初始化话方法

    runTest(JavaSamplerContext arg0) 性能测试的线程运行体 是重点

    teardownTest(JavaSamplerContext arg0) 测试结束时调用

    其中 runTest 是必须实现的。

    例子明天补上。

 

5.JDBC 请求

  对数据库进行测试,可以对SQL 进行参数化,唯一遗憾的额是  一个JDBC Request 请求只能执行一条语句。

  在JMETER中简历一个JDBC Request 请求主要分两步:

    1:设置JDBC 连接池(在JDBC Connection Configuration 元件中进行设置)

    2.添加JDBC Request 请求,进行参数化设置,断言,监听。

  关键名词解释:

    Variable Name Bound to Pool - Variable Name:连接池名称,JDBC Request 通过此名称来获取连接池中的链链接。最好具有业务意义,呵呵。

    Max Number of Connections:连接池的最大链接数。

    Pool TimeOut:连接超时设置。

    Idel Cleanup Interval(ms):空闲连接清理书记兼间隔。

    Keep - Alive:是否保持与数据库的链接。

    Max Connection age: 连接生存时间。超过这个时间的链接将又连接池自动断开丢弃,当然正在使用的连接不会马上断开,而是等待它CLOSE 再断开。

    连接 ORACLE 的例子下面奉上。

 

  JDBC Request

   关键名词解释:

    Variable Name: 即在JDBC Connection Configuration中设置的 Variable Name。

    Query Type:

      Select Statement: 执行查询 ,不可用占位符来做参数化,但可以用 ${} 来引入变量

      Updata Statement: 执行更新 ,不可用占位符来做参数化,但可以用 ${} 来引入变量

      Callable Statement:可以调用存储过程,可以有入参,也可以有占位符。可用占位符来做参数化,但可以用 ${} 来引入变量。

      Prepared Select Statement:预编译查询语句,在Oracle中为了减少数据库在SQL 上的硬编译资源消耗,提倡用绑定变量,这样相同的SQL 只会被编译一次。支持占位符,且长时间执行效率比 Select Statement 好。

      Prepared Updata Statement:同上。

      Commit:提交

      Rollback:回滚

      Parameter values:参数值,用来参数化 sql query 中的sql和语句。

      Parameter types:参数类型

      Varivable names: SQl 执行后得到的结果往往是一个数据集,可以保存的变量中来,供后面的元件调用。(以逗号隔开)

      Result variable name:上面的Varivable names 是与列数相对应的,而这个则是把整个结果都存放在一个数组中,类似于 json字符串。

   

  

    

  

posted @ 2017-07-03 11:10  大愚者  阅读(444)  评论(0编辑  收藏  举报