LoadRunner访问 Mysql数据库

这是很久以前编写的一个测试案例,那时是为了检查大量往Mysql数据库里插入数据,看一下数据库的性能如何?服务器是否会很快就被写满了。

前期的准备工作:Mysql 数据库搭建,LoadRunner,libmysql.dll and 网上搜一份LoadRunner访问mysq的公共库。

Step1:Mysql数据库搭建(这里就不详细讲述如何安装Mysq数据库和创建表了)

IP:192.168.1.100

访问名:root

密码是:123456

数据库名是:t3db

访问端口是:3306

数据库的相关信息就是这样了!

Step2:LoadRunner如何连接mysql呢?

以下全都是在网上找到原代码,非本人创作(忘记作者是谁了,抱歉!)

复制代码
int rc;
int db_connection;
char *server = "192.168.1.100";   // 数据库的ip地址
char *user = "root";              // 数据库访问用户名
char *password = "123456";        // 密码
char *database = "t3db";          // 数据库名称
int port = 3306;                  // 访问端口
int unix_socket = NULL;
int flags = 0;
char** result_row; 
int query_result;
char szSql[256];

int MySqlInit()
{
    rc = lr_load_dll("libmysql.dll");
    db_connection = mysql_init(NULL);

    if (db_connection == NULL) 
    {
        lr_error_message("Insufficient memory");
        lr_abort();
    }

    if(rc!=0)
    {
        lr_error_message("Load MySql.dll Error!");
        lr_abort();
    }

    rc = mysql_real_connect(db_connection,server, user, password, database, port, unix_socket, flags);
    if(rc == NULL)
    {
        lr_error_message("connect mysql error! %s",mysql_error(db_connection));
         mysql_close(db_connection);
         lr_abort();
    }
    return rc;
}

int MySqlUnit()
{
    // 释放MySQL资源
    mysql_close(db_connection);
    return 0;
}

int InsertValue(char* query)
{
    rc = mysql_query(db_connection,query);
    if (rc != 0) 
    {
        lr_error_message("%s", mysql_error(db_connection));
    }

    query = NULL;
    return rc;
}


int MySqlQuery(char* szSql)
{
    rc = mysql_query(db_connection,szSql);

    if(rc != 0)
    {
        lr_error_message("%s",lr_eval_string("?"));
        lr_error_message("%s", mysql_error(db_connection));
        szSql = NULL;
        return -1;
    }

    query_result = mysql_use_result(db_connection);
    if (query_result == NULL) 
    {
        lr_error_message("%s", mysql_error(db_connection));
        mysql_free_result(query_result);
        szSql = NULL;
        return -2;
    }

    result_row = (char **)mysql_fetch_row(query_result);  
    if (result_row == NULL) 
    {
        lr_error_message("Did not expect the result set to be empty");
        mysql_free_result(query_result);
        szSql = NULL;
        return -3;
    }

    mysql_free_result(query_result);
    szSql = NULL;
    return 0;
}
复制代码

这里提供了几个公共函数,看名字大家都明白他们是干啥的。

Step3:Loadrunner里需要怎么编写写呢?

1、添加libmysql.dll到你的工程

2、把公共库添加到你的公共

3、vuser_init

vuser_init()
{
    index = 0;
    MySqlInit();  // 初始化数据库
    return 0;
}

4、vuser_end

vuser_end()
{
    MySqlUnit();  // 反初始化
    return 0;
}

5、Action

