• loadrunner动态从mysql取值 [需要下载跟数据库服务器一致的dll,32位或64位]


    loadrunner中有参数化从数据库中取值,但是只是静态的,对于一些要实时取值的数据就game over了,比如取短信验证码,因为MySQL中有一个libmysql.dll,里面提供了可以操作数据库的方法,所以我们可以调用这个dll连接数据库实时从数据库中取值

    Action()
    {
    
        int status;                           //定义状态变量,0表示成功,非0表示失败  
        int db_connection;                  //定义初始化状态     
        int result;                   //定义查询结果状态                
        char *server = "*****";         // 数据库的ip地址  
        char *user = "test";                // 用户名  
        char *password = "123456";                // 密码  
        char *database = "*****";          // 数据库名称  
        int port = 3306;                    // 端口  
        int socket = NULL;               
        int flags = 0;        
        char** result_set;                 //定义查询的结果集  
    
      //数据库操作     
        status=lr_load_dll("E:\VuGen Scripts\libmysql.dll");       
    
        if (status!=0) {                           
            lr_error_message("不能加载dll文件");  
            lr_error_message("%s",mysql_error(db_connection));//打印加载失败错误信息  
            mysql_close(db_connection);  
            lr_abort();                 
        }  
    
        db_connection=mysql_init(NULL); //初始化mysql连接  
        if (db_connection==NULL ) {     //如果链接状态为空就退出  
            lr_abort();  
        }  
    
        status=mysql_real_connect(db_connection,server,user,password,database,port,socket,flags);//连接到mysql数据库  
    
    //打印连接不成功的原因  
        if (status==NULL) {   
            lr_error_message("%s",mysql_error(db_connection));
            mysql_close(db_connection);
            lr_abort();
        }
    
      //调用dll方法执行查询语句
        status=mysql_query(db_connection,"select vcode from cb_vcode_list where telphone=180******** and is_deleted=0");
    
      //打印查询失败的原因
        if (status!=0) {                                        
            lr_error_message("%s",mysql_error(db_connection));
            mysql_close(db_connection);
            lr_abort();
        }
    
        result=mysql_use_result(db_connection);//查询数据表
    
       while (result_set=(char**)mysql_fetch_row(result)) {
    
           lr_save_string(result_set[0],"vcode");       //将获取的数据保存为参数vcode
           lr_output_message("vcode is %s",lr_eval_string("{vcode}")); //打印数据
    
            if ( result_set==NULL) {           //如果查询结果行为空 ,就关闭并退出
               lr_error_message("没有查询到结果");
                mysql_free_result(result);
                mysql_close(db_connection);
                lr_abort();
            }
        }
    
       mysql_free_result(result);  //释放结果集
       mysql_close(db_connection);      //关闭数据库连接  
    
        return 0;
    }
  • 相关阅读:
    GOOGLE域名存在漏洞,可以用来建立钓鱼站点(目前已临时被封闭)
    今天的工作
    2006的最后一天,于2007年的第一天记录
    上班去
    顶你个肺
    勇气!
    东京审判
    远离我家
    8.3不仅仅是forfun
    我又对自己说,要好好写写我的文字了
  • 原文地址:https://www.cnblogs.com/SH-xuliang/p/6179748.html
Copyright © 2020-2023  润新知