| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> jmeter 压测之发送 java 请求 -> 正文阅读 |
|
[Java知识库]jmeter 压测之发送 java 请求 |
由于在工作实践中经常会碰到要进行非http请求的压测,如mq,dubbo等需要进行java请求的压测,这时需要进行java编码来解决了。 jmeter提供了发送java请求的功能,有一个 JavaSamplerClient 接口可供调用,下面就以通过java jdbc 接口对mysql进行数据插入来进行java请求实践。 一、首先要了解 JavaSamplerClient 有四个函数: 1、初始化函数,每个并发用户仅执行一次 public void setupTest(JavaSamplerContext javaSamplerContext) 2、运行函数,每个并发用户执行N次 public SampleResult runTest(JavaSamplerContext javaSamplerContext) 3、停止函数,每个并发用户仅执行一次 public void teardownTest(JavaSamplerContext javaSamplerContext) 4、参数化函数,可以获取jmeter界面上传入的参数: public Arguments getDefaultParameters() 说明:jmeter 5.1.1 需要5个依赖包 二、在 idea 或其他 java IDE 上 coding 如下: package org.example; 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; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class JmeterJdbcInsert implements JavaSamplerClient { public Connection conn; public PreparedStatement ps; @Override public void setupTest(JavaSamplerContext javaSamplerContext) { String sql="insert into user(user_name,password,age) values (?,?,?)"; String url=javaSamplerContext.getParameter("url"); String dbUsername=javaSamplerContext.getParameter("dbUsername"); String dbPassword=javaSamplerContext.getParameter("dbPassword"); //注册mysql数据库驱动 try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { //获取数据库连接对象connection conn = DriverManager.getConnection(url,dbUsername,dbPassword); //对sql进行预编译 ps = conn.prepareStatement(sql); } catch (SQLException throwables) { throwables.printStackTrace(); } } @Override public SampleResult runTest(JavaSamplerContext javaSamplerContext) { //创建一个执行结果对象 SampleResult sampleResult = new SampleResult(); //设置本次请求的名称 sampleResult.setSampleLabel("insert"); //对sql语句中中的?进行传参 int rows=0; try { ps.setString(1,javaSamplerContext.getParameter("name")); ps.setString(2,javaSamplerContext.getParameter("password")); ps.setInt(3,javaSamplerContext.getIntParameter("age")); //执行sql rows= ps.executeUpdate(); //将返回结果存储到请求对象中,在jmeter查看结果树中可以看到这个结果 String response = "插入的条数为:" +rows; sampleResult.setResponseData(response,"utf-8"); //做对数据库执行结果进行判断 if (rows == 1){ //请求成功 sampleResult.setSuccessful(true); }else { //请求失败 sampleResult.setSuccessful(false); } } catch (SQLException throwables) { throwables.printStackTrace(); } return sampleResult; } @Override public void teardownTest(JavaSamplerContext javaSamplerContext) { //关闭连接 try { conn.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } /* 参数化函数,可以获取jmeter界面上传入的参数数据 */ @Override public Arguments getDefaultParameters() { Arguments arguments = new Arguments(); arguments.addArgument("url","jdbc:mysql://localhost:3306/myquery?useUnicode=true&characterEncoding=utf8"); arguments.addArgument("dbUsername","root"); arguments.addArgument("dbPassword","123456"); arguments.addArgument("name","he123"); arguments.addArgument("password","123456"); arguments.addArgument("age","19"); return arguments; } } 三、打成jar包,放入jmeter ../lib/ext/ 目录下,启动 jmeter。 四、运行 jmeter,查看结果树 五、检查数据库 数据插入成功! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 4:33:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |