• 【性能测试】:loadrunner直压MYSQL数据库的脚本开发


    有时性能测试,会涉及到直接压测数据库,测试数据库处理sql的水平,或者通过sql脚本向数据库写数据做铺地数据

    这里贴上一个自己用的对数据库操作的脚本

    一,首先要去下载一个LR压MYSQL的一个库文件,放到bin和include目录下

    二,在头文件中,添加对库的引用

    
    

    #include "Ptt_Mysql.h"
    #include "mysql.h"
    #include "mysql_com.h"
    #include "mysql_time.h"
    #include "mysql_version.h"
    #include "typelib.h"
    #include "my_list.h"
    #include "my_alloc.h"
    #define MYSQLSERVER "HOSTIP"
    #define MYSQLUSERNAME "USER"
    #define MYSQLPASSWORD "PASSWORD"
    #define MYSQLDB "DATABASE_NAME"
    #define MYSQLPORT "PORT"
    char chQuery[1024];
    int statu=1;
    int status=0;
    MYSQL *Mconn;
    char sql_query[256], sql_sub_query[50];
    int i=0, res=0, conn_fail=0, conn_iter=0;
    char response[50];// to go
    vuser_init()
    {
    lr_load_dll ("libmysql.dll");
    lr_start_transaction("mysql_conn"); //设置一个连接数据库的事务
    /*------------------------------------------------------------------------*/
    /* Initialise MySQL */
    if(!(Mconn = mysql_init(NULL)))
    {
    lr_message("Error -1: Cannot initialize MySQL - %s", mysql_error(Mconn));
    //return -1;
    statu = 0;
    lr_end_transaction("mysql_conn", LR_FAIL); //初始化数据库失败判定事务失败
    }
    /*------------------------------------------------------------------------*/
    do
    {
    /* Connect to database */
    if (!mysql_real_connect(Mconn, MYSQLSERVER, MYSQLUSERNAME, MYSQLPASSWORD, MYSQLDB, atoi(MYSQLPORT), NULL, 0))
    {
    conn_fail = -2;
    conn_iter++;
    sleep(100);
    }
    else
    conn_fail = 0;
    }
    while(conn_fail < 0 && conn_iter < 10);
    if (conn_fail < 0)
    {
    lr_message("Error -2: %s", mysql_error(Mconn));
    //mysql_close(Mconn);
    //return -2;
    statu = 0;
    lr_end_transaction("mysql_conn", LR_FAIL); //连接数据库失败判定事务失败
    }
    else
    {
    //lr_message("MySql - Good Connection");
    //mysql_close(Mconn);
    statu = 1;
    lr_end_transaction("mysql_conn", LR_PASS); //连接数据库成功,事务通过。
    }
    return 0;
    }



    三,Action中的脚本

    
    

    Action()
    {
    if(statu){ //成功连接数据库后才进行执行sql的操作
    lr_start_transaction("mysql_select");
    sprintf(chQuery, "SELECT * from cms-member-dev.cms_member_basic where id = '1007449268564533248'");//查询论坛用户
    //sprintf(chQuery,"UPDATE lr_test SET password = "%s" WHERE username='tom'",lr_eval_string ("{pwd}"));
    /*
    sprintf(chQuery,"update pre_ucenter_members set username='dd' where username='qq' ");//更改用户名qq为dd
    sprintf(chQuery,"delete from pre_ucenter_members ORDER BY uid desc LIMIT 1");//删除最后添加的一条数据
    */
    status = lr_mysql_query(Mconn, chQuery);
    if(status!=0){ //判断sql是否执行成功
    lr_end_transaction("mysql_select",LR_FAIL);
    }else{
    lr_end_transaction("mysql_select",LR_PASS);
    }

    lr_start_transaction("mysql_insert");
    sprintf(chQuery,"SELECT * from cms_member_basic where id = '1007449268564533248'");//插入数据
    status = lr_mysql_query(Mconn, chQuery);
    if(status!=0){ //判断sql是否执行成功
    lr_end_transaction("mysql_insert",LR_FAIL);
    }else{
    lr_end_transaction("mysql_insert",LR_PASS);
    }
    }
    return 0;
    }

     

     三 VUSER_END()中的脚本

    vuser_end()  
    {  
        lr_mysql_disconnect(Mconn); //关闭数据库连接  
        return 0;  
    } 
    

      

  • 相关阅读:
    对比度受限的自适应直方图均衡化(CLAHE)
    双边滤波
    快速高斯滤波
    积分图像的应用(二):非局部均值去噪(NL-means)
    非局部均值去噪(NL-means)
    积分图像的应用(一):局部标准差 分类: 图像处理 Matlab 2015-06-06 13:31 137人阅读 评论(0) 收藏
    积分图像 分类: 图像处理 Matlab 2015-06-06 10:30 149人阅读 评论(0) 收藏
    双边滤波与引导滤波 分类: 图像处理 2015-04-29 14:52 48人阅读 评论(0) 收藏
    UE4射击小游戏原型
    UnrealEngine4 尝鲜
  • 原文地址:https://www.cnblogs.com/fy--/p/8888507.html
Copyright © 2020-2023  润新知