用jmeter可以对数据库进行关联吗
2018-08-09 · 知道合伙人互联网行家
一、需求:
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.运行
2.线程组:代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。可以在“测试计
划->添加->线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in
seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up
= 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。