Jmeter使用简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.J meter简介

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库,FTP 服务器,等等。

2.J meter的核心组成

Jmeter

取样器线程组监视器

图1 Jmeter的主要组成

线程组:用于产生负载,用多线程或是多进程的方式模拟用户行为(类似loadrunner 中的用户)。

取样器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为(类似loaderrunner中的脚本)。

监视器:根据测试中霍地的数据生成报表,提供可视化的数据显示方式。

3.J meter使用多负载机

Jmeter支持在多个负载机同时进行测试,使用的方法比较简单,下面给出几个参考示例,不再详述。

/uid-26884465-id-3419474.html

/usermanual/remote-test.html

4.一个简单的http测试示例1.添加线程组并设置参数

图2 添加线程组

图3设置线程组执行参数2.添加http取样器并设置参数

图4添加http取样器

图5设置http取样器参数3.添加监视器并查看执行结果

图6添加监视器

图7查看执行结果

5.J meter Java Request脚本的编写

图8 Jmeter Java Request脚本的编写

5.1.Jmeter的pom依赖

org.apache.jmeter

ApacheJMeter_core

2.11

D:/apache-jmeter-2.11/lib/ext/ApacheJMeter_core.jar

ystemPath>

system

org.apache.jmeter

ApacheJMeter_java

2.11

D:/apache-jmeter-2.11/lib/ext/ApacheJMeter_java.jar

ystemPath>

system

5.2.Jmeter的Java Request脚本编写

//定义包名

package com.iflytek.ossp.framework.jmeter.mysql;

//引入相关需要的接口和类

import org.apache.jmeter.config.Arguments;

import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;

import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

import org.apache.jmeter.samplers.SampleResult;

//这里进行公共库的mysql测试,引入相关的mysql类

import dl.mysql.MysqlClient;

import dl.mysql.MysqlConnectionManagement;

//定义测试类测试类需要实现JavaSamplerClient接口

public class MysqlInserTest implements JavaSamplerClient {

// 定义mysqlclient

private static MysqlClient client = null;

// 定义测试类的Jmeter传入参数,可以在jmeter上进行配置

public Arguments getDefaultParameters() {

Arguments params = new Arguments();

params.addArgument("insertSql", "");

return params;

}

// 定义测试的测试的执行函数,里面全局变量的使用必须是线程安全的,类似loadrunner的action函数

public SampleResult runTest(JavaSamplerContext arg0) {

// 获取界面传入的参数

String insertSql = arg0.getParameter("insertSql");

// 初始化返回结果

SampleResult result = new SampleResult();

// 记录结果的开始时间

result.sampleStart();

try {

// 执行相关的mysql语句

client.update(insertSql);

// 设置本次测试执行成功

result.setSuccessful(true);

} catch (Exception e) {

e.printStackTrace();

// 如果发生异常定义结果执行失败

result.setSuccessful(false);

} finally {

// 记录本地测试的结束时间

result.sampleEnd();

}

// 返回测试的结果

return result;

}

// 默认构造函数,在其中初始化client

public MysqlInserTest() throws Exception {

try {

client = MysqlConnectionManagement.sharedInstance("frameworktest");

} catch (Exception e) {

e.printStackTrace();

throw e;

}

}

public void setupTest(JavaSamplerContext arg0) {

}

public void teardownTest(JavaSamplerContext arg0) {

}

}