• Jememeter和Loadrunner测试MySQL性能


    From:http://blog.csdn.net/testingstar/article/details/60579454

    MySQL数据库性能测试的方法

    前置条件:

    安装系统:windows 7 64

    MySQL版本:mysql-installer-community-5.6.35.0

    Java版本:jdk1.6.0_45

    Jmeter版本:apache-jmeter-3.1

    Mysql odbc驱动:mysql-connector-odbc-5.1.7-win32.msi

    Mysql jdbc驱动:mysql-connector-java-5.1.7-bin.jar

    使用Jmeter JDBC Request方式实现

    1.

    打开JMeter,点击测试计划,点击浏览...”按钮,将你的JDBC驱动添加进来。

    2.

    添加一个线程组,

    右键点击线程组,在下面添加一个“JDBC Connection Configuration”

    来配置一下JDBCConnection Configuration页面。

    3.

    右键点击线程组,在下面添加一个“JDBC request”,并配置请求信息;

    4.

    添加断言。

    右键点击线程组---->添加--->断言---->响应断言。

    5.

    我们来添加一些监听器来行查看(根据实际的需要配置监听器)

    添加一个断言结果:

    右键点击线程组---->添加--->监听器---->结果断言。

    添加一个图形结果:

    右键点击线程组---->添加--->监听器---->图形结果。

    添加一个查看结果树:

    右键点击线程组---->添加--->监听器---->查看结果树。

    下面是添加所有东东的列表:

    6.

    在线程组页面设置用户数、启动时间、循环次数

    点击菜单栏运行”----“启动

    下面是结果:

    其它的结果图片就不贴了......

     

     

    使用Loadrunner 11 Web Services协议中的lr_db_xxxx系列函数方式实现

    1.      安装MySQL ODBC驱动

     

    在网上下载一个是MYSQL数据库的ODBC驱动程序:mysql-connector-odbc-5.1.7-win32.msi (已上传),以默认选项安装该文件。]

    2.  2

    打开数据源:开始->设置->控制面板->找到数据源,或者直接访问数据源启动配置路径

    3.  3

    打开数据源(ODBC),在用户DSN选项卡中点击“添加”按钮,弹出“创建新数据源”窗口。

    4.  4

    选中“MYSQL ODBC 5.1Driver”,点击“完成”按钮。

    5.  5

    弹出新窗口,在login选项卡中填写数据源信息。
    Data Source Name 数据原名称;
    Discription 描述(选填);
    Server 数据源计算机的IP;
    User 数据库用户名;
    Password 数据库密码;
    DataBase 数据源所要连接的数据库;

    6.  6

    配置完后,点击“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

    }

  • 相关阅读:
    gcc代码反汇编查看内存分布[1]: gcc
    centos5.5 安装git
    裸机代码(uboot) : clear bss
    互联网协议入门
    git从github下载代码
    linux账户管理(centos)
    jz2440: linux/arch/arm/下面的plat-和mach-
    位置无关码
    【漫画】什么是外部排序?【转】
    快速排序 Vs. 归并排序 Vs. 堆排序——谁才是最强的排序算法
  • 原文地址:https://www.cnblogs.com/boonya/p/7041752.html
Copyright © 2020-2023  润新知