java jdbc脚本_Jmeter24:java请求-jmeter_jdbc脚本实战

1 packagecom.test.jmeter;2

3 importjava.sql.Connection;4 importjava.sql.DriverManager;5 importjava.sql.PreparedStatement;6 importjava.sql.SQLException;7

8 importorg.apache.jmeter.config.Arguments;9 importorg.apache.jmeter.protocol.java.sampler.JavaSamplerClient;10 importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;11 importorg.apache.jmeter.samplers.SampleResult;12

13 public class jdbc_jmeter_insert implementsJavaSamplerClient {14 //全局变量

15 PreparedStatement statement;16 Connection conn;17

18 @Override19 publicArguments getDefaultParameters() {20 Arguments arguments = newArguments();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 returnarguments;29 }30

31 //初始化方法,类似于LR里的init方法,特点是每个用户只执行一次

32 @Override33 public voidsetupTest(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 @Override49 publicSampleResult runTest(JavaSamplerContext context) {50 SampleResult result = newSampleResult();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 returnresult;74 }75

76 //结束方法,类似于LR里的end方法,特点是每个用户只执行一次

77 @Override78 public voidteardownTest(JavaSamplerContext context) {79 //关闭链接

80 try{81 conn.close();82 } catch(SQLException e) {83 e.printStackTrace();84 }85 }86

87 public static voidmain(String[] args) {88 jdbc_jmeter_insert jmeter = newjdbc_jmeter_insert();89 JavaSamplerContext context = newJavaSamplerContext(jmeter.getDefaultParameters());90 jmeter.setupTest(context);91 jmeter.runTest(context);92 jmeter.teardownTest(context);93 }94

95 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值