zoukankan      html  css  js  c++  java
  • Jmeter24: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 

  • 相关阅读:
    拍皮球 (Java实现)
    余弦 (java实现)
    循环输出
    从1输出n位数字
    数值的整数次方
    旋转数组的最小数字
    简单使用栈实现队列
    重建二叉树
    链表逆序输出
    替代空格
  • 原文地址:https://www.cnblogs.com/zhenyu1/p/10642339.html
Copyright © 2011-2022 走看看