1. 程式人生 > >給初學LoadRunner的朋友的一些建議

給初學LoadRunner的朋友的一些建議

  摘要:隨著Internet的普及與迅速發展,企業業務量的迅速加大,資料大集中成為一種趨勢,IT系統承載的負荷越來越重,系統性能的好壞嚴重的影響了企業對外提供的服務質量。從而對IT系統的效能進行測試和調優引起企業的重視,進而效能測試工程師成為IT市場的”香悖悖”,並且效能測試有著極高的技術挑戰。於是吸引了大量的測試愛好者來學這方面的技術,而一談到效能測試很多人便會想到鼎鼎大名的LoadRunner這款優秀的效能測試工具,然而到這裡問題就產生了?

  關建字:LoadRunner 效能測試  網路基礎程式語言資料庫作業系統

  LoadRuner與效能測試的關係:LoadRunner初學者的誤點:把LoadRunner神化了。很多初學LoadRunner的朋友認為掌握了使用LoadRunner這款效能測試工具,就能夠做效能測試了。常在網上看到好多人在

學習怎麼去使用這款優秀的效能測試工具,本來學習怎麼去使用LoadRunner這個工具沒有錯,卻把LoadRunner神化了,”天真的”以為它什麼都能做,以為學會了LoadRunner的使用就能做效能測試了。儘管用了大量的時間學會了如何使用LoadRunner錄製指令碼,如何進行關聯,如何進行引數化,如何設定集合點等等?可到頭來,效能測試還是不會做。為什麼?對於產生的效能報告不知道怎麼去分析?不知道如何利用得到的分析報告分析出系統存在的瓶頸?不知道如何進行效能調優?像這些事光會使用LoadRunner是做不到的?說白了LoadRunner只是我們做效能測試的一個工具,它並不是萬能的,是死的,具體怎麼做還得依靠人去操作與分析。會使用LoadRunner的人,並不一定會做效能測試,會做效能測試的人並不一定都會使用 LoadRunner。LoadRunner只是一個性能測試工具而已。我們應該意識到,測試工具只是效能測試中的一部分,僅是為達到效能測試目的而採用的一種手段

  效能測試與系統性能的關係:高效能,高安全的系統,不是測試出來的,而是構架,設計,編寫出來的。當然在這裡我並不否認效能測試的重要性,甚至可以說沒有經過效能測試的系統,一定不會是優秀的系統,軟體是人開發出來的,而人總是會出錯的,所謂智者千慮,必有一失……要想做好效能測試,在軟體系統需求,設計,編寫程式碼的這些階段就應該進行效能測試,而不僅僅是系統測試這個階段才去做效能測試,效能測試應該貫穿於整個軟體開發週期中。

  對初學LoadRunner朋友的建意:常看到網上一些網友發貼子問,怎麼對效能測試產生的結果進行分析?測試系統時怎麼去選擇合適的協議?對於發這些貼子的人我想請問你?你能夠詳細的說下HTTP協議嗎?TCP建立連線和釋放連線的過程是怎樣進行的?什麼是協議?協議是用來做什麼的?在OSI參考模型中各層的作用?資料庫中產生併發的衝突的原因?不要太依賴於LoadRunner工具本身的學習,而去忽略計算機

其它基礎知識的學習,我們更應該去掌握一門程式語言,良好的網路基礎知識,計算機原理與作業系統知識,資料庫知識。這些是我們去學習怎麼去使用LoadRunner前提與基礎。。

  1、為什麼要掌握一門程式語言

  其一,大家在使用LoadRunner時常會遇到一些不能錄製指令碼的情況發生,或者需要錄製一些複雜的指令碼,這時候我們就必須手動的開發指令碼。其二 LoadRunner雖然強大,易於使用,可是它卻屬於商業軟體,價格昂貴,並且程式碼不開源,我們無法瞭解LoadRunner具體的實現細節,甚至我們會懷疑LoadRunner收集的效能資料準確嗎?它有是如何實現的等等,而這些我們通過LoadRunner的幫助文件無法得知。效能測試工具並不只有 LoadRunner,做效能測試還有許多優秀的效能測試工具可以選擇,像JMeter,Curl- Loader等等這些非常優秀的開源工具,在全能上雖然並不上LoadRunner,但在某些方面卻比LoadRunner還要強大。例如Curl- Loader這個工具,它雖然支援的協議不多,但是對於http協議它最高能產生10萬的併發使用者,這是LoadRunner遠遠所不及的。並且這些工具程式碼是公開的,我們能夠從這些程式碼中去分析具體實現的細節,並且還可以自已編寫程式碼,增強軟體的功能,這也是成為效能測試高手的一條途徑。LoadRunner好比我們的Windows作業系統,易於使用,功能強大,程式碼封閉,論全能比Linux要強大。我們的開源效能測試工具好比Linux作業系統程式碼開源,不易於使用,但很多方面比我們的Windows要強大。也許這個時候有人會問對於初學者學哪門語言最好最有前途C,C++,VB,JAVA,C#?其實每一種語言能夠生存下來,自有其生存的道理,每一種語言都有自已優勢和缺點,並且程式語言具有相通訊,學好了一門,再去學另外的程式語言,非常快就能上手。對於初學者我建意學習C語言,理由有很多,例如很多優秀的開源效能測試工具就是用C語言開發的…。當然不管選擇什麼程式語言,或者資料庫,或者作業系統,我們不要去想學哪門最好,學哪方面最有前途。我們更應該結合自身的情況,選擇最合適的,而不是選擇最好的。

  2、為什麼要掌握計算機原理和作業系統知識

  論壇上常會看到這些問題?LoadRunner中執行緒與程序的關係?在什麼時候用到它們,怎麼區別用執行緒還是程序呢?LoadRunner錄製產生了亂碼怎麼解決?怎麼去發現記憶體洩漏?對那些發貼問這些問題的朋友,我依然想請問你你知道程序和執行緒的概念嗎?知道程序有幾種狀態嗎?知道程序間的通訊是怎麼進行的嗎?死鎖,程序與執行緒的區別這些概念你明白嗎?如果你連記憶體的概念,記憶體的作用,記憶體洩露的概念都搞不清楚,你怎麼去發現記憶體洩露?如果這些你都不知道,自然就不知道怎麼去做效能測試分析?一些網友錄製指令碼常常會產生一些莫名奇妙的錯誤?還震震有詞的說這是LoadRunner的原因。其實要說到底要解決這些問題就必需得有良好的計算機原理和作業系統知識。弄清了程序和執行緒的區別,你自然就明白了使用程序資源使用高,但安全性要強於執行緒,執行緒資源利用率少,使用執行緒能在一個負載生成器上執行更多的Vuser,但可能存在安全問題。LoadRunner錄製產生了亂碼怎麼解決?為什麼會產生亂碼,你知道什麼是字符集嗎?什麼是編碼嗎?字串在我們記憶體中有是如何存放的?ASCII編碼,ANSI編碼,UNICODE編碼它們的區別是什麼?這些都是作業系統的基礎基礎。掌握好了這些你自然明白LoadRunner中產生亂碼的原因。當然計算機原理和作業系統的基礎知識還有很多得掌握的知識。像作業系統的體系架構、作業系統的重要基礎概念,記憶體管理、儲存/檔案系統、驅動/硬體的管理。要做好效能測試計算機原理和作業系統知識必不可少。