复制代码
Action()
{
    int resultValue;
    char cIndex[10];
    char onceAccount[1024];    
    char insertQuery[22584];

    index = index +1;

    // 组合插入数据库的sql语句
    strcpy(insertQuery, "INSERT INTO `t3db`.`role`(GroupID, RoleName, Account, BaseInfo, ExtInfo, LastModify) VALUES('1', '"); 
    strcat(insertQuery, lr_eval_string("{Account}"));
    strcat(insertQuery, itoa(index, cIndex, 10 ));
    strcat(insertQuery, "', 'q1031', '111', '111','2013-02-28 20:42:33')");
    strcat(insertQuery, ";\0");


    lr_start_transaction("Insert");
    resultValue = InsertValue(insertQuery);  // 调用插入函数

    if(resultValue != 0)
    {
        lr_end_transaction("Insert",LR_FAIL);
    }
    else
    {
        lr_end_transaction("Insert",LR_PASS);
    }

    sleep(100);
    return 0;
}



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用Loadrunner测试Mysql数据库性能,需要遵循以下步骤: 1. 安装Loadrunner软件,并在Loadrunner中打开Vugen(Virtual User Generator)。 2. 在Vugen中创建一个新的脚本,并选择协议类型为ODBC。 3. 配置ODBC数据源,以便与Mysql数据库建立连接。 4. 在脚本中添加数据库操作,比如插入、更新、查询等。 5. 设置负载测试参数,如虚拟用户数、持续时间、并发请求数等。 6. 运行负载测试,收集性能数据。 7. 分析性能数据,发现潜在的性能瓶颈,并进行优化。 需要注意的是,在进行负载测试前,要确保Mysql数据库已经正确地配置和优化,以避免测试结果受到数据库本身的限制。另外,负载测试要在生产环境之外进行,以避免对实际业务造成影响。 ### 回答2: 运用LoadrunnerMySQL数据库进行性能测试是一种常见的方法。Loadrunner是一款功能强大的性能测试工具,可以模拟多个用户同时对MySQL数据库进行读写操作,以评估数据库在高负载情况下的性能表现。 首先,需要创建一个测试场景,包括模拟用户的行为和操作,例如数据库查询、插入、更新和删除等操作。然后,设置虚拟用户数量和并发数,以模拟实际应用场景下的负载。 其次,配置数据库连接参数,包括数据库服务器地址、端口号、用户名和密码等。Loadrunner可以使用自带的数据库协议模拟真实的数据库请求,通过执行SQL语句向数据库发送请求。 接下来,使用Loadrunner的脚本编辑器编写脚本,包括数据库连接、查询、更新等操作。可以通过录制脚本的方式,将用户的操作转化为脚本,或者手动编写脚本以模拟特定的数据库操作。 一旦脚本编写完成,可以开始进行性能测试。Loadrunner可以按照预先设定的虚拟用户数量和并发数,同时运行多个用户脚本,模拟多个用户对数据库进行操作。 在测试运行期间,Loadrunner会收集各种性能指标,例如响应时间、吞吐量、并发数等。通过分析这些指标,可以评估数据库的性能,并找出潜在的性能瓶颈。 最后,可以根据测试结果进行优化和调整。通过不断重复测试、分析和优化的循环,可以提高MySQL数据库的性能,提供更好的用户体验。[300字] ### 回答3: 使用LoadRunner测试MySQL数据库性能可以通过以下步骤进行: 1. 安装LoadRunner:首先,需要下载并安装LoadRunner软件,确保版本兼容并按照指示进行安装。 2. 创建脚本:在LoadRunner的Vuser脚本编辑器中,创建一个新的脚本来模拟对MySQL数据库访问。脚本包括必要的代码和配置,例如数据库连接,查询语句等。 3. 参数化:通过参数化数据,可以模拟多个用户同时访问数据库。可以使用LoadRunner内置的参数化功能来实现。将脚本中的固定数据替换为参数,例如使用用户名、密码和查询语句等。 4. 创建虚拟用户:使用LoadRunner的“Virtual User Generator”创建虚拟用户,配置虚拟用户数量和行为。为每个虚拟用户分配不同的参数值,以模拟多个用户的并发访问。 5. 运行负载测试:使用LoadRunner的控制台或命令行界面来运行负载测试。在测试期间,LoadRunner会模拟多个虚拟用户并发地访问MySQL数据库,并且记录关键性能指标,如响应时间、吞吐量等。 6. 分析结果:在测试结束后,可以使用LoadRunner的分析工具来查看测试结果。可以生成图表和报告,以便更好地理解数据库性能,并识别潜在的性能瓶颈和问题。 需要注意的是,在进行MySQL数据库性能测试时,应确保测试环境的合理性和一致性。数据库服务器的配置、网络连接和负载情况等因素都可以对测试结果产生影响,因此应尽可能模拟真实的生产环境进行性能测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值