`
liyiye
  • 浏览: 421500 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Loadrunner 测试sql语句性能

阅读更多

本次通过loadrunner录制Sql Server介绍一下如何测试一个sql语句或存储过程的执行性能。

主要分如下几个步骤完成:

第一步、测试准备

第二步、配置ODBC数据源

第三步、录制SQL语句在Sql Server查询分析器中的运行过程

第四步、优化录制脚本,设置事务

第五步、改变查询数量级查看SQL语句的性能

第六步、在controller中运行脚本

转载请注明出处:http://www.51testing.com/?41972

下面开始具体的介绍:

测试准备阶段我们首先要确认测试数据库服务器:我们可以在本地安装SQL SERVER数据库服务端及客户端,也可以确定一台装好的SQL SERVER服务器。

接下来,准备测试数据:对数据库测试时我们要考虑的不是SQL语句是否能够正确执行,而是在某数量级的情况下SQL语句的执行效率及数据库服务的运行情况,所以我们分别准备不同数量级的测试数据,即根据实际的业务情况预估数据库中的记录数,在本次讲解中我们不考虑业务逻辑也不考虑数据表之间的关系,我们只建立一张表,并向此表中加入不同数量级的数据,如分别加入1000条、10000条、50000条、100000条数据查看某SQL语句的执行效率。

在查询分析器中运行如下脚本:

--创建测试数据库

create database loadrunner_test;

use loadrunner_test

--创建测试数据表

create table test_table

(username varchar(50),sex int,age int,address varchar(100),post int)

--通过一段程序插入不同数量级的记录,具体的语法在这里就不多说了

declare   @i   int  

  set   @i=0  

  while   @i<1000    //循环1000次,可以根据测试数据情况改变插入条数

  begin

      BEGIN TRAN T1

      insert into test_table (username,sex,age,address,post) values ('户瑞海'+cast(@i as varchar),@i-1,@i+1,'北京市和平里'+cast(@i as varchar)+'',123456); 

      IF @@ERROR <> 0

         begin

           rollback;

           select @@error

         end

      else

         begin

           commit;

           set   @i   =   @i+1

         end    

  end

转载请注明出处:http://www.51testing.com/?41972

好了,执行完上述语句后,建立的数据表中已经有1000条记录了,下面进行第二步的操作,配置ODBC数据源,为了能让loadrunner能够通过ODBC协议连接到我们建立的SQL SERVER数据路,我们需要在本机上建立ODBC数据源,建立方法如下:

控制面板性能和维护管理工具数据源(ODBC--添加,在列表中选择SQL SERVER点击完成,根据向导输入数据源名称,链接的服务器,下一步,输入链接数据库的用户名和密码,更改链接的数据库,完成ODBC的配置,如果配置正确的话,在最后一步点击“测试数据源”,会弹出测试成功的提示。

配置好ODBC数据源后就要录制SQL语句在查询分析器中的执行过程了:

1、  打开loadrunner,选择ODBC协议

2、  start recording中的application type 选择win32 applicationprogram to record中录入SQL SERVER查询分析器的路径“..\安装目录\isqlw.exe

3、  开始录制,首先通过查询分析器登录SQL SERVER,在打开的查询分析器窗口中输入要测试的SQL语句,如“select * from test_table;

4、  在查询分析器中执行该语句,执行完成后,结束录制

好了,现在就可以看到loadrunner生成的脚本了(由于脚本过长,在这里就不粘贴了,有需要的朋友可以加我QQ,我把脚本发给你们),通过这些语句,我们可以看出,登录数据库的过程、执行SQL语句的过程

转载请注明出处:http://www.51testing.com/?41972

接下来,我们来优化脚本,我们分别为数据库登录部分和执行SQL语句的部分加一个事物,在增加一个double的变量获取事务执行时间,简单内容如下:

Action()

{  double trans_time;  //定义一个double型变量用来保存事务执行时间

   lr_start_transaction("sqserver_login");  //设置登录事务的开始

lrd_init(&InitInfo, DBTypeVersion);   //初始化链接(下面的都是loadrunner生成的脚本了,大家可以通过帮助查到每个函数的意思)

       lrd_open_context(&Ctx1, LRD_DBTYPE_ODBC, 0, 0, 0);

       lrd_db_option(Ctx1, OT_ODBC_OV_ODBC3, 0, 0);

       lrd_alloc_connection(&Con1, LRD_DBTYPE_ODBC, Ctx1, 0 /*Unused*/, 0);

    ………………

trans_time=lr_get_transaction_duration( "sqserver_login" ); //获得登录数据库的时间

    lr_output_message("sqserver_login事务耗时 %f ", trans_time); //输出该时间

    lr_end_transaction("sqserver_login", LR_AUTO);  //结束登录事务

lr_start_transaction("start_select");//开始查询事务

lrd_cancel(0, Csr2, 0 /*Unused*/, 0);

lrd_stmt(Csr2, "select * from test_table;\r\n", -1, 1, 0 /*None*/, 0);//此句为执行的SQL

lrd_bind_cols(Csr2, BCInfo_D42, 0);

lrd_fetch(Csr2, -10, 1, 0, PrintRow24, 0);

……………..

trans_time=lr_get_transaction_duration( "start_select" ); //获得该SQL的执行时间

lr_output_message("start_select事务耗时 %f ", trans_time); //输出该时间

lr_end_transaction("start_select", LR_AUTO); //结束查询事务

优化后,在执行上述脚本后,就可以得到登录到数据库的时间及运行select * from test_table这条语句的时间了,当然我们也可以根据实际情况对该条语句进行参数化,可以测试多条语句的执行时间,也可以将该语句改为调用存储过程的语句来测试存储过程的运行时间。

接下来把该脚本在controller中运行,设置虚拟用户数,设置集合点,这些操作我就不说了,但是值得注意的是,没有Mercury 授权的SQL SERVER用户license,在运行该脚本时回报错,提示“You do not have a license for this Vuser type.

Please contact Mercury Interactive to renew your license.”我们公司穷啊买不起loadrunner,所以我也无法继续试验,希望有license朋友们监控一下运行结果!

最起码在VUGen中运行该脚本我们可以得到任意一个SQL语句及存储过程的执行时间,如果我们测试的B/S结构的程序,我们也可以通过HTML协议录制的脚本在CONTROLLER中监控SQL SERVER服务器的性能情况,这样两方面结合起来就可以对数据库性能做一个完整的监控了。

本人对LOADRUNNER也是在摸索中,如果文章有写的不对,或理解错误的地方请指出,不甚感激

转载请注明出处:http://www.51testing.com/?41972

分享到:
评论

相关推荐

    Loadrunner测试数据库性能,测试SQL语句性能的脚本例子.docx

    Loadrunner测试数据库性能、测试SQL语句性能的脚本例子 Loadrunner是HP公司的一款性能测试工具,通过模拟大量用户同时访问系统的方式来测试系统的性能。Loadrunner支持多种协议和编程语言,可以用来测试各种类型的...

    Loadrunner测试数据库性能测试SQL语句性能的脚本例子.pdf

    Loadrunner 测试数据库性能测试 SQL 语句性能的脚本例子 Loadrunner 是一款性能测试工具,用于测试软件应用程序的性能和可扩展性。该工具可以模拟大量用户同时访问应用程序,从而测试应用程序的性能和可靠性。 ...

    Loadrunner测试数据库性能,测试SQL语句性能的脚本例子.pdf

    在本文中,我们将深入探讨如何使用LoadRunner进行数据库性能测试,特别是针对SQL语句性能的测试。LoadRunner是一款强大的负载和性能测试工具,它允许用户模拟大量并发用户执行业务流程,以评估系统在高负载下的性能...

    sql语句性能测试详解

    【SQL语句性能测试详解】 在软件开发中,SQL语句的性能是数据库管理系统的关键因素,因为它直接影响到应用程序的响应时间和资源消耗。本篇将详细阐述如何使用LoadRunner工具来测试SQL语句或存储过程的执行性能,...

    压测Oracle的SQL语句的性能情况

    本文将深入探讨如何利用压力测试工具来评估和优化Oracle数据库中的SQL语句性能。 标题"压测Oracle的SQL语句的性能情况"暗示了我们关注的是在高负载情况下,Oracle数据库处理SQL查询的能力。压力测试(Pressure ...

    LoadRunner性能测试工具实战视频教程【全套26集】

    LoadRunner性能测试工具实战视频教程【全套26集】 随机函数 在软件测试工具中如何巧用LoadRunner的随机函数。 LoadRunner有自带的随机函数,如果巧妙的加以采用,能解决一些看似很困难的实际问题。 一个项目的性能...

    loadrunner测试MySQL脚本

    【LoadRunner测试MySQL脚本】是使用HP的LoadRunner工具对MySQL数据库进行性能测试的一种方法。LoadRunner是一款功能强大的性能测试工具,它可以帮助我们评估和优化应用程序在高负载下的表现,确保系统的稳定性和可靠...

    《零基础学习软件测试》之LoadRunner

    LoadRunner是一款由HP公司(现被Micro Focus收购)开发的强大性能测试工具,适用于各种类型的应用程序,包括Web、客户端/服务器、ERP、数据库等。它允许用户模拟成千上万的并发用户来测试系统在高负载下的性能、稳定...

    LoadRunner对数据库的监控指标(sqlserver/oracle/db2)

    ### LoadRunner对数据库的监控...通过以上对于SQL Server、Oracle以及DB2中的关键监控指标的详细解释,可以帮助我们在进行性能测试时更好地理解和分析数据库性能瓶颈,从而采取相应的优化措施提升整体应用的性能表现。

    DB2性能指标及监控

    1. 通过性能测试工具(如LoadRunner)在模拟测试中获取性能数据。 2. 应用层日志中统计事务吞吐量和响应时间。 3. 数据库层的性能监控:使用DB2提供的特定命令来获取从数据库启动到现在为止的事务吞吐量和平均响应...

    MySQL LoadRunner libraries

    在实际测试过程中,工程师会使用LoadRunner的Vuser脚本语言(LRVL)编写测试脚本,利用mysql_library中的函数进行操作,例如`mysql_connect`用于建立数据库连接,`mysql_query`用于执行SQL语句,`mysql_fetch_row`...

    LoadRunner数据库连接及参数设置(oracle)

    首先,选择“文件”作为数据源,然后在数据向导对话框中,选择“手动指定SQL语句”。 - 创建数据源,这里我们选择“Oracle in OraHome92”作为数据库驱动,并提供相应的数据源名称、描述、TNS服务名称、用户名和...

    LoadRunner参数化取值与连接数据库

    通过编写简单的SQL语句,我们可以轻松创建复用性强、规模大的数据集,这在进行高并发的压力测试时尤其有用,提高了性能测试的效率和准确性。 总的来说,LoadRunner的参数化功能结合数据库连接,为性能测试提供了...

    mysql性能测试及分析

    LoadRunner是一款强大的负载和性能测试工具,常用于测试应用程序的性能。在这个场景中,我们将讨论如何利用LoadRunner 8的C API类型的Vuser来测试MySQL的性能。 C API(应用程序编程接口)是LoadRunner提供的一种...

    loadrunner参数化连接数据库

    LoadRunner 是一款广泛使用的性能测试工具,能够模拟大量用户并发访问应用系统的情况,从而评估系统的性能。在进行性能测试时,参数化是一种非常重要的技术手段,它允许测试脚本动态地获取数据,以此来模拟真实用户...

    MySQL DBA必备的mycat性能测试案例

    - LoadRunner:商业级的性能测试工具,功能强大,支持多种协议,包括数据库协议。 4. **测试策略** - **负载测试**:逐步增加负载,观察系统在不同负载下的性能表现。 - **压力测试**:超过正常负载,检查系统在...

    loadRunner 中文完整教程

    5. **协议知识**:LoadRunner支持多种协议,如HTTP/HTTPS、FTP、Oracle、SQL等,理解这些协议在性能测试中的作用是至关重要的。 6. **脚本语言LR-VuGen**:基于C语言的变种,掌握变量声明、函数调用、条件语句、...

    lr测试脚本

    LR测试脚本,全称是LoadRunner测试脚本,是一种性能测试工具,由HP公司(现已被Micro Focus收购)开发,用于模拟大量并发用户对应用系统进行负载和压力测试。在本场景中,"lr的sql测试脚本"指的是使用LoadRunner进行...

Global site tag (gtag.js) - Google Analytics