数据库性能测试指导.docx
《数据库性能测试指导.docx》由会员分享,可在线阅读,更多相关《数据库性能测试指导.docx(30页珍藏版)》请在冰豆网上搜索。
数据库性能测试指导
1kylinPET实现数据库性能测试
图形化直观表示数据库执行SQL命令流程。
并提供第二状态机“Unexpected”流程图实现事务回滚。
JDBC数据库性能场景不支持IP欺骗,且JDBC驱动JAR包需要自己下载放到ext目录下的jdbc目录。
1.1kylinPET性能测试工具下载链接
可到kylinPET的官方网站:
下载
2JDBC连接各种数据库方式
JDBC连接不同数据库的驱动JAR包、驱动类(DriverClass)、数据库URL都不相同;下面列举常见的数据库连接方式。
2.1添加驱动JAR包
下载JDBC驱动JAR包,不同数据库的JAR包不同,然后复制JAR包到执行代理器agent的ext目录下的jdbc目录。
如oracle的JAR包为ojdbc5.jar,可能不同版本的JAR包不同。
说明:
1.工具执行时如果找不到驱动包,将导致连接失败,此时产生的错误日志“createconnectionfailed.makesuredriverclass'com.mysql.jdbc.Driver'isright,orputthe'.jar'into'ext/jdbc'directory.”
2.2JDBC设置
在Scripter界面点击“设置”
按钮,弹出设置窗口设置JDBC(注:
不同的数据库DriverClass与URL设置不同)。
见列表:
数据库
JDBC设置
Oracle
DriverClass:
oracle.jdbc.driver.OracleDriver
URL:
jdbc:
oracle:
thin:
@host:
port:
database,其中host为数据库的IP地址,port为数据库的端口(默认1521),database为连接的数据库。
如jdbc:
oracle:
thin:
@localhost:
1521:
orcl
下载JAR地址:
MySQL
DriverClass:
com.mysql.jdbc.Driver
URL:
jdbc:
mysql:
//host:
port/database
下载JAR地址:
MicrosoftSQLServer(6.5,7,2000and2005)
DriverClass:
net.sourceforge.jtds.jdbc.Driver
URL:
jdbc:
jtds:
sqlserver:
//host:
port/database
下载JAR地址:
MicrosoftSQLServer2000
DriverClass:
com.microsoft.jdbc.sqlserver.SQLServerDriver
URL:
jdbc:
microsoft:
sqlserver:
//:
[;DatabaseName=]
下载JAR地址:
Sybase(10,11,12)
DriverClass:
net.sourceforge.jtds.jdbc.Driver
URL:
jdbc:
jtds:
sybase:
//host:
port/database
下载JAR地址:
Sybase
DriverClass:
com.sybase.jdbc2.jdbc.SybDriver
URL:
jdbc:
sybase:
Tds:
host:
port?
ServiceName=database
下载JAR地址:
DB2
DriverClass:
com.ibm.db2.jdbc.app.DB2Driver
URL:
jdbc:
db2:
//host:
port/database
下载JAR地址:
Postgresql
DriverClass:
org.postgresql.Driver
URL:
jdbc:
postgresql:
//host:
port/database
下载JAR地址:
http:
//jdbc.postgresql.org/download.html
3数据库性能测试简单流程
通过该例子,介绍如何使用工具完成数据库业务测试,及介绍工具的界面使用方法。
操作步骤:
3.1Scripter创建业务脚本
3.1.1新建业务脚本
点击“文件”->“新建”或者“工具栏”的“新建”
按钮。
3.1.2JDBC连接设置
点击“工具”->“设置”或者“工具栏”的“设置”
按钮
✧DriverClass:
com.mysql.jdbc.Driver(测试场景以MySQL为例)
✧数据库URL:
jdbc:
mysql:
//127.0.0.1:
3306/mysql
其中127.0.0.1为数据库的IP地址,3306为数据库的端口,mysql为连接的数据库。
✧用户名:
登陆数据库的用户名
✧密码:
登陆数据库用户的密码
✧自动提交:
true表示每条SQL命令立即提交;false表示用于数据库事务,等待执行commit才提交。
3.1.3编辑业务脚本流程
说明:
1.执行SQL命令都通过Send图标节点实现,其他图标节点的意义见《kylinPET帮助指导》的“3.5.1图标库”
1)操作
✧查询:
执行select语句,对应Statement的executeQuery函数
✧修改:
执行drop、insert、update等修改语句,对应Statement的executeUpdate函数
✧事务提交:
执行commit命令,提交事务。
mit();
✧事务回滚:
执行rollback命令,事务回滚。
connection.rollback();
✧自动提交(true):
设置连接为自动提交,connection.setAutoCommit(true);
✧自动提交(false):
设置连接为手动提交(通过commit),connection.setAutoCommit(false);
2)超时
查询与修改命令执行的超时时间,超过该时间认为执行失败。
单位为秒
3)打印结果
执行查询命令后,是否打印查询结果、或查询行数。
说明:
1.工具执行SQL命令后会等待获取结果集,并将返回的结果集里的记录行数作为响应数,统计到响应指标(response/s),即每秒获取的行数可以从监控指标response/s查看。
2.如果需要打印行或结果集,则会再日志表格显示,建议调试时选择打印,而在执行时不打印结果或行数,因为打印需要占用CPU与Socket资源。
4)开始行
打印结果(选择Result)时,从结果集的第几行开始
5)结束行
打印结果(选择Result)时,到结果集的第几行结束
3.1.4Scripter保存脚本
点击“文件”->“保存”或者“工具栏”的
按钮。
如脚本保存为rtsp.spet
3.1.5Scripter调试(回放)脚本
点击“工具栏”的
按钮运行脚本,通过日志调试脚本是否正确。
1)按钮介绍
✧
为运行按钮,点击运行脚本进行调试
✧
为停止按钮,点击停止运行脚本
✧
为导出日志按钮,如果日志太多,需要查找或过滤(如过滤Error或Excepiton关键字找出错误日志),可导出到文件,然后通过UE或NotePad++等软件分享。
2)红色代表错误或异常
日志内容包含:
“Error:
”或“Exception:
”关键字
3)黑色为业务消息日志
如发送日志或响应日志
4)蓝色为分隔信息或统计信息
✧runTime:
表示整个脚本运行时间
✧requests:
请求(发送)消息个数
✧responses:
返回结果集的行数
✧throughput:
吞吐量
✧Transaction:
脚本中事务统计
3.2复制JDBC驱动包到ext/jdbc目录,并启动Agent
根据数据库类型下载对应的JDBC驱动JAR包(下载地址见“2.2JDBC设置”的表格),如MySQL需要下载mysql-connector-java-5.1.0-bin.jar;然后复制JAR包到执行代理器agent的ext目录下的jdbc目录。
说明:
1.工具执行时如果找不到驱动包,将导致连接失败,此时产生的错误日志“createconnectionfailed.makesuredriverclass'com.mysql.jdbc.Driver'isright,orputthe'.jar'into'ext/jdbc'directory.”
3.3Controller创建测试场景
JDBC数据库性能场景不支持IP欺骗。
3.3.1创建执行代理器
点击“工具”->“执行代理器”或者“工具栏”的
按钮,添加执行代理器
如果是远端执行代理器,需要添加新的代理器,IP与地址为远端执行代理器。
3.3.2创建新的测试场景
点击“工具栏”的“新建”按钮
,创建一个新的测试场景。
默认测试场景的任务名为task,绑定本地执行代理器local
3.3.3创建任务
默认新场景已经存在task任务,并绑定本地执行代理器,因此不需要手动创建。
如果手动创建,如下操作:
选择Controller的“设计”页面,左边的“任务管理”树,单击右键选择“新建任务”
新建时没有配置,因此显示图标
,表示配置有误
3.3.4任务添加执行代理器
默认新场景已经绑定本地执行代理器,因此不需要手动绑定。
如果需要绑定远程执行代理器,操作如下:
选择任务节点,单击右键,选择“他的代理器”
将执行代理器“agent”添加(右移)到任务“fdsag”,即表示“agent”归属于任务“fdsag”
3.3.5任务关联业务脚本
3.3.6设置并发模型
然后设置任务的并发模型,通过点击任务页面的“模型设置”按钮,在弹出的窗口设置模型;
3.4连接执行代理器
3.4.1启动执行代理器
1)windows操作系统上直接双击agent.bat运行,或命令窗口输入agent.bat;
2)如果是本地执行代理器,可通过右键菜单选择“启动代理器”进行启动
3.4.2连接执行代理器
确保执行的代理器处于连接状态
,如果代理器处于断开状态,右键弹出菜单选择“连接”进行连接。
3.5Controller调试测试场景
在Controller的“控制”页面点击“调试配置”运行测试场景,则Controller会通知连接的每一个“执行代理器”执行一个用户,并将执行的过程日志返回给Controller。
用户可通过日志判断配置是否正确,如果错误,可根据错误信息调整配置。
上图是运行的结果,通过查看日志定位问题或查看脚本是否执行错误:
上面界面查看执行select*froma;返回的结果。
第一行为列名,下面为数据
说明: