用jmeter可以对数据库进行关联吗

用jmeter可以对数据库进行关联吗,第1张

一、需求:

1、业务需求:根据手机号到数据库中查看用户id,再根据用户id查看该注册用户下关联的健康成员。

2、参数化分析

1)需要根据不同的手机号进行查询,所以手机号需要进行参数化

2)用户id要作为下一个查询的参数,所以也需要参数化

二、实现

1.   下载数据库驱动包,并在jmeter中添加该jar包

下载mysql-connector-java.jar,存放到本地如:D:\jmeter相关

引入jar包:测试计划->浏览->选择jar文件

2.   添加 DBC Connection Configuration

右键线程组->添加->配置元件->JDBC Connection Configuration

配置

说明:

Variable Name:注意该变量名,后面添加jdbc请求时都需要与该名称保持一致。

Database URL:jdbc:mysql://mysql_host_ip:mysql_port/mysql_db_name

JDBC Driver class:com.mysql.jdbc.Driver

username:数据库用户名

password:数据库密码

3.  添加用户变量

4. 添加JDBC Request

右键线程组->添加->Sampler->JDBC Request

配置:

Variable Name:注意与之前配置的名称保持一致

Query Type:含变量的sql查询,选择Prepared Select Statement

Query:输入sql语句,注意不要加分号

Parameter values:引用用户定义的变量${my_phone}

Parameter types:变量的类型varchar

Variable names:保存查询结果,供后续接口调用,注意调用时加“_1”

5.添加HTTP请求

右键线程组->添加->Sampler->HTTP Request

注意:

服务器名称或IP:不要加http://

变量值:使用数据库查询结果作为变量 ${my_id_1},注意加“_1”

6.添加查看结果树

右键线程组->添加->监听器->查看结果树

7.运行

连接数据库步骤:

1. 下载jdbc 的驱动 mysql-connector-java-5.1.41-bin.jar,并将该驱动放到路径:

D:\apache-jmeter-3.0\lib\

2. 打开Jmeter 工具,添加线程组 .

3. 在Jmeter工具中,添加JDBC Connection Configuration ,

4.添加JDBC Request ,

5. 添加 查看结果树,

6.配置 JDBC Connection Configuration ,

7.配置JDBC Request 处,添加需要使用的sql语句,

8.将已经下载的jdbc驱动加载到Jmeter工具中,这样就使得mysql与Jmeter连接起来。

选择 测试计划 — 进入页面,点击 浏览按钮,

9.点击 绿色的 运行按钮,执行结果,

package basic

import java.sql.Connection

import java.sql.DriverManager

import java.sql.PreparedStatement

import java.sql.ResultSet

import java.sql.SQLException

import java.sql.Statement

public class JDBC {

public void findAll() {

try {

// 获得数据库驱动

//由于长时间不写,驱动名和URL都忘记了,不知道对不对,你应该知道的,自己改一下的哈

String url = "jdbc:oracle:thin:@localhost:1521:XE"

String userName = "system"

String password = "system"

Class.forName("oracle.jdbc.driver.OracleDriver")

// 创建连接

Connection conn = DriverManager.getConnection(url, userName,

password)

// 新建发送sql语句的对象

Statement st = conn.createStatement()

// 执行sql

String sql = "select * from users"

ResultSet rs = st.executeQuery(sql)

// 处理结果

while(rs.next()){

//这个地方就是给你的封装类属性赋值

System.out.println("UserName:"+rs.getString(0))

}

// 关闭连接

rs.close()

st.close()

conn.close()

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

public void delete(){

try {

//步骤还是那六个步骤,前边的两步是一样的

String url = "jdbc:oracle:thin:@localhost:1521:XE"

String userName = "system"

String password = "system"

Class.forName("oracle.jdbc.driver.OracleDriver")

Connection conn = DriverManager.getConnection(url,userName,password)

//这里的发送sql语句的对象是PreparedStatement,成为预处理sql对象,因为按条件删除是需要不定值的

String sql = "delete from users where id = ?"

PreparedStatement ps = conn.prepareStatement(sql)

ps.setInt(0, 1)

int row = ps.executeUpdate()

if(row!=0){

System.out.println("删除成功!")

}

// 关闭连接

rs.close()

st.close()

conn.close()

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}

我只写了查询和删除,添加、修改和删除非常之像,这是因为查询对数据库没有改动,而增删改都对数据库进行了修改,所以这三个非常像……呵呵,你自己看着办吧


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10029773.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存