【转】JMeter学习(十七)JMeter测试Java
目的:对Java程序进行测试
目录
一、核心步骤
二、实例
三、JMeter Java Sampler介绍
四、自带java Request Sampler
一、核心步骤
1.创建一个Java工程;
2.将JMeter的lib目录下的jar文件添加进此工程的Build Path;
3.创建一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写;
public Arguments getDefaultParameters();设置可用参数及的默认值; public void setupTest(JavaSamplerContext arg0):每个线程测试前执行一次,做一些初始化工作; public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值; public void teardownTest(JavaSamplerContext arg0):测试结束时调用;
4.Export为Runnable Jar File;
5.将此jar包放入JMETER_HOME\lib\ext目录;
6.以管理员身份打开JMeter;
7.创建线程组、Java Request、查看结果树,进行测试;
二、实例
1.在eclipse里面新建一个工程:JavaForJMeter
2.把{Jmeter_home}\lib目录下的所有jar添加进此工程的Build Path;
3.添加类Hello,代码如下:
package com.test.webservice;public class Hello {public String sayHello(){return "Hello";}public String sayHelloToPerson(String s){if(s == null || s.equals(""))s = "nobody";return (new StringBuilder()).append("Hello ").append(s).toString();}public int sum(int a,int b){return a+b;} }
4.添加类perftest,并继承AbstractJavaSamplerClient,并添加代码如下:
注意:System.out等的输出会显示在启动JMeter时的命令窗口内,但过多的输出会影响性能的准确性。
package com.test.webservice;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; import com.test.webservice.Hello;public class perftest extends AbstractJavaSamplerClient {private String a;private String b;/** Holds the result data (shown as Response Data in the Tree display). */private String resultData;// 这个方法是用来自定义java方法入参的。// params.addArgument("num1","");表示入参名字叫num1,默认值为空。//设置可用参数及的默认值;public Arguments getDefaultParameters() {Arguments params = new Arguments();params.addArgument("num1", "");params.addArgument("num2", "");return params;}//每个线程测试前执行一次,做一些初始化工作;public void setupTest(JavaSamplerContext arg0) {}//开始测试,从arg0参数可以获得参数值;public SampleResult runTest(JavaSamplerContext arg0) {a = arg0.getParameter("num1");b = arg0.getParameter("num2");SampleResult sr = new SampleResult();sr.setSampleLabel( "Java请求哦");try {sr.sampleStart();// jmeter 开始统计响应时间标记Hello test = new Hello();// 通过下面的操作就可以将被测方法的响应输出到Jmeter的察看结果树中的响应数据里面了。resultData = String.valueOf(test.sum(Integer.parseInt(a), Integer.parseInt(b)));if (resultData != null && resultData.length() > 0) {sr.setResponseData("结果是:"+resultData, null);sr.setDataType(SampleResult.TEXT);}// System.out.println(resultData);sr.setSuccessful(true);} catch (Throwable e) {sr.setSuccessful(false);e.printStackTrace();} finally {sr.sampleEnd();// jmeter 结束统计响应时间标记}return sr;}//测试结束时调用;public void teardownTest(JavaSamplerContext arg0) {// System.out.println(end);// System.out.println("The cost is"+(end-start)/1000);}// main只是为了调试用,最后打jar包的时候注释掉。/*public static void main(String[] args) { // TODO Auto-generated method stubArguments params = new Arguments(); params.addArgument("num1", "1");//设置参数,并赋予默认值1 params.addArgument("num2", "2");//设置参数,并赋予默认值2JavaSamplerContext arg0 = new JavaSamplerContext(params); perftestbbb test = new perftestbbb(); test.setupTest(arg0); test.runTest(arg0);test.teardownTest(arg0); }*/ }
5.Export为Runnable Jar File:hello.jar
6.将此hello.jar包放入JMETER_HOME\lib\ext目录;
7.打开JMeter,添加线程组,添加Java请求,查看结果树。
三、JMeter Java Sampler介绍
Arguments |
getDefaultParameters() 用于获取界面的参数 |
SampleResult |
runTest(JavaSamplerContext context) 类似于LR的Action,result.sampleStart()一个事务开始,result.sampleEnd()一个事务 结束 |
void |
setupTest(JavaSamplerContext context) 初始化方法,类似于LR的init和Junit中的setUp() |
void |
teardownTest(JavaSamplerContext context) 类似于LR的end和Junit中的tearDown() |
JMeter默认实现了两个Java Request Sampler:SleepTest Sampler和JavaTest Sampler。
JavaTest Sampler不向服务器发送数据请求,一般被用作调试目的使用。
至此,这已讲解完了。
转载于:https://www.cnblogs.com/perfectwang/p/7235411.html
【转】JMeter学习(十七)JMeter测试Java相关推荐
- JMeter学习笔记--JMeter常用测试元件
JMeter测试计划有一个被称为"函数测试模式"的选项,如果被选择,它会使Jmeter记录来自服务器返回的每个取样的数据.如果你在测试监听器中选择一个文件,这个数据将被写入文件.如 ...
- JMeter学习笔记--JMeter监听器
监听器(Listeners)是一种展示采样结果的测试元件,采样结果可以通过树.表格.图片加以展示,或者简单地写入某个结果文件之中. 注:不同的监听器通过不同的方式展示服务器响应信息,但它们都将同样的原 ...
- JMeter学习笔记——JMeter关联
关联是Jmeter工具中非常重要的一个技术.因为在测试过程过有些数据是经常发生变化的,要获取并使用这些数据,就要使用关联. 比如: 用户登录后,session信息都不同,有些操作要使用session, ...
- jmeter测试java接口测试_简单易学的测试攻略:JMeter测试Java请求示例
JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,大家可以到官网下载源代码和查看相关文档. 关于使用JMeter进行JDBC数据库测试.HTTP请求接 ...
- 使用jmeter测试java程序
最近在用jmeter进行性能测试,防止被忘记,把步骤写下. 场景:测试java程序 1.右击测试计划-> 添加 -> Threads(Users) -> 线程组 2.设置线程属性,用 ...
- jmeter测试java代码
有时候总是要写代码的,不得不说你也得会,这不往下看 java请求了,就的写代码,那么先来实现一个类, package com.company.jemeters;public class Hello { ...
- jmeter测试java服务_Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能
前言 JMS 介绍:JMS 即 Java 消息服务(Java Message Service)应用程序接口,是一个 Java 平台中关于面向消息中间件(MOM)的 API,用于在两个应用程序之间,或分 ...
- 学习笔记-JMeter 进行接口压力测试
一.压力测试场景设置 1.场景设定:进行接口压力测试时,有单场景也有混合场景.单场景就是对一个接口进行请求:混合场景需要对多个接口进行请求,在流程类业务场景会运用到 2.压测时间设定:通常时间为10- ...
- 全网最新最全的jmeter接口测试,压力测试
目录 一.前言 二.接口测试 2.1Jmeter-http接口脚本 2.2Jmeter-webservice接口脚本 三.压力测试 3.1压测任务需求的确认 3.2压测设置 3.3压测结果查看 3.4 ...
- 使用Jmeter至WebService压力测试
使用Jmeter至WebService压力测试 目中我们使用了Jmeter对webservice进行了压力測试,Apache JMeter是Apache组织开发的基于Java的压力測试工具.用于对 ...
最新文章
- Openresty最佳案例 | 第1篇:Nginx介绍
- 国家脑库:神经科学研究的基础设施
- 面试 | 创建多少个线程合适,该怎么回答?
- djangoORM数据类型及基本操作
- 三年开发项目经验总结
- PHP中路由和rewrite的使用
- jquery(js) 增加 删除 修改属性样式、元素内容
- 【转】随机函数 rand() srand() 以及seed的原理
- algorithm头文件中的函数:remove()与remove_if() 函数,……
- php 编译原理,php编译原理 - Robin3D的个人页面 - OSCHINA - 中文开源技术交流社区
- Dynamic Web TWAIN:网页扫描过程中如何自动检测和删除空白页?
- 怎么清楚计算机硬盘搜索记录,如何去除电脑硬盘删除痕迹
- 微信带参二维码数据解析
- win10打字反应慢处理
- normalize.css 类似,使用normalize.css遇到的问题?
- kaggle网站注册登录流程详细介绍(小白必看)
- mysql 编码错误_【分享】MySQl操作系统提示错误编码
- 如何一次高效的插入200MB(50万条)的insert语句
- QQ2006贺岁版SP1发布更新地址栏搜索(转)
- http请求 响应返回
热门文章
- RedHat停止维护CentOS!CentOS 创建者发起新项目,刚上线空白项目Star数已破两千
- Linux使用LVM逻辑卷 给分区扩容 不重启 热扩容
- 关于计算机组件游戏,Windows系统运行库/游戏运行库组件怎么补全?
- 数据分析学习笔记—python简单操作EXCEL
- 数据分析学习笔记—python数据类型与数据容器
- html5片转为base64,base64和图片的互转(HTML5的File实现)
- 容器访问宿主机数据库_docker从容器中怎么访问宿主机
- selenium python怎么断言_如何为python / selenium中的特定元素断言文本?
- pytorch学习笔记(三十):RNN反向传播计算图公式推导
- 牛客 2021年度训练联盟热身训练赛第二场 I题Pegasus Circle Shortcut