JMeter 压测基础(四)——Java工程测试

JMeter Java工程测试

1.eclipse中新建工程

2.导入需要的jar包

从JMeter安装目录lib/ext中两个jar包buildPath到Java project中,分别是“ApacheJMeter_core.jar"和“ApacheJMeter_java.jar”

3.编写JMeter辅助函数

JMeter Java Sampler 介绍

  执行的先后顺序:

    getDefaultParameters()——> setup Test(javaSamplerContext context()——>runTest(javaSamplerContext context)——>teardownTest(javaSamplerContext)
    获取默认参数——>初始化——>运行——>结束

  常用的方法:

  1)addArgument(*name*,*value*)定义参数

  2)sampleStart()定义事物的开始,类似于LR的Lr start transaction,和LR一样事物间不要放无关代码
  3)sampleEnd()定义事物的结束,类似于LR的lr_end_transation
  4)setSuccessful(true,false)设置运行结果的成果或失败,jmeter统计成果失败,在聚合报告中能够体现

  代码示例:

package com.jmeter_test;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;

/**
* Jmeter自定义脚本测试类.
* 该脚本功能为发送输入框中的字符串。
* @param <log>
* @param <log>
* @param <Logger>
*/
public class jmeter_test<log, log, Logger> extends AbstractJavaSamplerClient {
/**
* 输出到Jmeter控制台的日志类.
* 需要引用Jmeter lib目录下的logkit-2.0.jar.
*/
private Logger log = getLogger();
private SampleResult results;      // 运行结果.
private String testString;         // Jmeter控制台输入的参数.

/**
* 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中.
*/
public Arguments getDefaultParameters() {
log.info("execute getDefaultParameters...");
Arguments params = new Arguments();
/*
* 定义一个参数,显示到Jmeter的参数列表中,
* 第一个参数为参数默认的显示名称,
* 第二个参数为默认值
*/
params.addArgument("testStringing", "");
return params;
}

/**
* 初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行,
* 类似于LoadRunner中的init方法.
*/
public void setupTest(JavaSamplerContext arg0) {
log.info("start execute setupTest...");
results = new SampleResult();
testString = arg0.getParameter("testString", "");
if (testString != null && testString.length() > 0) {
results.setSamplerData(testString);
}
}

/**
* 测试执行的循环体,根据线程数和循环次数的不同可执行多次,类似于LoadRunner中的Action方法
*/
public SampleResult runTest(JavaSamplerContext arg0) {
log.info("execute runTest...");
//定义一个事务,表示这是事务的起始点,类似于LoadRunner的lr.start_transaction
//    results.sampleStart();
//定义一个事务,表示这是事务的结束点,类似于LoadRunner的lr.end_transaction
//    results.sampleEnd();
if(testString.length() < 5){
log.info("fail...");
//用于设置运行结果的成功或失败,如果是"false"则表示结果失败,否则则表示成功
results.setSuccessful(false);
} else {
log.info("testStringing is\t "+testString);
results.setSuccessful(true);
}
return results;
}
/**
* 结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行,<br>
* 类似于LoadRunner中的end方法.
*/
public void teardownTest(JavaSamplerContext arg0) {
}
/**main函数用于本地调试,打包时要注释掉*/
//*
public static void main(String[] args)
{
Arguments params = new Arguments();
params.addArgument("testString", "51zxw");//设置参数,并赋予默认值1
JavaSamplerContext arg0 = new JavaSamplerContext(params);
jmeter_test test = new jmeter_test();
test.setupTest(arg0);
test.runTest(arg0);
test.teardownTest(arg0);
}/**/
}

4.将Java项目导出成jar

  放置于$jmeter安装目录$/lib/ext/下,其他依赖的jar放置于$安装目录/lib/ext下

5.运行脚本

  1)选中testplan,添加线程组
  2)再选中刚才新增的“线程组”,添加sampler——》java请求
  3)再选中刚才新增的“java请求“,添加监视器
  4)在“java请求”选项卡中可以选择你想测试的类名,在“线程组”选项中可以输入想循环的次数及并发数

  

原文地址:https://www.cnblogs.com/shadow-yin/p/10696033.html

时间: 2024-07-31 07:53:00

JMeter 压测基础(四)——Java工程测试的相关文章

java多线程&amp;&amp;Jmeter压测实现

