1 kylinPET实现数据库性能测试
图形化直观表示数据库执行SQL命令流程。并提供第二状态机“Unexpected”流程图实现事务回滚。JDBC数据库性能场景不支持IP欺骗,且JDBC驱动JAR包需要自己下载放到ext目录下的jdbc目录。
1.1 kylinPET性能测试工具下载链接
可到kylinPET的:www.kylinpet下载
2 JDBC连接各种数据库方式
JDBC连接不同数据库的驱动JAR包、驱动类(Driver Class)、数据库URL都不相同;下面列举常见的数据库连接方式。
2.1 添加驱动JAR包
下载JDBC驱动JAR包,不同数据库的JAR包不同,然后复制JAR包到执行代理器agent的ext目录下的jdbc目录。如oracle的JAR包为ojdbc5.jar,可能不同版本的JAR包不同。
说明:
1. 工具执行时如果不到驱动包,将导致连接失败,此时产生的错误日志“create connection failed.make sure driver class 'sql.jdbc.Driver' is right,or put the '.jar' into 'ext/jdbc' directory.”
2.2 JDBC设置
在Scripter界面点击“设置”按钮,弹出设置窗口设置JDBC(注:不同的数据库Driver Class与URL设置不同)。见列表:
数据库 | JDBC设置 |
Oracle | Driver Class:oracle.jdbc.driver.OracleDriver URL:jdbc:oracle:thin:@ host:port: database,其中host为数据库的IP地址,port为数据库的端口(默认1521),database为连接的数据库。如jdbc:oracle:thin:@localhost:1521:orcl 下载JAR地址:acle/technetwork/indexes/downloads/index.html |
MySQL | Driver Class:sql.jdbc.Driver URL:jdbc:mysql://host:port/database 下载JAR地址:sql/downloads/connector/j/5.1.html |
Microsoft SQL Server (6.5, 7, 2000 and 2005) | Driver Class:net.sourceforge.jtds.jdbc.Driver URL:jdbc:jtds:sqlserver://host:port/database 下载JAR地址:sourceforge/projects/jtds/files/ |
Microsoft SQL Server 2000 | Driver Class:com.microsoft.jdbc.sqlserver.SQLServerDriver URL:jdbc:microsoft:sqlserver://<HOST>:<PORT>[;DatabaseName=<DB>] 下载JAR地址:sourceforge/projects/jtds/files/ |
Sybase (10, 11, 12) | Driver Class:net.sourceforge.jtds.jdbc.Driver URL:jdbc:jtds:sybase://host:port/database 下载JAR地址:sourceforge/projects/jtds/files/ |
Sybase | Driver Class:com.sybase.jdbc2.jdbc.SybDriver URL:jdbc:sybase:Tds:host:port?ServiceName=database 下载JAR地址:download.csdn/detail/yvfish/348273 |
DB2 | Driver Class:com.ibm.db2.jdbc.app.DB2Driver URL:jdbc:db2:// host:port/database 下载JAR地址:download.csdn/detail/karlpan01/385852 |
Postgresql | Driver Class:org.postgresql.Driver URL:jdbc:postgresql:// host:port/database 下载JAR地址:/download.html |
3 数据库性能测试简单流程
通过该例子,介绍如何使用工具完成数据库业务测试,及介绍工具的界面使用方法。操作步骤:
3.1 Scripter创建业务脚本
3.1.1 新建业务脚本
点击“文件” -> “jdbc连接oracle新建”或者“工具栏”的“新建” 按钮。
3.1.2 JDBC连接设置
点击“工具” -> “设置”或者“工具栏”的“设置”按钮
✧ Driver Class:sql.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命令,提交事务。connectionmit();
✧ 事务回滚:执行rollback命令,事务回滚。llback ();
✧ 自动提交(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.4 Scripter保存脚本
点击“文件” -> “保存”或者“工具栏”的按钮。如脚本保存为rtsp.spet
3.1.5 Scripter调试(回放)脚本
点击 “工具栏”的按钮运行脚本,通过日志调试脚本是否正确。
1) 按钮介绍
✧ 为运行按钮,点击运行脚本进行调试
✧ 为停止按钮,点击停止运行脚本
✧ 为导出日志按钮,如果日志太多,需要查或过滤(如过滤Error或Excepiton关键字出错误日志),可导出到文件,然后通过UE或NotePad++等软件分享。
2) 红代表错误或异常
日志内容包含:“Error:”或“Exception:”关键字
3) 黑为业务消息日志
如发送日志或响应日志
4) 蓝为分隔信息或统计信息
✧ runTime:表示整个脚本运行时间
✧ requests:请求(发送)消息个数
✧ responses:返回结果集的行数
✧ throughput:吞吐量
✧ Transaction:脚本中事务统计
3.2 复制JDBC驱动包到ext/jdbc目录,并启动Agent
根据数据库类型下载对应的JDBC驱动JAR包(下载地址见“2.2 JDBC设置”的表格),如MySQL需要下载mysql-connector-java-5.1.0-bin.jar;然后复制JAR包到执行代理器agent的ext目录下的jdbc目录。
说明:
1. 工具执行时如果不到驱动包,将导致连接失败,此时产生的错误日志“create connection failed.make sure driver class 'sql.jdbc.Driver' is right,or put the '.jar' into 'ext/jdbc' directory.”
3.3 Controller创建测试场景
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.5 Controller调试测试场景
在 Controller的“控制”页面点击“调试配置”运行测试场景,则Controller会通知连接的每一个“执行代理器”执行一个用户,并将执行的过程日志返回给Controller。用户可通过日志判断配置是否正确,如果错误,可根据错误信息调整配置。
上图是运行的结果,通过查看日志定位问题或查看脚本是否执行错误:
上面界面查看执行select * from a;返回的结果。第一行为列名,下面为数据
说明:
1. 工具执行SQL命令后会等待获取结果集,并将返回的结果集里的记录行数作为响应数,统计到响应指标(response/s),即每秒获取的行数可以从监控指标response/s查看。
2. 调试测试场景时,建议查询SQL命令设置打印结果,而在正式测试时选择不打印,因为打印需要占用CPU与Socket资源。
3.6 Controller执行测试场景与查看统计图表、日志
调试配置保证配置正确后,点击“开始”运行测试场景。
3.6.1 虚拟用户统计表
图的1部分为任务运行的统计信息,包括成功数、失败数、每秒并发个数。
3.6.2 监控项统计树
图的2部分为业务脚本监控项统计信息,包括每秒请求数、事务统计等;
双击树节点查看对应监控项的曲线图表。
1) request/s
表示执行query或update的SQL命令个数
2) response/s
表示执行query或update的SQL命令的结果集的记录数,即行数。
3.6.3 曲线图表
图的3部分为显示监控项的运行情况,每秒一个数据值,构成曲线。每次只能显示一个监控项,可通过双击右边监控树节点来查看对应监控项的曲线图表。另外,可通过“切换”按钮,切换到平均曲线图表,每1分钟(或5分钟、10分钟)一个数据值,该值为当前1分钟(或5分钟、10分钟)的数据的平均值。
3.6.4 监控项实时统计表
图的4部分为监控项的统计信息,包括最大值、最小值、平均值、当前时刻统计值。每次只能显示一个监控项,可通过双击右边监控树节点来切监控项。
3.6.5 日志
运行如果有错误,日志将显示流程图运行整个过程,因此,通过日志可判断失败原因。
3.7 Analysis分析运行结果
运行结束后,点击“工具” -> “Analysis”或者“工具栏”的按钮,打开Analysis界面分析测试结果。界面与Controller基本类型,但提供更强大的分析功能。包括放大、缩小(还原)、过滤、对比、合并,产生HTML报告等功能。
3.7.1 报告汇总
进入第一个界面将显示“报告”页面,内容显示运行统计信息、整个脚本事务统计信息、自定义事务统计信息,响应码个数统计。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论