MySQL数据库性能测试的方法

发表于:2018-12-07 11:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:testingstar    来源:CSDN

 3.  3
  打开数据源(ODBC),在用户DSN选项卡中点击“添加”按钮,弹出“创建新数据源”窗口。
  4.  4
  选中“MYSQL ODBC 5.1Driver”,点击“完成”按钮。
  5.  5
  弹出新窗口,在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/Java Vuser协议脚本
  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
  }
 

       上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号