51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1773|回复: 3
打印 上一主题 下一主题

[原创] LoadRunner脚本怎么连接SQL数据库

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2014-11-18 17:00:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LoadRunner 的脚本要怎么连接SQL Server 2005数据库进行修改数据操作
给出具体代码并解释下,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2014-12-14 21:50
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2014-11-19 13:39:55 | 只看该作者
    1、下载JDBC驱动

    2、在run_time setting下的classpath把这驱动引入。

    3、代码编写如下:

    /*
    * LoadRunner Java script. (Build: _build_number_)
    *
    * Script Description:
    *                     
    */

    import lrapi.lr;
    import java.io.*;
    import java.sql.*;
    import lrapi.web;

    public class Actions
    {
    int sum=0;
    int ColumnCount=0;
    //String dbserverip = lr.eval_string("<dbserver>");
    //定义数据库连接串
    String conURL="jdbc:sqlserver://xx.xx.x.xx\\sql1;DatabaseName=NewDB";
    //连接数据库用户名
    String user="prj_tmp_rw";
    //数据库口令
    String password="xxxxx";
    Statement stat;
    ResultSet Result1;
    Connection conn;
    public int init() throws Throwable {
             //加载JDBC驱动
      lr.think_time(5);
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
      System.out.println("驱动加载完成");  
      //连接数据库

      lr.think_time(5);
      conn = DriverManager.getConnection(conURL,user,password);
      lr.think_time(5);
      stat=conn.createStatement();
      return 0;
    }//end of init

    public int action() throws Throwable {
             lr.think_time(5);
      lr.start_transaction("lr_Query_data_trans");
                    Result1=stat.executeQuery("<QueryParm>");
                    ResultSetMetaData rsmd = Result1.getMetaData();
                    ColumnCount = rsmd.getColumnCount();
                    System.out.println("结果集的列数:" + ColumnCount);
      if(ColumnCount==0)
      {
          lr.end_transaction("lr_Query_data_trans",lr.FAIL);
      }
      else
      {
          lr.end_transaction("lr_Query_data_trans",lr.PASS);
      }
      return 0;
    }//end of action

    public int end() throws Throwable {
             Result1.close();
             stat.close();
             conn.close();
      return 0;
    }//end of end
    }

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-5-6 17:37
  • 签到天数: 1137 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
    发表于 2014-11-19 13:59:32 | 只看该作者
    两种方式:
    一、通过向导方式:
    1.录制完脚本,选择要参数化的数值,右键点 Replace
    2.选properties...,进入页面后,选 data wizard
    3.specify SQL statement manually,下一步
    4.点 create,然后 “新建”,此时出现创建新数据源的页面
    5.选择 SQL Server,下一步,点“浏览”,创建文件并选择存放路径;下一步 — 完成。
    6.出现“创建SQL SERVER”的数据源,描述可以不写,服务器写要连接的机器的IP.(下拉框自动扫描所在局域网内的所有IP)下一步,选“试用用户输入登陆ID和密码的验证”,下面写登录名和密码,SQL server默认都是SA
    7. 更改默认数据库(要连接的数据库),下一步 — 完成。
    8.测试数据源,成功~
    9.回到DATA WIZARD,选择刚创建的DSN文件,连接数据库成功后,在SQL statementL里写入查询语句,查询结构就自动写入啦。

    二、直接写代码脚本:
    a) eg. JDBC 连接
    1、下载JDBC驱动(sqljdbc4.jar)
    2、在run_time setting下的classpath把这驱动引入。
    3、编写脚本

    /*
      * LoadRunner Java script. (Build: _build_number_)
      *
      * Script Description:
      *                     
      */

    import lrapi.lr;
    import java.io.*;
    import java.sql.*;
    import lrapi.web;

    public class Actions
    {
      int sum=0;
      int ColumnCount=0;
      //String dbserverip = lr.eval_string("<dbserver>");
      //定义数据库连接串
    String conURL="jdbc:sqlserver://xx.xx.x.xx\\sql1;DatabaseName=NewDB";
      //连接数据库用户名
    String user="prj_tmp_rw";
      //数据库口令
    String password="xxxxx";
      Statement stat;
      ResultSet Result1;
      Connection conn;
      public int init() throws Throwable {
              //加载JDBC驱动
      lr.think_time(5);
       Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
       System.out.println("驱动加载完成");  
       //连接数据库

      lr.think_time(5);
       conn = DriverManager.getConnection(conURL,user,password);
       lr.think_time(5);
       stat=conn.createStatement();
       return 0;
      }//end of init

    public int action() throws Throwable {
              lr.think_time(5);
       lr.start_transaction("lr_Query_data_trans");
                     Result1=stat.executeQuery("<QueryParm>");
                     ResultSetMetaData rsmd = Result1.getMetaData();
                     ColumnCount = rsmd.getColumnCount();
                     System.out.println("结果集的列数:" + ColumnCount);
       if(ColumnCount==0)
       {
           lr.end_transaction("lr_Query_data_trans",lr.FAIL);
       }
       else
       {
           lr.end_transaction("lr_Query_data_trans",lr.PASS);
       }
       return 0;
      }//end of action

    public int end() throws Throwable {
              Result1.close();
              stat.close();
              conn.close();
       return 0;
      }//end of end
    }

    b) C/C++ 连接
    在系统的管理工具->数据源中新建一个sql server数据源:

    Data Source=zloracle; UID=ZLINWD=PASSWORD



    lr脚本的代码:

    char strconn[100]="DRIVER={Oracle in OraHome92};SERVER=208;Data Source=zloracle;UID=ZLINWD=PASSWORD";



    lr_load_dll("mfcdll.dll");   //加载DLL库

    x=dbconnect(strconn);





    mfcdll.dll(VC做的)中的代码:

    int dbconnect(char strconn[])

    { // HRESULT   hResult;   

           int x=0;   

    //::AfxOleInit();

           CoInitialize(NULL);

    //     _bstr_t    conn="DRIVER={Oracle in OraHome92};SERVER=208;Data Source=zloracle;UID=ZLINWD=PASSWORD";



           _bstr_t conn=(_bstr_t)strconn;//字符串转换成_bstr_类型

          

           m_pConnection.CreateInstance("ADODB.Connection");

    //     m_pConnection->Open(conn,"","",-1);



    if   (SUCCEEDED(m_pConnection->Open(conn,"","",adModeUnknown)))

    {   

    AfxMessageBox("已连接成功");   

    x=10;

    }   

    else

        AfxMessageBox("连接失败");



           return x;
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    4#
    发表于 2014-11-20 16:56:36 | 只看该作者
    http://bbs.51testing.com/forum.php?mod=viewthread&tid=1036278
    二位高手,能不能帮忙看下这个贴子。现在还没搞定呢。连接的是MYSQL
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-7 18:11 , Processed in 0.063902 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表