Jmeter使用简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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依赖
ystemPath> ystemPath> 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 // 定义测试类的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) { } }