2023拉

loadrunner实现MySQL操作

上一篇 / 下一篇  2015-08-31 21:55:24 / 个人分类:性能测试

/*********************************************************************
 * Created by Mercury Interactive Windows HTTP Recorder
 *
 * Created on: 2012 08  17
 *
 * Author: wanghailin
 *
 * Description: In Virtaula of account
 *********************************************************************/
Action()
{
  //#include<errno.h>
  #define MAX 100
  int i,rc,fp;
  int db_connection; // 数据库连接
  int query_result; // 查询结果集 MYSQL_RES
  char** result_row; // 查询的数据
  //char *server = "localhost";
  char *server = "127.0.0.1";
  char *user = "test";
  char *password = "test";
  char *database = "mytest";
  int port = 3306;
  int unix_socket = NULL;
  int flags = 0;
  long t;
  time(&t);

  // 找到libmysql.dll的所在位置.
  //  rc = lr_load_dll("E:\\Program Files\\MySQL\\MySQL Server 5.5\\lib\\libmysql.dll");
      rc = lr_load_dll("E:\\Program Files\\APMServ5.2.6\\MySQL5\\lib\\libmysql.dll");
 
  if (rc!= 0) {
    lr_error_message("Could not load libmysql.dll");
    lr_abort();
  }
 
  // 创建MySQL对象
  db_connection = mysql_init(NULL);
  if (db_connection == NULL) {
    lr_error_message("Insufficient memory");
    lr_abort();
  }
 
  // 连接到MySQL数据库
  rc = mysql_real_connect(db_connection, server, user, password, database, port, unix_socket, flags);
  if (rc == NULL) {
    lr_error_message("%s", mysql_error(db_connection));
    mysql_close(db_connection);
    lr_abort();
  }
    // 打开文件资源(初始化)
  fp=fopen("E:\\AutoTest\\VirtualAccount\\CreateVirtualData.txt","at");
  if(fp == NULL){
     lr_log_message("Error !");
   //fprintf(stderr,"fopen failed!%s\n",strerror(errno));
  fclose(fp);
  lr_abort();
  }

//  其中 crtime必须为当日日期 pay_id每条记录不能重复。number为商品ID,money为本次入账金额。
   for(i=0;i<=MAX;i++)
   {
  
   // lr_output_message("Count: %d ",i);  
     lr_save_string (lr_eval_string("insert into tudou_money (`number`,`card`, `name`, `time`, `cwmks`, `crmks`, `wzmks`, `num`, `cwtime`, `wztime`, `crtime`, `out`, `pay_id`) "
 "VALUES ('6840154','{ParMoney}','Test001', 'Test001', '2012-08-17 09:12:12', '1', '1', '1', '1', '2012-08-17 09:12:12', '2012-08-17 09:12:12', '2012-08-17 09:12:12', '1', '{PayId001}')"),"paramInsertQuery");
  rc = mysql_query(db_connection, lr_eval_string("{paramInsertQuery}"));
     
    lr_output_message("--------Current SQL is :%s",lr_eval_string("{paramInsertQuery}"));//Print Current SQL
   //写文件操作
    fprintf(fp,"CurrnetTime is:%s Counts:%d ---Current SQL is :%s\n",ctime(&t),i,lr_eval_string("{paramInsertQuery}"));

    lr_think_time(1);
     lr_save_string (lr_eval_string("insert into tudou_money (`number`, `money`, `card`, `name`, `time`, `cwmks`, `crmks`, `wzmks`, `num`, `cwtime`, `wztime`, `crtime`, `out`, `pay_id`) "
 "VALUES ('6840166','{ParMoney}','Test002', 'Test002', '2012-08-17 09:12:12', '1', '1', '1', '1', '2012-08-17 09:12:12', '2012-08-17 09:12:12', '2012-08-17 09:12:12', '1', '{PayId002}')"),"paramInsertQuery");
   rc = mysql_query(db_connection, lr_eval_string("{paramInsertQuery}"));

   //对执行语句的结果判断,当出错时输出错误到指定文件中并关闭资源终止脚本执行。
    if (rc != NULL) {
    fprintf(fp,"CurrnetTime is:%s Counts:%d ---Error SQL is :%s\n",ctime(&t),i,lr_eval_string("{paramInsertQuery}"));
    mysql_close(db_connection);
 fclose(fp);
    lr_abort();
  }
 //    lr_think_time(1);
     lr_save_string (lr_eval_string("insert into tudou_money (`number`, `money`, `card`, `name`, `time`, `cwmks`, `crmks`, `wzmks`, `num`, `cwtime`, `wztime`, `crtime`, `out`, `pay_id`) "
 "VALUES ('681080','{ParMoney}','Test003', 'Test003', '2012-08-17 09:12:12', '1', '1', '1', '1', '2012-08-17 12:12:12', '2012-08-17 12:12:12', '2012-08-17 09:12:12', '1', '{PayId003}')"),"paramInsertQuery");
  rc = mysql_query(db_connection, lr_eval_string("{paramInsertQuery}"));
 
     lr_save_string (lr_eval_string("insert into tudou_money (`number`, `money`, `card`, `name`, `time`, `cwmks`, `crmks`, `wzmks`, `num`, `cwtime`, `wztime`, `crtime`, `out`, `pay_id`) "
 "VALUES ('6840270','{ParMoney}','Test005', 'Test005', '2012-08-17 12:12:12', '1', '1', '1', '1', '2012-08-17 12:12:12', '2012-08-17 12:12:12', '2012-08-17 09:12:12', '1', '{PayId005}')"),"paramInsertQuery");
  rc = mysql_query(db_connection, lr_eval_string("{paramInsertQuery}"));


   }
  if (rc != 0) {
    lr_error_message("%s", mysql_error(db_connection));
    mysql_close(db_connection);
    lr_abort();
  }
  /*
  // 从数据库读取当前插入的数据并显示
  lr_save_string (lr_eval_string("select * from test_users where user_id='1'"),"paramSelectQuery");
  rc = mysql_query(db_connection, lr_eval_string("{paramSelectQuery}"));
  lr_output_message("--------Current SQL is :%s",lr_eval_string("{paramSelectQuery}"));
  if (rc != 0) {
    lr_error_message("%s", mysql_error(db_connection));
    mysql_close(db_connection);
    lr_abort();
  }
 
  query_result = mysql_use_result(db_connection);
  if (query_result == NULL) {
    lr_error_message("%s", mysql_error(db_connection));
    mysql_free_result(query_result);
    mysql_close(db_connection);
    lr_abort();
  }
  */
    // 释放MySQL与文件资源
  mysql_close(db_connection);
  fclose(fp);
  return 0;
}


TAG:

 

评分:0

我来说两句

Open Toolbar