笔者最近在看jmeter源码,对多线程处理部分的了解记录如下. Part1 线程与多线程概念 提到线程先来看一下进程(线程的容器)的概念,进程是一个具有独立功能的程序关于某个数据集合的一次运行活动.它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体.它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示. 对于jmeter来说,运行中的jmeter程序实例便是一个进程.而该进程中会包含大量线程. 线程是程序执行流的最小单位,是一组命令的集合.在jmeter中一

jmeter压测网站

1.Jmeter介绍 Jmeter是apache组织开发的基于java的压力测试工具. Jmeter可以用于对服务器.网络活对象模拟巨大的负载,来自不同压力类别下测试他们的强度和分析整体性能.另外,jmeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果.为了最大限度的灵活性,jmeter允许使用正则表达式创建断言. 2.Jmeter工作原理 image001 3.Jmeter安装 实验环境:系统:centos6.6 64位Java:1.8.0_65Jm

jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包

一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps:服务端每秒钟能处理的请求数. 响应时间:就是你从发出请求到服务端返回给你数据的时间. 二.jmeter操作数据库 在测试计划中添加mysql-connector-java-5.1.7-bin.jar 最后添加查看结果树.如果既要查询又要修改操作选择Callable Statement这个模式. 断言

jmeter压测学习1-window环境准备与案例

前言 最近用jmeter做一些接口的压力测试,记录下使用过程中遇到的一些问题. 在使用window机器做并发压测的时候,发现并发数设置100的时候,会出现报错:java.net.SocketException: Socket operation on nonsocket: connect 环境准备: java 1.8 jmeter 5.1.1 jmeter环境 jmeter环境依赖JAVA环境,需安装JDK1.8环境,JDK环境安装网上一大堆教程,自己去想办法吧,我这里就不多说了. jmeter

手把手教你jmeter压测--适合入门

[后台测试]手把手教你jmeter压测 我知道我迟早是要踏上了后台测试之路的,只是没想到来的这么突然.新接手了一个项目,在第一版发出后,产品需要做运营活动拉量,因为我担心突然的流量涌入是否会对后台造成压力呢?因此决定做一下压测: 下面就一步一步的介绍我从0到1的压测过程吧. 我下载的是 apache-jmeter-2.13,因为这个包下载下来通用linux和windows的,所以我们现在windows下打开它. 直接点击bat,打开jmeter: 添加一个线程组: 添加完成之后,先设置这两项:

jmeter压测app

使用代理的方式,录制app端脚本,之后用jmeter压测就没啥好说的了 1.电脑端谷歌设置本地代理(端口号为8888) 2.jmeter设置HTTP代理服务器(端口号为8888) 3.手机端wifi设置HTTP手动代理(服务器为电脑的IP,端口号为8888) 4.jmeter启动代理 5.手机端登陆使用app,jmeter录制到了脚本

jmeter压测

压测指标:TPS/QPS,响应时间 jmeter压测设置 jmeter压测结果监听器添加 jmeter压测结果查看(Samples:请求次数,Average:平均响应时间/ms,Throughput:TPS) jmeter加压力机(压力机之间能ping通) 各压力机下bin执行jmeter-server.bat,启动 修改jmeter.properties中remote_hosts参数添加压力机IP和端口(端口默认1099),示例如下 remote_hosts=localhost:1099,10

Java秒杀实战 (四)JMeter压测

转自:https://blog.csdn.net/qq_41305266/article/details/81071278. 一.JMeter入门 下载链接 http://jmeter.apache.org/download_jmeter.cgi 添加线程组 设置http请求默认值 添加待压测的http请求 添加聚合报告监听器 启动测试 1000个线程,循环10次,即10000个请求 二.redis 压测 1. redis-benchmark -h 127.0.0.1 -p 6379  -c 1

java编写jmeter压测脚本

目前项目中接触的比较多的是接口测试,功能测个差不多后会对部分接口进行压测,采用的是java编写脚本,导入jmeter进行压测. 使用到的jmeter的相关包 写一个测试类,继承AbstractJavaSamplerClient 设置请求参数,这些参数在导入进jmeter之后会在java请求页面显示出来 具体的请求方法可以写在test方法里,获取请求的结果resultData,然后对resultData里的内容解析,判断接口调用成功or失败 将项目导出成jar包,导入到jmeter中,在jmete