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;
}

整个过程就是如此了……

时间: 2024-11-10 11:18:51

LoadRunner访问Mysql数据库(转)的相关文章

关于利用PHP访问MySql数据库的逻辑操作以及增删改查实例操作

PHP访问MySql数据库 <?php //造连接对象$db = new MySQLi("localhost","root","","0710_test"); //写SQL语句$sql = "select * from student";//检测连接数据库是否成功,失败返回"连接失败",并退出程序 if(mysqli_connect_error()){    die("连

[JavaWeb基础] 003.JAVA访问Mysql数据库

上面两篇讲解了简单的JSP + Servlet的搭建和请求,那么后面我们肯定要用到数据交互,也就是操纵数据库的数据,包括对数字的增加,删除,修改,查询.我们就用简单的MySql来做例子 我们需要引入驱动包mysql-connector-java.jar,自行去网上下载,有很多. 下面我跟着代码看看怎么进行增删改查 1.打开数据库 // 驱动程序名 private String driver = "com.mysql.jdbc.Driver"; // URL指向要访问的数据库名scutc

Python访问MySQL数据库

#encoding: utf-8 import mysql.connector __author__ = 'Administrator' config={'host':'127.0.0.1',#默认127.0.0.1 'user':'root', 'password':'root', 'port':3306 ,#默认即为3306 'database':'test', 'charset':'utf8'#默认即为utf8 } if __name__=="__main__": print(c

mysql的安装、C++访问mysql数据库、编码设置问题

一.mysql的安装,这个相对简单,直接去官网下载mysql安装程序,就可以完成安装过程,网上有很多安装教程,这个没什么注意事项. 二.C++访问mysql,主要是用到mysql定义的头文件,内部定义了各种数据结构和函数,比如MYSQL,MYSQL_RES,MYSQL_ROW,mysql_real_connect等等一系列的结构和函数.这里要注意的就是将头文件及lib文件以及dll文件配置到当前开发环境来进行访问mysql数据库. 以最新的vs2013作为示例说一下配置过程.为了写的清晰点,在网

PHP访问MySQL数据库

第9章 PHP访问MySQL数据库 1.  PHP访问MySQL数据库服务器的流程 之前学习mysql的时候,采用的是"客户机/服务器"的体系结构 mysql>select * from a;    -------->MySQL数据库服务器 < --------- PHP访问MySQL数据库的时候,我们的PHP则充当了客户机的角色 PHP充当了客户机的角色----------->MySQL数据库服务器 <----------- 接下来我们可以通过phpin

c#访问mysql数据库

1.需求 使用c#访问mysql数据库,实现curd 2.安装和类库引用 http://www.tuicool.com/articles/rAbuee 包的下载地址在百度云盘上,也可以通过官方下载 3.数据库操作 读取 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; using

java文件来演示如何访问MySQL数据库

java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE TABLE STUDENT ( SNO CHAR(7) NOT NULL, SNAME VARCHAR(8) NOT NULL, SEX CHAR(2) NOT NULL, BDATE DATE NOT NULL, HEIGHT DEC(5,2) DEFAULT 000.00, PRIMARY KE

C#访问MySQL数据库(winform+EF)

原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winform 访问MYSQL,当然使用winfrom,还是wfp,以及其他的技术这里不讨论,个人觉得这个比较上手快. http://jingyan.baidu.com/article/642c9d34aa809a644a46f717.html 1.安装MYSQl数据库,这里略过,可以参考此文档进行安装.

关于.Net使用企业库访问MySql数据库

关于.Net使用企业库访问MySql数据库 在网上看了很多又重写又加WebConfig中的内容,其实不用那么麻烦 企业库5.0访问MySql数据库只需要在Web服务器安装mysql-connector-net即可. mysql-connector-net官方下载:http://dev.mysql.com/downloads/connector/net/