【java请求】- jmeter_jdbc脚本实战
一,导入
使用Jmeter运行Java脚本,需要用到Jmeter的提供的框架jar包(分别在jmeter目录下的lib和ext目录下)
1.ApacheJMeter_core.jar
2.ApacheJMeter_java.jar
3.slf4j-api-1.7.25.jar
4.jorphan.jar
5.导入sql驱动器.jar
注:导入之后要记得,右键 build pats -> add..引入jar包
二,创建类导入
javaSamplerClient方法 jmeter 中 java请求框架
三,写脚本
getDefaultParameters:获取参数,设置的参数会在Jmeter的参数面板上显示出来
setupTest:初始化方法,只执行一次,跟LR里的init方法一样的,用于建立链接
runTest:执行N次,处理业务
teardownTest:结束方法,只执行一次,LR里的end方法是一样的,用于释放资源
四,导出jmeter jar 包
java_jdbc 脚本由loadrunner脚本转化而来
package com.test.jmeter; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException; 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; public class jdbc_jmeter_insert implements JavaSamplerClient {
// 全局变量
PreparedStatement statement;
Connection conn; @Override
public Arguments getDefaultParameters() {
Arguments arguments = new Arguments();
arguments.addArgument("sql", "insert into itcast_role (name,description) values (?,?)");
arguments.addArgument("url", "jdbc:mysql://localhost:3306/oa?useUnicode=true&characterEncoding=utf8");
arguments.addArgument("user", "root");
arguments.addArgument("password", "123456"); arguments.addArgument("name", "lisi");
arguments.addArgument("desc", "test");
return arguments;
} // 初始化方法,类似于LR里的init方法,特点是每个用户只执行一次
@Override
public void setupTest(JavaSamplerContext context) {
// 注册驱动,告诉Java接下来要链接哪个数据库
try {
Class.forName("com.mysql.jdbc.Driver");
// 建立mysql数据库链接
conn = DriverManager.getConnection(context.getParameter("url"),context.getParameter("user"),context.getParameter("password"));
// 把sql进行编译
statement = conn.prepareStatement(context.getParameter("sql"));
} catch (Exception e) {
e.printStackTrace();
} } // runTest方法,类似LR里的actions方法,特点是每个用户执行多次(循环次数或者持续时间s)
@Override
public SampleResult runTest(JavaSamplerContext context) {
SampleResult result = new SampleResult();
// 定义一个事务名称
result.setSampleLabel("insert");
// 事务开始
result.sampleStart();
// 执行sql之前,先进行参数化
try {
statement.setString(1, context.getParameter("name"));
statement.setString(2, context.getParameter("desc"));
int rows = statement.executeUpdate();
if (rows == 1){
// 事务成功
result.setSuccessful(true);
}else{
// 事务失败
result.setSuccessful(false);
}
System.out.println("=============================:"+rows);
} catch (SQLException e) {
e.printStackTrace();
}
// 事务结束
result.sampleEnd();
return result;
} // 结束方法,类似于LR里的end方法,特点是每个用户只执行一次
@Override
public void teardownTest(JavaSamplerContext context) {
// 关闭链接
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
} public static void main(String[] args) {
jdbc_jmeter_insert jmeter = new jdbc_jmeter_insert();
JavaSamplerContext context = new JavaSamplerContext(jmeter.getDefaultParameters());
jmeter.setupTest(context);
jmeter.runTest(context);
jmeter.teardownTest(context);
} }
java_jdbc
loadrunner-JDBC 脚本 https://www.cnblogs.com/zhenyu1/p/10620524.html
【java请求】- jmeter_jdbc脚本实战的更多相关文章
- Jmeter性能测试实践之java请求
前言 Apache Jmeter是开源.易用的性能测试工具,之前工作中用过几次对http请求进行性能测试,对jmeter的基本操作有一些了解.最近接到开发的对java请求进行性能测试的需求,所以需要 ...
- jmeter中实现java请求实战日志
view code public class JdbcInsert implements JavaSamplerClient { // 全局变量 PreparedStatement pstmt; Co ...
- JMeter扩展Java请求实现WebRTC本地音视频推流压测脚本
WebRTC是Web Real-Time Communication缩写,指网页即时通讯,是一个支持Web浏览器进行实时语音或视频对话的API,实现了基于网页的视频会议,比如声网的Agora Web ...
- Jmeter常用脚本开发之Java请求
Java请求:就是用来对java项目的类进行压测 例子:将输入的两个参数通过IO存入文件 1.创建Java工程,工程目录如下 2.将Jmeter-lib下面的所有jar包导入java工程, 3.创建一 ...
- 利用jmeter发起java请求调用shell脚本
1.创建maven项目 在pom文件中加入依赖: 2.在路径src/main/java下创建类,如类名shellclass 3. 创建jmet ...
- 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)
轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...
- [Java聊天室server]实战之五 读写循环(服务端)
前言 学习不论什么一个稍有难度的技术,要对其有充分理性的分析,之后果断做出决定---->也就是人们常说的"多谋善断":本系列尽管涉及的是socket相关的知识,但学习之前,更 ...
- 性能测试十二:jmeter进阶之java请求参数化
如项目中的ip.端口号之类的,都可以在此代码中定义 public Arguments getDefaultParameters() { // TODO Auto-generated method st ...
- 性能测试十一:jmeter进阶之java请求
使用Java编写JDBC脚本对Mysql进行增删改查等操作的性能测试 使用Jmeter提供的脚本框架依赖的jar包(分别在jmeter目录下的lib和ext目录下) ApacheJMeter_core ...
随机推荐
- 基于MySql数据库的单表与多表联合查询
这里以学生 班级 身份证 以及课程为例 1,启动MySql数据库 开启服务 2.1.0新建一张班级表 备注:CHARSET = UTF8 (指定编码格式为utf8 防止中文乱码) /*班级表*/ C ...
- Unity-iPhone has Conflicting Provisioning Settings
Select the top level node called Unity-iPhone in the left tree view (the one with the blue item). Se ...
- vue组件中,iview的modal组件爬坑--modal的显示与否应该是使用v-show
这是我第一次写博客,主要是记录下自己解决问题的过程和知识的总结,如有不对的地方欢迎指出来! 需求:点击btn,弹出modal显示图表(以折现图为例) 这应该是很基本的需求也是很容易实现的,代码和效果如 ...
- 歌词解析&class
class song_song: def __init__(self,lrc_file): # 定义两个字典一个列表备用 self.song_file = lrc_file self.song_lrc ...
- es6 入坑笔记(四)---异步处理
promise 用于js的异步处理 形式: 1.申明一个promise的对象 let p = new Promise(function(成功时的参数,失败时的参数){ if(....){ 成功时的参数 ...
- JavaScript日期格式转换
//日期格式转换 function dateFormat(val) {//val需要转换的日期 var fmt = "yyyy-MM-dd";//日期格式 val = val.re ...
- Java 遍历方法总结
package com.zlh; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; im ...
- mysql如何批量删除数据表
-- 注意这里的`是英文输入法状态下,主键盘数字1的左边的键.drop table `user`,`c_class`;
- MongoDB怎么用?
MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库 ...
- 嵌入式Linux系统移植——uboot常用命令
flash的一般分区: 其它数据 环境变量 可执行程序.如bootloader print(可缩写为:pri):打印查看uboot这个软件中集成的环境变量setenv.saveenv:设置.保存环境变 ...