实例:

服务为:将输入的两个参数通过IO存入文件;

1、打开MyEclipse,编写Java代码
服务:
package test;

import java.io.File;
import java.io.PrintWriter; public class OutputService {
public static void output(String filename, int a, int b) throws Exception {
PrintWriter out = new PrintWriter(new File(filename));
out.write(a + ":" + b);
out.close();
}
}

测试类:

package test;

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; //服务为:将输入的两个参数通过IO存入文件;
public class PerformenceTest implements JavaSamplerClient {
private SampleResult results;
private String a;
private String b;
private String filename; // 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("filename", "0");// 设置参数,并赋予默认值0
params.addArgument("a", "0");// 设置参数,并赋予默认值0
params.addArgument("b", "0");// 设置参数,并赋予默认值0
return params;
} // 初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行
public void setupTest(JavaSamplerContext arg0) {
results = new SampleResult();
} // 测试执行的循环体,根据线程数和循环次数的不同可执行多次
public SampleResult runTest(JavaSamplerContext arg0) {
b = arg0.getParameter("b"); // 获取在Jmeter中设置的参数值
a = arg0.getParameter("a"); // 获取在Jmeter中设置的参数值
filename = arg0.getParameter("filename"); // 获取在Jmeter中设置的参数值
results.sampleStart();// jmeter 开始统计响应时间标记
try {
OutputService test = new OutputService();
test.output(filename, Integer.parseInt(a), Integer.parseInt(b));
results.setSuccessful(true);
// 被测对象调用
} catch (Throwable e) {
results.setSuccessful(false);
e.printStackTrace();
} finally {
results.sampleEnd();// jmeter 结束统计响应时间标记
}
return results;
} // 结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行
public void teardownTest(JavaSamplerContext arg0) {
} /*
public static void main(String[] args) {
// TODO Auto-generated method stub
Arguments params = new Arguments();
params.addArgument("a", "0");// 设置参数,并赋予默认值0
params.addArgument("b", "0");// 设置参数,并赋予默认值0
params.addArgument("filename","abc.txt");
JavaSamplerContext arg0 = new JavaSamplerContext(params);
PerformenceTest test = new PerformenceTest();
test.setupTest(arg0);
test.runTest(arg0);
test.teardownTest(arg0);
}
*/
}

生成jar包,放在JMeter_HOME/lib/ext目录下。

2、设置JMeter
以管理员身份打开JMeter,并创建Java Request后,结构如下图所示:
在Java请求中发现了自己新建的测试类:
 
我们在JMeter中发现参数有三个:
在这里我们使用到了两个函数:
(1)_Random生成随机整数;
(2)_RandomString生成随机字符串;
 
在线程组中设置并发线程数为5,保存后即可运行;
 
聚合报告:

结果成功,成功生成了5个文件:

3、遇到的问题

3.1 Export为Jar File导致Java Request的类名称无法找到;
3.2 JMeter java.lang.OutOfMemoryError: PermGen space问题:
  在JMeter.bat 中修改:
  set HEAP=-Xms512m -Xmx1024m
  set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
  set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%
  set TENURING=-XX:MaxTenuringThreshold=2
  set RMIGC=-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000
  set PERM=-XX:PermSize=256m -XX:MaxPermSize=512m
3.3 JMeter需要以管理员身份打开,否则会出现:

