- 浏览: 257207 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
1260533105:
uncaught invalidstateerror:Fail ...
WebSocket -
sh747665463:
压力好大啊
【转】如果你不知道接下去学什么,就看这个
1.打开Java编译器,新建一个项目"TestLength",然后新建一个包"app".
2.从Jmeter的安装目录lib\ext中拷贝两个文件"ApacheJMeter_core.jar" 和"ApacheJMeter_java.jar"到"Tester"的项目中,然后引入这两个JAR文件.(具体的引入方法参考各个Java编译器的使用方法)
3.在"app"包中新建一个类,名字叫"TestLength",不过这个类要继承"AbstractJavaSamplerClient"类,如果项目引入步骤二中的两个文件,就可以找到"AbstractJavaSamplerClient"类了.
4."TestLength"类在继承"AbstractJavaSamplerClient"类的同时也会继承四个方法,分别是"getDefaultParameters","setupTest","runTest"和"teardownTest"方法."getDefaultParameters"方法主要用于设置传入的参数;"setupTest"方法为初始化方法,用于初始化性能测试时的每个线程."runTest"方法为性能测试时的线程运行体;"teardownTest"方法为测试结束方法,用于结束性能测试中的每个线程.
5、把上面的例子打包,然后把生成的"TestLength。jar"文件拷贝到Jmeter的安装目录lib\ext下。
6、运行Jmeter,添加一个线程组,然后在该线程组下面添加一个Java请求(在Sampler中),在Java请求的类名称中选择咱们刚创建的类"app。TestLength",在下面参数列表的"testStr"后面输入要测试的字符串,然后添加一个监听器(聚合报告),设置一下模拟的用户数就可以测试了。如果测试不成功,Jmeter会在它自己个输出框中抛出这个字符串。
通过上面的例子我们可以发现,使用Jmeter自定义Java测试代码,配合Jmeter自带的函数,就可以实现出LoadRunner中"Java Vuser"协议的绝大多数功能。
附上代码:
package cn.gbase.jmeterTest; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; 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; /** * * @author tianmao */ public class JmeterExtendJDBCTest extends AbstractJavaSamplerClient { private SampleResult results; private String arg1; /* Implements JavaSamplerClient.setupTest(JavaSamplerContext) */ public void setupTest(JavaSamplerContext arg0) { results = new SampleResult(); results.setSamplerData(toString()); results.setDataType("text"); results.setContentType("text/plain"); results.setDataEncoding("UTF-8"); results.setSuccessful(true); results.setResponseMessageOK(); results.setResponseCodeOK(); arg1 = arg0.getParameter("arg1", ""); if (arg1 != null && arg1.length() > 0) { results.setSamplerData(arg1); } } /* Implements JavaSamplerClient.teardownTest(JavaSamplerContext) */ public void teardownTest(JavaSamplerContext arg0) { System.out.println("treaddown"); } /* Implements JavaSamplerClient.getDefaultParameters() */ public Arguments getDefaultParameters() { Arguments params = new Arguments(); params.addArgument("arg1", "abc"); // 定义一个参数,显示到Jmeter的参数列表中,第一个参数为参数默认的显示名称,第二个参数为默认值 return params; } @Override public SampleResult runTest(JavaSamplerContext context) { int len = 0; results.sampleStart(); // 定义一个事务,表示这是事务的起始点,类似于LoadRunner的 // lr.start_transaction arg1 = context.getParameter("arg1"); doJDBCDeal(); results.sampleEnd(); // 定义一个事务,表示这是事务的结束点,类似于LoadRunner的 // lr.end_transaction return results; } public void doJDBCDeal() { try { Class.forName("com.gbase.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } Connection conn = null; Statement stm = null; ResultSet rs = null; String sql = "select * from testView"; try { conn = DriverManager.getConnection("jdbc:gbase://192.168.1.11/kgdx?user=gbase&password=gbase20110531&connectTimeout=300000"); stm = conn.createStatement(); rs = stm.executeQuery(sql); results.setResponseCode("testStr:" + arg1); results.setResponseMessage("aaaaaaaaaaaaaaa"); results.setResponseCode("UTF-8"); results.setResponseCodeOK(); results.setResponseData(("execute:"+ sql+ "\r\n" + rs2Str(rs)).getBytes("utf-8")); } catch (Exception e) { results.setSamplerData(e.getMessage()); results.setSuccessful(false); // 用于设置运行结果的成功或失败,如果是"false"则表示结果失败,否则则表示成功 return; } finally { try { if (rs != null) rs.close(); } catch (SQLException e) { } try { if (stm != null) stm.close(); } catch (SQLException e) { } try { if (conn != null) conn.close(); } catch (SQLException e) { } } results.setSuccessful(true); } public String rs2Str(ResultSet rs) { StringBuilder sb = new StringBuilder(); try { ResultSetMetaData rsmd = rs.getMetaData(); int c = rsmd.getColumnCount(); while (rs.next()) { sb.append("----------------------------------------------------------").append("\r\n");; for (int i = 0; i < c; i++) { sb.append(rsmd.getColumnLabel(i + 1)).append("=").append(rs.getObject(i + 1)).append("\r\n"); } sb.append("\r\n"); } } catch (SQLException e) { e.printStackTrace(); } return sb.toString(); } }
发表评论
-
jvm回顾
2018-11-29 09:10 0一、运行时数据区域 1、程序计数器(program co ... -
转一篇泛型介绍不错的文章
2018-08-02 19:10 586泛型,一个孤独的守门者。 大家可能会有疑问,我为什么叫做泛 ... -
jstat
2018-02-04 11:36 376jps(Java Virtual Machine Proce ... -
转:ant 入门
2017-12-09 17:58 5591)什么是Ant ant是构建工具 2)什么是构 ... -
廉颇老矣?n年没写ant,发现生疏了,这不是我想要的
2017-12-09 11:37 511毕业10年,差不多6年没有碰ant了,昨天解决一个siga ... -
jdk 9 hellomodules
2017-10-03 20:45 4241、准备 lib mods src/cn.gbase ... -
转:Java 9,OSGi以及模块化的未来
2017-10-03 19:19 0ava 9,OSGi以及模块化的 ... -
转:Java 9,OSGi以及模块化的未来
2017-10-03 19:12 0<div class="iteye-blog- ... -
转:Java 8 中的 Streams API 详解
2017-10-02 21:39 380Java 8 中的 Streams API 详 ... -
转:装饰模式
2017-01-01 10:46 453一个有意思的装饰模式样例。 Java与模式:装饰(D ... -
转:Java中多态性的实现
2016-08-25 11:10 484Java中多态性的实现 什么是多态 面向对象的三大 ... -
深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
2016-01-22 14:35 2608作者:Lucida 微博:@peng_gong 豆瓣 ... -
转:permGen space out of memory
2013-11-21 12:53 970PermGen space的全称是Permanent Gen ... -
trove high performance collections for java
2013-06-02 10:31 651trove high performance collec ... -
kettle Could not find the main class. Program will exit err
2013-06-01 15:44 0I am new in KETTLE. I am tryi ... -
jvm参数集合
2013-05-26 15:42 640一、内存分配 -xms java heap初始化时的大小 ... -
jvm优化配置
2013-05-26 15:16 870server 和 client两种模 ... -
http 错误代码
2013-04-25 09:00 634HTTP 400 – 请求无效HTTP 401.1 – 未授 ... -
JDBC 规范4.1 翻译 (一)
2012-12-28 14:41 23从今天开始希望每天抽出来一点时间把JDBC规范4. ... -
jconsole配置远程监控
2012-11-29 16:59 1573java -Djava.rmi.server. ...
相关推荐
2.2 录制jmeter脚本 5 2.2.1 URL栏输入要访问地址 5 2.2.2 Badboy Preferences配置 5 2.2.3 Jmter脚本录制 6 2.2.4 断言及参数配置 7 2.3 生成*.jmx脚本文件 9 2 怎样使用jmeter完成压力测试? 10 2.1 写脚本或者...
说到这里不得不说起另外一款web压力测试工具loadrunner,loadrunner是一款商业性质的压力测试工具自定义测试方面相比Jmeter差了很多,Jmeter是一款轻量型的,对日常的压力测试工作Jmeter完全可以胜任。jmeter功能它...
第4章安装Jmeter&准备和运行压测脚本 第5章Grafana展示图介绍 第6章对tomcat加压 第7章链路监控工具介绍及安装部署和使用 第8章Grafana实时监控jmeter执行过程中产生的数据 第9章自定义metrics在grafana展示 第10章...
(七)Jmeter脚本录制与自动化测试 / 使用Jmeter来协助造长流程数据 (八)Jmeter实现文件上传与下载 (九)通过逻辑处理器串联请求/遍历list结果/foreach控制器 (十)Jmeter操作数据库/INSERT数据/读取CSV数据/...
jmeter是一款优秀的开源性能测试工具,目前最新版本5.0版本,官网文档地址:http://jmeter.apache.org/usermanual/index.html 一、优点 1、开源工具,可扩展性非常好 2、高可扩展性,用户可自定义调试相关模块代码 3...
具有以下功能: 创建针对Azure Kubernetes Services的Kubernetes JMeter测试装置执行JMeter测试脚本,然后将报告附加为工件执行包含的将的与可配置的目标进行比较检查是否触发了JMeter 将示例自定义部分添加到Azure...
7.2.2 自动化测试脚本的分层实现93 7.3 后台自动化测试实例95 7.3.1 测试工具树形图95 7.3.2 基于STAF框架的Python脚本97 7.4 后台大规模性能测试102 7.4.1 测试工具的管理103 7.4.2 同步及异步控制模式...
1、打开badboy录制的脚本,:本系统搭建在自己电脑中,主要为模拟一个用户并添加一个人员。 导入后结果如下所示: 2、添加结果树,结果树用于展示每个执行步骤的结果。 3、同时需要执行过程中增加断言。断言只要...
支持类似jmeter的函数助手, 可以通过脚本进行接口录制,辅助编写yaml测试数据文件, 支持数据库断言, 支持分布式,jenkins持续集成 涉及框架和技术栈:requests+pytest+allure+yaml+redis 支持测试报告生成,接口...
指令@Library('jenkinstest@main')已添加到Jenkinsfile脚本的顶部,以加载最新版本的Jenkins测试库。 然后,在各个管道阶段中,使用必需和可选参数调用测试库函数。 库的版本如下: 图书馆版本 评论 v1.0 初始...
本软件可以模拟不同类型的交易报文,可以对交易测试案例进行统一管理,并可以进行简单时间统计和成功率统计。 使用本软件可以减轻传统测试过程中的修改-编译-测试-的循环等待时间,...采用脚本处理,支持自定义函数。
loadrunner与JMeter、KylinPET对比 loadrunnerJMeterkylinPET性能测试工具性能测试 描述 kylinPET loadrunner JMeter 协议/业务 支持多种协议,支持HTTP、RTSP、SIP、...
学习使用jmeter做压力测试, 学习jmeter变量定义, redis压力测试工具 知识点 jemter入门 自定义变量模拟多用户(线程组 -> 添加 -> 配置元件 -> CVS数据文件设置) jmeter在命令行下的使用. 下载tgz,解压缩并替换...
语言:English Frugal Testing的chrome扩展程序,用于将浏览器流量记录到jmx脚本中 ...如果用户具有节俭测试帐户,则他/她可以登录并以测试形式将测试脚本直接保存到该帐户中,还可以从他/她的帐户中无限制地下载脚本。
覆盖allure报告展示及自定义测试报告展示(新增功能) 覆盖三方工具的集成及管理(新增功能) 具有如下特点 友好的代码结构及注释,便于阅读及二次开发 实现前后端分离,通过token进行数据交互,前端再也不用关注后端...
gmeter自定义HTTP RESTful客户端和HTTP RESTful服务器,并通过配置运行它们。 在变量和命令系统的支持下,json充当脚本语言来处理HTTP请求和响应。 特征 用json配置测试用例; gmeter环境变量访问和具有管道支持的...
前言 最近团队在开发一款小程序,都是新手,一边看文档,一边开发。在开发中会遇到各种问题,今天把小程序登录这块的流程整理下,做个记录。 小程序的登录跟平时自己APP这种登录验证还不太一样,... 生成一个自定义的ke
-进行性能测试的示例使用JMeter测试BigQuery性能的示例 -Python,Shell和SQL脚本-有关GCP帐单导出的查询示例 -示例存储过程 -用于BigQuery的自定义工具-云功能可自动化常见用例 用户定义的功能,用于通用用法和迁移 ...
继:自动化测试框架【windows系统】:Jmeter+Ant+Jenkins Jenkins在windows环境下的下载与安装 下面,添加python项目时的注意事项: 步骤一:安装好Jenkins后,进入首页,点击新建项目//进入项目名称、风格选择的...