




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Loadrunner測(cè)試數(shù)據(jù)庫(kù)性能,測(cè)試SQL語(yǔ)句性能的腳本例子此代碼為L(zhǎng)oadrunner8通過(guò)CAPI類(lèi)型的Vuser測(cè)試MySQL性能,或者測(cè)試sql語(yǔ)句性能的腳本。這東西很少有人用,網(wǎng)上資料很少,一般測(cè)試B/S的很多。viewplaincopytoclipboardprint?/*需要的表結(jié)構(gòu)如下CREATETABLE、test_data、(、order_id'BIGINTUNSIGNEDNOTNULLCOMMENT'Ordernumbers.Mustbeunique.',、status、BOOLNOTNULLDEFAULT'O'COMMENT'Whetherdatahasbeenusedornot.Avalueof0meansFALSE.','date_used、DATETIMENULLCOMMENT'Date/timethatthedatawasused.',UNIQUE('order_id'))ENGINE=innodbCOMMENT='LoadRunnertestdata';*/Action(){intrc;intdb_connection;//數(shù)據(jù)庫(kù)連接intquery_result;//查詢(xún)結(jié)果集MYSQL_RESchar**result_row;//查詢(xún)的數(shù)據(jù)衕char*server="localhost";char*user="root";char*password="123456";char*database="test";intport=33O6;intunix_socket=NULL;intflags=O;//找到libmysql.dll的所在位置.rc=lr_load_dll("C:\\ProgramFiles\\MySQL\\MySQLServer5.1\\bin\\libmysql.dll");if(rc!=O){lr_error_message("Couldnotloadlibmysql.dll");lr_abort();}//創(chuàng)建MySQL對(duì)象db_connection=mysql_init(NULL);if(db_connection==NULL){lr_error_message("Insufficientmemory");lr_abort();}//連接到MySQL數(shù)據(jù)庫(kù)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();}//向數(shù)據(jù)庫(kù)插入數(shù)據(jù)//此處的{ORDER_ID}是一個(gè)參數(shù),簡(jiǎn)單測(cè)試時(shí)可以用一個(gè)常數(shù)代替lr_save_string(lr_eval_string("INSERTINTOtest_data(order_id)VALUES({ORDER_ID})"),"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();}//從數(shù)據(jù)庫(kù)讀取一個(gè)數(shù)據(jù)并顯示rc=mysql_query(db_connection,"SELECTorder_idFROMtest_dataWHEREstatusISFALSELIMIT1");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();}//如果結(jié)果集包含多行數(shù)據(jù),需要多次調(diào)用mysql_fetch_row直到返回NULLresult_row=(char**)mysql_fetch_row(query_result);if(result_row==NULL){lr_error_message("Didnotexpecttheresultsettobeempty");mysql_free_result(query_result);mysql_close(db_connection);lr_abort();}//保存參數(shù),用于刪除這行數(shù)據(jù)lr_save_string(result_row[0],"paramOrderID");lr_output_message("OrderIDis:%s",lr_eval_string("{paramOrderID}"));mysql_free_result(query_result);//在事務(wù)里更新一行數(shù)據(jù),需要用InnoDB引擎rc=mysql_query(db_connection,"BEGIN");//啟動(dòng)事務(wù)if(rc!=0){lr_error_message("%s",mysql_error(db_connection));mysql_close(db_connection);lr_abort();}//使用"FORUPDATE"鎖住要更新的數(shù)據(jù)行rc=mysql_query(db_connection,"SELECTorder_idFROMtest_dataWHEREstatusISFALSELIMIT1FORUPDATE");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();}result_row=(char**)mysql_fetch_row(query_result);if(result_row==NULL){lr_error_message("沒(méi)有查詢(xún)到結(jié)果");mysql_free_result(query_result);mysql_close(db_connection);lr_abort();}lr_save_string(result_row[0],"paramOrderID");lr_output_message("OrderIDis:%s",lr_eval_string("{paramOrderID}"));mysql_free_result(query_result);lr_save_string(lr_eval_string("UPDATEtest_dataSETstatus=TRUE,date_used=NOW()WHEREorder_id='{paramOrderID}'"),"paramUpdateQuery");rc=mysql_query(db_connection,lr_eval_string("{paramUpdateQuery}"));if(rc!=0){lr_error_message("%s",mysql_error(db_connection));mysql_close(db_connection);lr_abort();}rc=mysql_query(db_connection,"COMMIT");//提交事務(wù)if(rc!=0){lr_error_message("%s",mysql_error(db_connection));mysql_close(db_connection);lr_abort();}//再次查找數(shù)據(jù),應(yīng)該為空了,因?yàn)榍懊娴氖聞?wù)更新了標(biāo)志rc=mysql_query(db_connection,"SELECTorder_idFROMtest_dataWHEREstatusISFALSELIMIT1");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();}result_row=(char**)mysql_fetch_row(query_result);if(result_row==NULL){lr_output_message("Resultsetisemptyasexpected");mysql_free_result(query_result);}else{lr_error_message("Didnotexpecttheresultsettocontainanyrows");mysql_free_result(query_result);mysql_close(db_connection);lr_abort();//刪除數(shù)據(jù)lr_save_string(lr_eval_string("DELETEFROMtest_dataWHEREorder_id='{paramOrderID}'"),"paramDeleteQuery");rc=mysql_query(db_connection,lr_eval_string("{paramDeleteQuery}"));if(rc!=0){lr_error_message("%s",mysql_error(db_connection));mysql_close(db_connection);lr_abort();}//釋放MySQL資源mysql_close(db_connection);return0;}/*需要的表結(jié)構(gòu)如下CREATETABLE、test_data、(、order_id'BIGINTUNSIGNEDNOTNULLCOMMENT'Ordernumbers.Mustbeunique.',、status、BOOLNOTNULLDEFAULT'O'COMMENT'Whetherdatahasbeenusedornot.Avalueof0meansFALSE.','date_used、DATETIMENULLCOMMENT'Date/timethatthedatawasused.',UNIQUE('order_id'))ENGINE=innodbCOMMENT='LoadRunnertestdata';*/Action(){intrc;intdb_connection;//數(shù)據(jù)庫(kù)連接intquery_result;//查詢(xún)結(jié)果集MYSQL_RESchar**result_row;//查詢(xún)的數(shù)據(jù)衕char*server="localhost";char*user="root";char*password="123456";char*database="test";intport=33O6;intunix_socket=NULL;intflags=O;//找到libmysql.dll的所在位置.rc=lr_load_dll("C:\\ProgramFiles\\MySQL\\MySQLServer5.1\\bin\\libmysql.dll");if(rc!=0){lr_error_message("Couldnotloadlibmysql.dll");lr_abort();}//創(chuàng)建MySQL對(duì)象db_connection=mysql_init(NULL);if(db_connection==NULL){lr_error_message("Insufficientmemory");lr_abort();}//連接到MySQL數(shù)據(jù)庫(kù)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();}//向數(shù)據(jù)庫(kù)插入數(shù)據(jù)//此處的{ORDER_ID}是一個(gè)參數(shù),簡(jiǎn)單測(cè)試時(shí)可以用一個(gè)常數(shù)代替lr_save_string(lr_eval_string("INSERTINTOtest_data(order_id)VALUES({ORDER_ID})"),"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();}//從數(shù)據(jù)庫(kù)讀取一個(gè)數(shù)據(jù)并顯示rc=mysql_query(db_connection,"SELECTorder_idFROMtest_dataWHEREstatusISFALSELIMIT1");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();}//如果結(jié)果集包含多行數(shù)據(jù),需要多次調(diào)用mysql_fetch_row直到返回NULLresult_row=(char**)mysql_fetch_row(query_result);if(result_row==NULL){lr_error_message("Didnotexpecttheresultsettobeempty");mysql_free_result(query_result);mysql_close(db_connection);lr_abort();}//保存參數(shù),用于刪除這行數(shù)據(jù)lr_save_string(result_row[0],"paramOrderID");lr_output_message("OrderIDis:%s",lr_eval_string("{paramOrderID}"));mysql_free_result(query_result);//在事務(wù)里更新一行數(shù)據(jù),需要用InnoDB引擎rc=mysql_query(db_connection,"BEGIN");//啟動(dòng)事務(wù)if(rc!=0){lr_error_message("%s",mysql_error(db_connection));mysql_close(db_connection);lr_abort();}//使用"FORUPDATE"鎖住要更新的數(shù)據(jù)行rc=mysql_query(db_connection,"SELECTorder_idFROMtest_dataWHEREstatusISFALSELIMIT1FORUPDATE");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();}result_row=(char**)mysql_fetch_row(query_result);if(result_row==NULL){lr_error_message("沒(méi)有查詢(xún)到結(jié)果");mysql_free_result(query_result);mysql_close(db_connection);lr_abort();}lr_save_string(result_row[0],"paramOrderID");lr_output_message("OrderIDis:%s",lr_eval_string("{paramOrderID}"));mysql_free_result(query_result);lr_save_string(lr_eval_string("UPDATEtest_dataSETstatus=TRUE,date_used=NOW()WHEREorder_id='{paramOrderID}'"),"paramUpdateQuery");rc=mysql_query(db_connection,lr_eval_string("{paramUpdateQuery}"));if(rc!=0){lr_error_message("%s",mysql_error(db_connection));mysql_close(db_connection);lr_abort();}rc=mysql_query(db_connection,"COMMIT");//提交事務(wù)if(rc!=0){lr_error_message("%s",mysql_error(db_connection));mysql_close(db_connection);lr_abort();}//再次查找數(shù)據(jù),應(yīng)該為空了,因?yàn)榍懊娴氖聞?wù)更新了標(biāo)志rc=mysql_query(db_connection,"SELECTorder_idFROMtest_dataWHER
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物醫(yī)藥市場(chǎng)營(yíng)測(cè)試卷
- 2025中考英語(yǔ)書(shū)面表達(dá)之話題作文專(zhuān)項(xiàng)復(fù)習(xí)課件
- 電動(dòng)汽車(chē)設(shè)計(jì)與制造-課件 第2章 前期階段
- 辦公室裝修招標(biāo)文件范本
- 小清新績(jī)效管理答辯
- 音樂(lè)與文化的結(jié)合國(guó)際舞臺(tái)上的吸引力
- 革新傳統(tǒng)打造現(xiàn)代醫(yī)療建筑的特色
- 顧客體驗(yàn)與忠誠(chéng)度建設(shè)在新零售戰(zhàn)略中的地位
- 顧客畫(huà)像構(gòu)建在辦公用品電商中的應(yīng)用
- 顧客體驗(yàn)為導(dǎo)向的新零售門(mén)店空間設(shè)計(jì)
- 巖土錨桿技術(shù)規(guī)程課件
- 風(fēng)寒感冒及風(fēng)熱感冒診斷及合理用藥課件
- 第五版PFMEA編制作業(yè)指導(dǎo)書(shū)
- 文獻(xiàn)整理表格
- VDA6.3過(guò)程審核檢查表(中英文版)
- DBJ∕T 13-261-2017 福建省二次供水不銹鋼水池(箱)應(yīng)用技術(shù)規(guī)程
- 二手車(chē)評(píng)估作業(yè)表簡(jiǎn)單實(shí)際樣本
- 物資出入庫(kù)單模板
- 05示例:玉米脫粒機(jī)的設(shè)計(jì)(含全套CAD圖紙)
- 北師大版小學(xué)數(shù)學(xué)五年級(jí)下冊(cè)單元測(cè)試題含答案(全冊(cè))
- 護(hù)理技術(shù)—鼻飼法課件
評(píng)論
0/150
提交評(píng)論