你已經努力開發你的 Web 應用,也許這沒有什么偉大的,但它是眾多維持我們每日生活的方法中的一員,并且,或許它會改變世界。
無論怎樣,你知道它需要做一些測試,而且不止一次。測試工作應該貫穿于軟件開發過程的每一個階段,乃至軟件發布之后。認識到測試者的工作永遠不會停止有點讓人頭疼,令人欣慰的是每一輪測試和矯正都會提高軟件質量。
應用故障有兩個原因:開發人員沒有做負載測試,或者更糟糕的是,他們花了時間來做負載測試,但是沒有做好充分的準備。沒有充足的預備工作,負載測試不可能發現它應該發現的所有問題。
那么,怎么才能準備一次最佳的負載測試呢?
好吧,這里給出一些建議,一旦你準備開始負載測試,我們也給你提供了一個易用的高級測試工具來進行它——當然,它是可以免費下載的。
1、什么是你真正需要了解的?
確定你想了解你的應用或系統的哪些方面。每種類型的測試的運行方式都不同,且著眼于應用的不同方面。因此,基于不同的需求,你需要運行不同的測試。例如:
● 如果希望找到你的應用程序在很少或根本沒有負載情況下的執行基準,你將運行單用戶測試。
● 如果想確定系統在正常負載下的執行情況,你將運行負載測試。
● 如果想確定你的應用程序停止響應或響應緩慢導致不能正常工作的臨界點,你需要運行負載測試。
● 如果想了解你的應用程序是否有內存泄露問題,你要運行耐力測試。
2、確定用戶數量
如果要加載測試,你會模擬多少虛擬用戶呢?要回答這個問題,你要估計大概多少并發用戶可能訪問你的網站,這取決于一天中的時間。很多測試者只是猜測,相反,你需要跟你的設計師和營銷人員談談并看看性能說明。你甚至可能要問他們設計的應用程序支持多少并發用戶,然后設計這么多用戶及比這更多用戶的測試。
● 注意:你還要安排當實際用戶減少或消除時的測試。
3、研究你的分析
不要假裝知道客戶如何用你的應用程序。真正了解用戶的唯一途徑是研究歷史(如分析)。通過研究你的分析,你可以創建實際上代表用戶的測試--而不是你認為的代表用戶的測試。在這方面,分析是測試人員最好的朋友!
4、組建你的團隊
你需要許多人參與到測試中來:開發人員,網絡工程師,數據庫管理員,企業主-舉例來說。所有這些人都有著特定的權利來使應用變完美,每個人將從不同的角度定位問題。正確的解決方案將不會直接從眾多中的一個里直接獲得,而將從兩個或多個綜合得出。確保團隊中的每個成員都是對測試有用的:
● 確保他們在特定領域的專業程度
● 提供穩定的反饋
● 產生對應用質量和性能的歸屬感
5、準備你的瀏覽器
使用測試軟件使你盡可能地接近你的真實用戶的體驗。你應該能夠在你選擇的瀏覽器中記錄你的測試場景,但你也需要預估你的用戶將會使用的其它瀏覽器。考慮你的產品使用率高的國家和地區,調查那里使用率最高的瀏覽器。你將安裝這些瀏覽器在你開始測試時。然后你需要確保你的負載測試軟件盡可能真實地模擬用戶的行為。這包括:
● 多線程處理
● 思考時間
● 混合并發場景
● 復雜場景
● 參數化
● 從多個代理進程產生負載(網絡/云)
6、準備測試你的應用
雖然在分階段環境中測試你的應用很有價值,由于很多原因,它也會在你的測試中留下一些漏洞。
● 分階段環境并不總是產品的真正副本
● 分階段環境只能從內部防火墻訪問
● 可能有一些針對你正在收集信息的相同系統的測試
7、預留時間分析結果
你應該準備花些時間以組為單位分析測試結果(記得在測試過程中存在的所有的那些人嗎?)。要仔細看結果,確保真正理解瓶頸、錯誤、弱點且有有效的補救措施,確保涉及每個人并安排足夠的時間。
8、預留時間修改
在計劃表中也要留一定的時間去實現那些確定需要修改的測試!從時間方面考慮,不同的補救成本也不一樣。在時間和金錢方面,像實現緩存策略、重構代碼、數據庫優化以及硬件升級等這樣的補救措施需要更大的實現成本。舉個例子,添加額外的硬件需要花時間下訂單、收貨、測試硬件、安裝軟件和數據、測試、加到網絡中并做更多測試。這可能花費數周或幾個月。
9、計劃一個敏捷測試方法
一旦糾正,又是再次測試的時候了。俗話說得好,測試是一個過程,而不是目的。每次發現并糾正一個瓶頸,另一個問題又出現了。所以計劃一個敏捷測試方法是很重要的,從而可以使性能測試貫穿開發周期的每一步。附加測試應按以下執行:
● 代碼何時被修改或更新
● 新硬件何時被引入
● 修改何時被添加到應用服務器或 DB 服務器
● 流量峰值預計在何時
深呼吸一下,然后放松!你已經完成了絕大部分艱苦的工作。現在你已花時間作了準備,對你的應用作負載測試將有助于你持續改進你的產品和業務。
原文鏈接:http://www.oschina.net/translate/9-tips-to-prepare-your-app-for-optimal-load-testing