【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脚本转化而来

 

 1 package com.test.jmeter;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.SQLException;
 7 
 8 import org.apache.jmeter.config.Arguments;
 9 import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
10 import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
11 import org.apache.jmeter.samplers.SampleResult;
12 
13 public class jdbc_jmeter_insert implements JavaSamplerClient {
14     // 全局变量
15         PreparedStatement statement;
16         Connection conn;
17         
18     @Override
19     public Arguments getDefaultParameters() {
20         Arguments arguments = new Arguments();
21         arguments.addArgument("sql", "insert into itcast_role (name,description) values (?,?)");
22         arguments.addArgument("url", "jdbc:mysql://localhost:3306/oa?useUnicode=true&characterEncoding=utf8");
23         arguments.addArgument("user", "root");
24         arguments.addArgument("password", "123456");
25         
26         arguments.addArgument("name", "lisi");
27         arguments.addArgument("desc", "test");
28         return arguments;
29     }
30 
31     // 初始化方法,类似于LR里的init方法,特点是每个用户只执行一次
32     @Override
33     public void setupTest(JavaSamplerContext context) {
34         // 注册驱动,告诉Java接下来要链接哪个数据库
35                 try {
36                     Class.forName("com.mysql.jdbc.Driver");
37                     // 建立mysql数据库链接
38                     conn = DriverManager.getConnection(context.getParameter("url"),context.getParameter("user"),context.getParameter("password"));
39                     // 把sql进行编译
40                     statement =  conn.prepareStatement(context.getParameter("sql"));
41                 } catch (Exception e) {
42                     e.printStackTrace();
43                 }
44                 
45     }
46 
47     // runTest方法,类似LR里的actions方法,特点是每个用户执行多次(循环次数或者持续时间s)
48     @Override
49     public SampleResult runTest(JavaSamplerContext context) {
50         SampleResult result = new SampleResult();
51         // 定义一个事务名称
52         result.setSampleLabel("insert");
53         // 事务开始
54         result.sampleStart();
55         // 执行sql之前,先进行参数化
56                 try {
57                     statement.setString(1, context.getParameter("name"));
58                     statement.setString(2, context.getParameter("desc"));
59                     int rows = statement.executeUpdate();
60                     if (rows == 1){
61                         // 事务成功
62                         result.setSuccessful(true);
63                     }else{
64                         // 事务失败
65                         result.setSuccessful(false);
66                     }
67                     System.out.println("=============================:"+rows);
68                 } catch (SQLException e) {
69                     e.printStackTrace();
70                 }
71         // 事务结束
72         result.sampleEnd();
73         return result;
74     }
75 
76     // 结束方法,类似于LR里的end方法,特点是每个用户只执行一次
77     @Override
78     public void teardownTest(JavaSamplerContext context) {
79         // 关闭链接
80         try {
81             conn.close();
82         } catch (SQLException e) {
83             e.printStackTrace();
84         }
85     }
86 
87     public static void main(String[] args) {
88         jdbc_jmeter_insert jmeter = new jdbc_jmeter_insert();
89         JavaSamplerContext context = new JavaSamplerContext(jmeter.getDefaultParameters());
90         jmeter.setupTest(context);
91         jmeter.runTest(context);
92         jmeter.teardownTest(context);
93     }
94 
95 }
java_jdbc

 

 

 

 

 

 

 

 

loadrunner-JDBC 脚本 https://www.cnblogs.com/zhenyu1/p/10620524.html 

转载于:https://www.cnblogs.com/zhenyu1/p/10642339.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值