【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 ...
随机推荐
- 学习使用 ARM 的 math 库,据说 速度比C标准库 自带的 快 几十倍 到几百倍
1.首先 添加 库 到 工程 ,路径 如下 C:\Keil\ARM\CMSIS\Lib\ARM 2.包含头文件以及在 工程里 添加 头文件 路径如下 C:\Keil\ARM\CMSIS\Includ ...
- spring cloud gateway 之限流篇
转载请标明出处: https://www.fangzhipeng.com 本文出自方志朋的博客 在高并发的系统中,往往需要在系统中做限流,一方面是为了防止大量的请求使服务器过载,导致服务不可用,另一方 ...
- Python 基础 函数
python 什么是函数 Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用. python 函数的调用 Python内置了很多有用的函数,我们可以直接调用. 要调用 ...
- centos7 安装mysql5.7以及一些细节问题
突然发现我的新服务器上没有mysql,所以想安装一个,上次在我的window电脑上安装MySQL8.0我真的要气死了,和5.7修改密码的方式不一样,弄了很久,所以我决定还是不用安装8.0了,5.7就可 ...
- 一个数据仓库时代开始--Hive
一.什么是 Apache Hive? Apache Hive 是一个基于 Hadoop Haused 构建的开源数据仓库系统,我们使用它来查询和分析存储在 Hadoop 文件中的大型数据集.此外,通过 ...
- PHP常用函数归类【持续整理】
学习了这么久PHP,基础知识总感觉不牢靠,尤其是数组,字符串函数的应用,全部手敲过次手,做出总结都是基础,在回顾一下吧. 一.PHP基础语法 变量,常量 严格区分大小写,但内置结构或关键字无所 ...
- 简易高效的Delphi原子队列
本文提供Delphi一个基于原子操作的无锁队列,简易高效.适用于多线程大吞吐量操作的队列. 可用于Android系统和32,64位Windows系统. 感谢歼10和qsl提供了修改建议! 有如下问题: ...
- Delphi东京版FireDAC连接MSSQL2000提示对象名 'SYS.DATABASES' 无效
在Delphi 10.2.1 东京 版中,FireDAC默认不兼容MSSQL2000,会提示“[FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driv ...
- 自学tensorflow——1.框架初步了解以及构建简单的计算图计算
1.初步了解 tensorflow是谷歌的一款开源深度学习框架.运行前,需要先定义好计算图,最后通过会话启动计算图,这么做的目的是为了防止数据在python和c++(tensorflow底层)传输的时 ...
- python列表学习
#创建列表,通过[]来创建列表my_list=[] #创建了一个空列表#print(my_list,type(my_list)) #列表追存储的数据,我们称为元素#一个列表中可以存储多个元素,也可以在 ...