因為loadrunner原生未提供針對mysql測試的功能
國內網絡上流傳的都是ODBC連接mysql進行性能測試,過程較為繁瑣
而LR本身推薦的是使用提供的dll庫或者自行編寫dll庫進行測試。
只要能在網上找到支持自編寫dll庫的license即可
本文方法參考的主要是Bish.co.uk論壇,有mysql,php和loadrunner板塊,
使用它們編寫的mysql鏈接庫
---–待測試庫環境準備--------
GRANT ALL PRIVILEGES ON *.* TO'root'@'windowsIP'
IDENTIFIED BY'root'WITHGRANTOPTION;
配置好測試數據庫和表
-----–LoadRunner運行庫準備-------
a.解壓MySQL LoadRunner libraries.zip版本1 版本2 中的文件至LR安裝目錄
b.在LR的vuser腳本的init中加入實例信息
#include "Ptt_Mysql.h" #define MYSQLSERVER "192.168.2.5" #define MYSQLUSERNAME "root" #define MYSQLPASSWORD "root" #define MYSQLDB "tpch_1" #define MYSQLPORT "5029" |
c.在action腳本中 每個sql語句前加入
lr_load_dll("libmysql.dll");
-------–vu腳本編寫方法,c語言--------–
//action中加入 char chQuery[128]; MYSQL *Mconn; //將sql語句保存在 char中 lr_load_dll("libmysql.dll"); //每個sql前加入讀取dll庫 Mconn = lr_mysql_connect(MYSQLSERVER, MYSQLUSERNAME, MYSQLPASSWORD, MYSQLDB, atoi(MYSQLPORT)); //從init的define中讀取連接參數 sprintf(chQuery, "select N_NATIONKEY,N_NAME,N_REGIONKEY from nation limit 3;"); lr_mysql_query(Mconn, chQuery); //在輸出中打印語句,調用dll中的lr_mysql_query方法執行語句 lr_save_string(row[0][0].cell, "sN_NATIONKEY"); lr_save_string(row[1][0].cell, "sN_NAME"); lr_save_string(row[2][0].cell, "sN_REGIONKEY"); //結果集要保存到多維數組中也可以直接忽略輸出 lr_output_message(lr_eval_string("N_NATIONKEY: {sN_NATIONKEY}; N_NAME: {sN_NAME}; N_REGIONKEY Description:{sN_REGIONKEY}")); lr_save_string(row[0][1].cell, "sN_NATIONKEY"); lr_save_string(row[1][1].cell, "sN_NAME"); lr_save_string(row[2][1].cell, "sJobDesc"); lr_output_message(lr_eval_string("N_NATIONKEY: {sN_NATIONKEY}; N_NAME: {sN_NAME}; N_REGIONKEY Description:{ //vu_end中加入 lr_mysql_disconnect(Mconn); //斷開連接 自己錄制腳本例子
#include "Ptt_Mysql.h" #define MYSQLSERVER "192.168.20.67" #define MYSQLUSERNAME "root" #define MYSQLPASSWORD "111111" #define MYSQLDB "mysql" #define MYSQLPORT "3306" MYSQL *Mconn; vuser_init(){ lr_load_dll("libmysql.dll"); Mconn=lr_mysql_connect(MYSQLSERVER,MYSQLUSERNAME,MYSQLPASSWORD,MYSQLDB,atoi(MYSQLPORT)); return 0; } Action() { char chQuery[128]; //sprintf(chQuery,"SELECT `HOST`, `USER`, `PASSWORD` FROM user1;"); lr_mysql_query(Mconn,chQuery); lr_save_string(row[0][0].cell,"HOST"); lr_save_string(row[1][0].cell,"USER"); lr_save_string(row[2][0].cell,"PASSWORD"); lr_output_message(lr_eval_string("HOST: {HOST}; USER: {USER};PASSWORD:{PASSWORD}")); } vuser_end() { lr_mysql_disconnect(Mconn); return 0; } |
版權聲明:本文出自 juiwo 的51Testing軟件測試博客: http://www.51testing.com/?37338 原創作品,轉載時請務必以超鏈接形式標明本文原始出處、作者信息和本聲明,否則將追究法律責任。 |