Jememeter和Loadrunner测试MySQL性能
From:http://blog.csdn.net/testingstar/article/details/60579454
MySQL数据库性能测试的方法
前置条件:
安装系统:windows 7 64
MySQL版本:mysql-installer-community-5.6.35.0
Java版本:jdk1.6.0_45
Jmeter版本:apache-jmeter-3.1
Mysql odbc驱动:mysql-connector-odbc-5.1.7-win32.msi
Mysql jdbc驱动:mysql-connector-java-5.1.7-bin.jar
使用Jmeter JDBC Request方式实现
1.
打开JMeter,点击测试计划,点击“浏览...”按钮,将你的JDBC驱动添加进来。
2.
添加一个线程组,
右键点击“线程组”,在下面添加一个“JDBC Connection Configuration”
来配置一下JDBCConnection Configuration页面。
3.
右键点击“线程组”,在下面添加一个“JDBC request”,并配置请求信息;
4.
添加断言。
右键点击线程组---->添加--->断言---->响应断言。
5.
我们来添加一些监听器来行查看(根据实际的需要配置监听器)
添加一个断言结果:
右键点击线程组---->添加--->监听器---->结果断言。
添加一个图形结果:
右键点击线程组---->添加--->监听器---->图形结果。
添加一个查看结果树:
右键点击线程组---->添加--->监听器---->查看结果树。
下面是添加所有东东的列表:
6.
在线程组页面设置用户数、启动时间、循环次数
点击菜单栏“运行”----“启动”
下面是结果:
其它的结果图片就不贴了......
使用Loadrunner 11 Web Services协议中的lr_db_xxxx系列函数方式实现
1. 安装MySQL ODBC驱动
在网上下载一个是MYSQL数据库的ODBC驱动程序:mysql-connector-odbc-5.1.7-win32.msi (已上传),以默认选项安装该文件。]
打开数据源:开始->设置->控制面板->找到数据源,或者直接访问数据源启动配置路径
打开数据源(ODBC),在用户DSN选项卡中点击“添加”按钮,弹出“创建新数据源”窗口。
选中“MYSQL ODBC 5.1Driver”,点击“完成”按钮。
弹出新窗口,在login选项卡中填写数据源信息。
Data Source Name 数据原名称;
Discription 描述(选填);
Server 数据源计算机的IP;
User 数据库用户名;
Password 数据库密码;
DataBase 数据源所要连接的数据库;
配置完后,点击“test”按钮,如果出现如下提示,即配置成功。
步骤阅读
点击“OK”返回用户DSN选项卡,增加一条记录,名为你所配置的数据源名称。
到此 Mysql ODBC 驱动安装配置成功。
2.启动Loadrunner的Virtual Vuser Generator ,创建Web Services协议脚本(因为lr_db_xxxx类函数只支持web services协议)
3、根据实际需要编写脚本
1)lr_db_xxxx相关函数参数细信息:
int lr_db_connect("StepName","ConnectionString=<connection_string>","ConnectionName=<connection_name>","ConnectionType=<connection_type>",
LAST );
int lr_db_executeSQLStatement("StepName=<step_name>","ConnectionName=<connection_name>","SQLStatement=<statement>",["DatasetName=<dataset_name>",]
LAST );
int lr_db_dataset_action("StepName=<step_name>","DatasetName=<dataset_name>", "Action=<action>",LAST );
int lr_db_getValue("StepName=<step_name>","DatasetName=<dataset_name>","Column=<column>",
"Row=<row>","OutParam=<output_parm>", LAST );
int lr_db_disconnect("StepName=<step_name>","ConnectionName=<connection_name>", LAST );
2)具体的脚本实现方法
Action()
{
//打开连接,注意DRIVER就是上面安装的
int NumRows=0;
int i=0;
lr_db_connect("StepName=databaseConnect",
"ConnectionString=DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;PORT=3306;DATABASE=test;USER=root;PASSWORD=012306;OPTION=3",
"ConnectionName=Mysql",
"ConnectionType=ODBC",
LAST);
lr_start_transaction("SQL");
//while(i<=5){
lr_db_executeSQLStatement("StepName=PerformQuery",
"ConnectionName=Mysql",
"SQLStatement=SELECT * FROM student",
"DatasetName=test",LAST);
//i++;
//}//执行SQL语句
/*lr_output_message(lr_eval_string("{idParam}"));*/
lr_end_transaction("SQL", LR_AUTO);
lr_output_message("The query returned %d rows.",NumRows);
lr_db_dataset_action("StepName=actionPrint",
"DatasetName=test",
"Action=PRINT",
LAST);//对数据库执行操作
/*while(i<NumRows){
lr_db_getvalue("StepName=GetValue",
"DatasetName=test",
"Column=sname", //字段名
"Row=next",
"OutParam=MyOutputParam",
LAST);
lr_output_message("The value is: %s",lr_eval_string("{MyOutputParam}") );
i=i+1;
}*/
lr_db_disconnect("StepName=disconnect",
"ConnectionName=Mysql",LAST);
//ConnectionName的值与lr_db_connect中的ConnectionName值要相同
//与数据库断开连接
return0;
}
3)调试执行脚本
使用Loadrunner 11 Java Vuser协议 JDBC链接方式实现
1.启动Loadrunner的Virtual Vuser Generator ,创建Java/JavaVuser协议脚本
2.根据实际需要编辑Mysql的请求链接、数据插入、修改、查询、删除脚本
/*
* LoadRunner JavaScript. (Build: _build_number_)
*
* ScriptDescription:
*
*/
import java.awt.List;
import java.sql.*;
import java.sql.DriverManager;
import java.sql.Statement;
import com.mysql.jdbc.Connection;
import lrapi.lr;
public class Actions
{
public intinit() throws Throwable {
return 0;
}//end of init
public intaction() throws Throwable {
intColumnCount;
intRowCount;
Stringdriver = "com.mysql.jdbc.Driver";
Stringurl = "jdbc:mysql://localhost:3306/test";
Stringuser = "root";
Stringpassword = "012306";
try {
Class.forName(driver);
lr.start_transaction("jdbc");
Connection conn = (Connection)DriverManager.getConnection(url,user,password);
if(!conn.isClosed())
{
System.out.println("数据库连接成功");
lr.start_transaction("search");
String sqls="select stu_id,sname,sage,ssexfrom student"; //sql语句
PreparedStatement ps = conn.prepareStatement(sqls);
ResultSet rs = ps.executeQuery();
lr.end_transaction("search",lr.AUTO);
while(rs.next()){
ResultSetMetaData rsmd = rs.getMetaData();
ColumnCount = rsmd.getColumnCount();
rs.last();
RowCount = rs.getRow();
System.out.println("结果集的列数:" + ColumnCount);
System.out.println("结果集的行数:" + RowCount);
}
ps.close();
conn.close();
}
lr.end_transaction("jdbc",lr.AUTO);
}
catch(ClassNotFoundException e)
{
System.out.println("数据库驱动程序没有找到");
e.printStackTrace();
}
catch(SQLException e)
{
e.printStackTrace();
}
return 0;
}//end of action
public int end()throws Throwable {
return 0;
}//end of end
}
Jememeter和Loadrunner测试MySQL性能的更多相关文章
- Loadrunner测试数据库性能,测试SQL语句的脚本例子
Loadrunner与SQL Server的操作可以通过录制的方式来实现,但本文还是通过直接调用loadrunner本身的function来实现sql语句的操作, 主要用到的是lr_db_connec ...
- 使用Jmeter测试MySQL性能——(1)连接配置
在搭建MySQL集群之后需要测试集群的性能究竟如何,采用Apache的测试工具Jmeter进行测试,本文主要介绍主要实现Jmeter配置连接到MySQL. 安装相应的软件 首先Jmeter是基于Jav ...
- LoadRunner 测试 Mysql
准备文件 1. 下载 MySQL LoadRunner libraries. 下载地址:http://files.cnblogs.com/files/xiaoxitest/MySQL_LoadRunn ...
- 测试mysql性能工具
mysqlslap mysqlslap可以模拟服务器的负载,并输出计时信息.它包含在MySQL 5.1 的发行包中,应该在MySQL 4.1或者更新的版本中都可以使用.测试时可以执行并发连接数,并指定 ...
- 使用Jmeter测试MySQL性能——(2)多客户端配置
在测试性能过程中,单个测试客户端可能存在性能瓶颈无法达到测试要求的压力.在这种情况下,可以设置jmeter的多客户端模式,然后通过一台控制端,同时控制多台PC上的客户端向服务器发送测试请求.若有4台P ...
- sysbench 测试mysql性能
===== #1sysbench --test=oltp --oltp-table-size=10000 --mysql-db=test --mysql-user=root --mysql-passw ...
- jmeter测试mysql性能
1.下载jdbc.将jdbc解压,将mysql-connector-java-version-ga-bin.jar这个文件copy到jmeter/lib下 2.打开jmeter,设置jdbc请求. 1 ...
- 使用mysqlslap测试MySQL性能
之前介绍过MySQL的性能测试工具sysbench, 这次介绍一个mysql自带的比较简单的性能测试命令mysqlslap. 下面的指令模拟了1000个进程同事连接mysql,并执行100个查询操作, ...
- ubuntu 18.04使用sysbench测试MySQL性能
首先下载安装sysbench: sudo apt-get install sysbench -y 查看一下sysbench版本是多少: zifeiy@zifeiy-S1-Series:~$ sysbe ...
随机推荐
- sqlserver修改一个列
--修改一个列alter table UserInfo alter Column [Address] nvarchar(64) null
- Jenkins+GitHub+maven
介绍: http://192.168.193.128:8115/jenkins/ 用户名:admin密码:admin电子邮箱:admin@admin.com root/12345678添加新用户: t ...
- 利用hibernate与struts框架制作简单注册界面
一:配置hibernate 1.导包 hibernate包和jdbc连接mysql数据库的包 2.实用工具生成hibernate配置文件和映射文件 3.做好hibernateUtil生成session ...
- 集合篇 —— Collection(1):JDK 中的重复实现问题
1. 问题的提出 在 Java 的集合体系当中,无论是 List(列表)还是 Set(集),在设计的时候都存在一个很奇怪的现象:这两种集合的接口,Java 都为其设计了抽象类 Abstrac ...
- 【bzoj4026】dC Loves Number Theory 可持久化线段树
题目描述 dC 在秒了BZOJ 上所有的数论题后,感觉萌萌哒,想出了这么一道水题,来拯救日益枯竭的水题资源. 给定一个长度为 n的正整数序列A,有q次询问,每次询问一段区间内所有元素乘积的φ(φ(n ...
- 【Luogu】P3157动态逆序对(树状数组套主席树)
题目链接 md第一道在NOILinux 下用vim做的紫题.由于我对这个操作系统不是很熟悉,似乎有什么地方搞错了,md调死.(我还打了两遍代码,调了两个小时) 但是这道题并不难,就是树状数组套上主席树 ...
- AIX 常用命令 第一步(uname,lspv)
如何知道自己在运行单处理器还是多处理器内核? /unix 是指向已启动内核的符号链接.要了解正在运行什么内核模式,可输入 ls -l /unix 并查看 /unix 链接到什么文件.下面是 ls -l ...
- eval()函数的巧用
eval的功能 将字符串str当成有效的表达式来执行.. 写函数,专门计算图形的面积 其中嵌套函数,计算圆的面积,正方形的面积和长方形的面积 调用函数area(‘圆形’,圆半径) 返回圆的面积 调用 ...
- bzoj 3456 城市规划 无向简单连通图个数 多项式求逆
题目大意 求n个点的无向简单连通图个数 做法1 \(f[i]\)表示i个点的无向简单连通图个数 \(g[i]=2^{\frac {i*(i-1)}{2}}\)表示i个点的无向简单图个数(不要求连通) ...
- JVM指令详解(下)
九.自增减指令 该指令用于对本地(局部)变量进行自增减操作.该指令第一参数为本地变量的编号,第二个参数为自增减的数量. 比如对于代码: int d=10; d++; d ...