JMeter学习(十八)JMeter测试Java(二)的更多相关文章

  1. (转载)Android项目实战(二十八):Zxing二维码实现及优化

    Android项目实战(二十八):Zxing二维码实现及优化   前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中 ...

  2. jmeter(十八)属性和变量

    一.Jmeter中的属性: 1.JMeter属性统一定义在jmeter.properties文件中,我们可以在该文件中添加自定义的属性 2.JMeter属性在测试脚本的任何地方都是可见的(全局),通常 ...

  3. Jmeter(四十八)_动态线程分析HTML测试报告

    概述 jmeterGUI模式下,性能测试的结果往往误差很大,因为GUI本身就会消耗一部分资源.所以我们常常用命令行去跑性能脚本,得出结果 同时,jmeter在命令行下还可以生成多维度的测试报告,里面包 ...

  4. Jmeter(四十八) - 从入门到精通高级篇 - Jmeter监控服务器性能(详解教程)

    1.简介 JMeter是一款压力.接口等等的测试工具,Jmeter也可以像loadrunner一样监控服务器CPU.内存等性能参数,用来监控服务器资源使用情况,不过需要安装一些插件.JMeter正常自 ...

  5. <转>jmeter(十八)关联之XPath Extractor

    本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...

  6. 【转】使用JMeter 完成常用的压力测试(二)

    使用JMeter 完成常用的压力测试 Login.jsp 和welcome.jsp.其中 login.jsp 负责生成 User 对象,并调用 User 的login.当 login 返回为 true ...

  7. 性能测试之Jmeter学习(八)

    本节主要学习:断言 JMeter也有像LR中的检查点,本节就来介绍下JMeter的检查点如何去实现. JMeter里面的检查点通过添加断言来完成. 检查点:上一节讲到,我们对用户名和密码进行了参数化, ...

  8. jmeter(十八)关联之XPath Extractor

    之前的博客,有介绍jmeter如何对请求进行关联的一种常见用法,即:后置处理器中的正则表达式提取器,下面介绍另一种关联方法,XPath Extractor! 所谓关联,从业务角度讲,即:某些操作步骤与 ...

  9. Jmeter学习一:Jmeter性能测试环境搭建(Windows下)

    最近刚开始接触Jmeter性能测试,现总结环境搭建如下: 一.windows安装JDK步骤与环境变量配置: 1.先将下载的JDK安装到其默认目录:C:\Program Files\Java\jdk1. ...

  10. JMeter学习笔记——认识JMeter(1)

    拿到一个自动化测试工具,我们第一步就应该了解它能提供我们哪方面的功能(最直接的方法就是从官网获取),接下来就是简单的对这个工具进行“功能测试”了,当然这里的功能测试不是让你找它存在的bug,而是让自己 ...

随机推荐

  1. DShow实现一个avi视频的播放(含有个人解释和注释)

    此项目为win32下的控制台C++代码(别忘记配置DShow库) // movie_test.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" ...

  2. java.util.TimeZone 新加方法 getTimeZone(ZoneId zoneId) 导致的问题

    最近接受的项目中用spring配置了一个TimeZone对象: <bean id ="timeZone4Job" class="java.util.TimeZone ...

  3. event 对象 小记

    event对象的属性提供了有关事件的细节并且通过event对象的方法,可以控制事件的继续传播和阻止事件的默认行为 2级DOM Events 标准定义了一个标准的事件模型  被除了IE外的所有现代浏览器 ...

  4. gulp入坑系列(2)——初试JS代码合并与压缩

    在上一篇里成功安装了gulp到项目中,现在来测试一下gulp的合并与压缩功能 gulp入坑系列(1)--安装gulp(传送门):http://www.cnblogs.com/YuuyaRin/p/61 ...

  5. AloneJs.confirmbox() —— 确认框

    一.引用 <link href="https://cdn.suziyun.com/alonejs.min.css" rel="stylesheet" /& ...

  6. jQuery知识大杂汇

    1.jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作. 基础语法: $(selector).action() 举几枚栗子吧: $(this).hide() - 隐藏当前元素 $ ...

  7. DevExpress.XtraGrid.Views 设置指定行的背景颜色 .

    如需要将指定行的背景设置颜色,可参考以下示例 1.事件:CustomDrawCell 2.示例: private void gridView1_CustomDrawCell(object sender ...

  8. SharePoint 2013开发环境准备一些小事项

    开发慢慢向着SharePoint 2013迁移,环境也开始慢慢准备起来了.由于FAST Search的集成,和缓存服务的加入,SharePoint 2013对开发机器要求的不是一般的高.这里介绍一下如 ...

  9. 读书笔记2014第3本:Visual Studio程序员箴言

    Visual Studio 2010是我经常使用的程序开发工具,也知道VS中有大量的快捷键可以帮助提高效率,可惜就是不愿意记忆,最近在学vim的时候快速把<Visual Studio程序员箴言& ...

  10. 浅谈DES加密算法

    一.DES加密算法介绍 1.要求密钥必须是8个字节,即64bit长度 2.因为密钥是byte[8] , 代表字符串也可以是非可见的字节,可以与Base64编码算法一起使用 3.加密.解密都需要通过字节 ...