天天看點

【LoadRunner技術講座12】使用LoadRunner監測MySQL資料庫的性能-方法二

方法二:通過編寫腳本來進行監控

// mysql_dll.cpp : Defines the entry point for the DLL application.

#include "stdafx.h"

#include "stdlib.h"

MYSQL *conn=NULL;

MYSQL_RES *p_res_ptr=NULL;

MYSQL_ROW sqlrows;

BOOL APIENTRY DllMain( HANDLE hModule,

                       DWORD  ul_reason_for_call,

                       LPVOID lpReserved

      )

{

    return TRUE;

}

extern "C" int _declspec(dllexport) init_mysql_connection(char *str_server,char *str_username,char *str_pwd,char *str_Table)

conn=mysql_init(NULL);

    if(!conn)

  printf("\nFailed to initate MySQL connection");

  return 1;

  exit(0);

    else

  printf("\nSuccess to initate MySQL connection");

  if (!mysql_real_connect(conn,str_server,str_username,str_pwd,str_Table,0,NULL,0))

  {

   printf( "Failed to connect to MySQL: Error: %s\n", mysql_error(conn));

  }

  else

   printf("\nLogged on to %s sucessfully",str_server);

   return 0;

  return 0;

extern "C" int _declspec(dllexport) close_mysql_connection()

if(conn=NULL)

  printf("\nConnection is Null");

else

     mysql_free_result(p_res_ptr);

  printf("\nClose connection");

  mysql_close(conn);  

//"show status like \'qcache%\'"

extern "C" int _declspec(dllexport) get_mysql_table_query(char *str_query)

int res=0;

res=mysql_query(conn,str_query);

if(res)

  printf("Failed to mysql query: Error: %s\n", mysql_error(conn));

  printf("\nSucess in Mysql Query");

extern "C" int _declspec(dllexport) get_mysql_query_data(char *str_query,char *str_data)

    unsigned long u1_numrow=0;

    unsigned int i_index = 0;

p_res_ptr=mysql_use_result(conn);

if(p_res_ptr){

  while((sqlrows=mysql_fetch_row(p_res_ptr))){

   if(*sqlrows[0]=*str_query)

   {

    strcpy(str_data,sqlrows[1]);

   }

return NULL;

lr 9.1中代碼:

Action()

        int i=0;

        double x;

        char *str_data;

        str_data=(char *)malloc(20*sizeof(char));

        lr_load_dll("D:\\vc\\mysql_dll\\Debug\\mysql_dll.dll");

        i= init_mysql_connection("localhost","root","123456","mysql");

        lr_output_message("%d",i);

       for(;;)

       {

            get_mysql_query_data("Qcache_hits",str_data);

            i=get_mysql_table_query("show status like \'qcache%\'");

            lr_output_message("%d",i);

            x = atof(str_data);

            lr_user_data_point("hits",x);

            lr_think_time(5);

       }

        lr_output_message("%d",x);

     close_mysql_connection();

return 0;

本文轉自 小強測試幫 51CTO部落格,原文連結:http://blog.51cto.com/xqtesting/808761,如需轉載請自行聯系原作者