首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
三、組建并執行性能測試場景。
從VU運行成功到controller運行成功,一般需要以下幾個步驟(我也是從英文論壇上看到的,覺得不錯,拿出來共享):
1. 確認在VU里SUSI(單用戶單循環次數single user & single iteration)
2. 確認在VU里SUMI(單用戶多循環次數single user & multi iteration)
3. 確認在controller中MUSI(多用戶單循環次數multi user & single iteration)
4. 確認在controller中MUMI(多用戶多循環次數 multi user & multi iteration)
做這樣一個步驟劃分是有道理的,第一步驟是驗證腳本編寫的正確,第二步驟可以驗證數據池是否正常運作。第三步驟驗證并發功能,第四步驟是最終目的,驗證軟件系統的性能。在論壇上看到一些朋友提的問題,有一些就是于此的,在controller中運行場景時出現問題,首先得保證VU中運行成功,這是一個顯然的邏輯。軟件工程中把軟件開發的種種行為都要制定一個proccess,即過程,性能測試也是如此,按照過程來調試腳本和場景,能及早發現問題和定位問題。除非是高手,爛熟于心中,才能超越proccess而不出問題。
場景是把虛擬用戶和交易數按一定規則組織起來去模擬真實世界的業務行為。這其實是把單個用戶的行為復制,連接。場景的組織通常和真實世界的業務規則有很大關系。
做個如下可能并不恰當的比喻:
腳本像演員,場景就像表演的舞臺,而測試工程師是導演,多少個演員,怎么在舞臺上演出,都由導演說了算,而劇情又不能離譜,脫離現實,否則就要砸鍋了。注意,導演的職責不光是確保演出能順利結束,而且還要同時觀察和收集觀眾的反饋信息,以確認這次演出是否成功。
同樣的也是,性能測試人員不光是看場景是否得到順利的執行,同時還要收集各個server的反饋信息,以確認軟件系統的性能表現是否正常。
在真實世界中的用戶業務規則要轉換到可操作的性能指標是需要分析和計算的。當然這通常是市場需求分析人員干的活,但我覺得測試人員應該在做性能測試時,對這些指標進行理解,知道為什么要這樣做。有時有的性能指標并不清楚和準確,還需要測試人員來分析。比如一個性能指標:要求軟件系統支持每分鐘700用戶的登陸行為。這對于測試人員來說,其實是一個不確切的性能需求。這指的是瞬時并發用戶700,在一分鐘的響應時間要求下登陸系統?還是在一分鐘內陸續有700個用戶登入軟件系統即可?這兩種場景其實對軟件系統的壓力是不同的,第一種顯然大,第二種要小一些。甚至有的性能需求就是支持50000注冊用戶,這種需求就更需要分析了,還要引入一些業務發生概率算法模型來做。這已經不是性能測試人員的職責了,但由于目前有不少軟件公司流程不規范,或者有流程沒執行,這些工作都要測試人員來做了,不過也好,正好是鍛煉的機會。
四、分析結果數據,找到軟件系統性能瓶頸
上面說了,做了那么多,就是為了本步驟-尋找軟件系統性能瓶頸。
個人認為尋找性能瓶頸是一個非常有挑戰性的工作,毛主席曾經說過:一個優秀的指戰員就是能夠根據已有的客觀形勢,制定作戰計劃,然后在作戰過程中,發現計劃與執行不符的地方,分析,然后調整作戰計劃,縮小計劃和戰勢的誤差。簡明一句:就是一個理論和實踐結合的過程,一個人的主觀思想和客觀現實的結合過程(注明:本人是毛主席老人家的忠實fans)。
在性能測試中,測試方案就是我們的作戰計劃,執行性能測試就是我們的作戰戰場。在性能測試中,可能會發現種種意想不到的問題。當然一個經驗足夠豐富的性能測試專家可能會在測試之前就能考慮全面,使測試方案吻合測試執行實際情況,并一舉找出性能瓶頸。我sunshinelius不是專家水平,當然就要匆忙應對和分析性能測試中出現的問題,并有可能會修改測試方案,增加必要的test case,刪除沒用的test case。總之,性能測試是一個不斷修改測試方案,反復執行test case的過程,直至越來越逼近性能瓶頸。在此過程中,需要了解很多的知識,知識了解得越多,就越接近軟件系統運行的真相,也就能找出性能瓶頸了。
比如:loadrunner要是調用程序員的程序,服務器資源占用情況可能是追查瓶頸的一個線索,但如果是標準中間件,那就沒那么簡單了,比如oracle數據庫的某項參數設得不對,照樣會造成數據庫瓶頸,應用程序調用數據庫的API寫法不對,比如未使用軟解析變量,也有可能導致數據庫瓶頸。這些瓶頸都不會反映在cpu,內存使用量上等指標上的。
對于這種情況,一方面需要對中間件有一定的了解,知道哪些參數有什么作用,怎么可調的,另外還可能使用中間件的專有監測工具,來分析。lr的性能計數器是不夠用的。
個人體會,查找瓶頸的難易程度,由易到難
服務器硬件瓶頸-〉網絡瓶頸-〉應用瓶頸-〉服務器操作系統瓶頸(參數配置)-〉中間件瓶頸(參數配置,數據庫,web服務器等)
記憶比較深刻的一次,用lr做了兩天性能測試,指標上不去,后來使用oracle數據庫的圖形化性能檢測工具才發現某個表的查詢處理時間超長,原來索引創建得不合理,把表的索引改了之后,性能稍有提高,但還是上不去。再次排查,發現應用中有一個sql語句寫得有問題,長而且耗時,改了之后,測試指標還是上不去
經過至少四輪的排查,才大功告成,最后一個除掉的瓶頸是操作系統問題(開始沒有想到它,后來看系統消息,才發現已經有錯誤報出)
五、每個系統的性能測試都是一個全新的挑戰!
相關推薦:考試吧策劃:2010年軟件水平考試完全指南北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |