zoukankan      html  css  js  c++  java
  • loadrunner动态从mysql取值

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

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

     1 Action()
     2 {
     3 
     4     int status;                           //定义状态变量,0表示成功,非0表示失败  
     5     int db_connection;                  //定义初始化状态     
     6     int result;                   //定义查询结果状态                
     7     char *server = "*****";         // 数据库的ip地址  
     8     char *user = "test";                // 用户名  
     9     char *password = "123456";                // 密码  
    10     char *database = "*****";          // 数据库名称  
    11     int port = 3306;                    // 端口  
    12     int socket = NULL;               
    13     int flags = 0;        
    14     char** result_set;                 //定义查询的结果集  
    15 
    16   //数据库操作     
    17     status=lr_load_dll("E:\VuGen Scripts\libmysql.dll");       
    18 
    19     if (status!=0) {                           
    20         lr_error_message("不能加载dll文件");  
    21         lr_error_message("%s",mysql_error(db_connection));//打印加载失败错误信息  
    22         mysql_close(db_connection);  
    23         lr_abort();                 
    24     }  
    25 
    26     db_connection=mysql_init(NULL); //初始化mysql连接  
    27     if (db_connection==NULL ) {     //如果链接状态为空就退出  
    28         lr_abort();  
    29     }  
    30 
    31     status=mysql_real_connect(db_connection,server,user,password,database,port,socket,flags);//连接到mysql数据库  
    32 
    33 //打印连接不成功的原因  
    34     if (status==NULL) {   
    35         lr_error_message("%s",mysql_error(db_connection));
    36         mysql_close(db_connection);
    37         lr_abort();
    38     }
    39 
    40   //调用dll方法执行查询语句
    41     status=mysql_query(db_connection,"select vcode from cb_vcode_list where telphone=180******** and is_deleted=0");
    42 
    43   //打印查询失败的原因
    44     if (status!=0) {                                        
    45         lr_error_message("%s",mysql_error(db_connection));
    46         mysql_close(db_connection);
    47         lr_abort();
    48     }
    49 
    50     result=mysql_use_result(db_connection);//查询数据表
    51 
    52    while (result_set=(char**)mysql_fetch_row(result)) {
    53 
    54        lr_save_string(result_set[0],"vcode");       //将获取的数据保存为参数vcode
    55        lr_output_message("vcode is %s",lr_eval_string("{vcode}")); //打印数据
    56 
    57         if ( result_set==NULL) {           //如果查询结果行为空 ,就关闭并退出
    58            lr_error_message("没有查询到结果");
    59             mysql_free_result(result);
    60             mysql_close(db_connection);
    61             lr_abort();
    62         }
    63     }
    64 
    65    mysql_free_result(result);  //释放结果集
    66    mysql_close(db_connection);      //关闭数据库连接  
    67 
    68     return 0;
    69 }
  • 相关阅读:
    gitlab搭建
    java数组
    安裝nextcloud
    Spring的定时任务@Scheduled(cron = "0 0 1 * * *")
    java内存结构(下)
    java内存结构(上)
    多线程的三个特性
    @RequestBody用法
    SwaggerAPI注解详解(转载)
    在jpanel中添加jbutton并自由设置按钮大小和位置
  • 原文地址:https://www.cnblogs.com/liu-ke/p/6363658.html
Copyright © 2011-2022 走看看