天天看點

《應用程式性能測試的藝術(第2版)》—第2章 2.3節性能測試工具集:概念驗證

本節書摘來自異步社群《應用程式性能測試的藝術(第2版)》一書中的第2章,第2.3節性能測試工具集:概念驗證,作者【紐西蘭】ian molyneaux(莫得尼克斯),更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

2.3 性能測試工具集:概念驗證

對于候選的性能測試工具,你需要對它們一一試用以驗證工具的可行性,隻有這樣才能確定你最終選擇的工具集能夠滿足你的需求。在驗證過程中至少選擇錄制兩個測試用例:一個隻讀用例(比如一個傳回一條或者多條記錄的搜尋操作)和一個涉及插入和更新你的應用資料庫的寫用例。這樣你就能驗證錄制下來的測試用例是否能夠正确回放。如果你的應用是隻讀的,你也要檢查腳本回放日志來確定回放過程中沒有任何錯誤。

概念驗證完成以下目标。

為驗證性能測試工具是否适合目标應用提供了一次技術評估的機會

技術相容性顯然是一個關鍵目标,否則你将會在測試用例的腳本實作階段舉步維艱(或者根本是不可能完成的任務)!你必須在真實的應用環境來試用性能測試工具,隻有這樣才能在确定是否在項目中應用該工具之前充分暴露和解決問題。

發現腳本的資料需求

典型的概念驗證會建構一些簡單的測試用例,這些用例是整個性能測試項目的基礎。這是在正式開始編寫性能測試腳本之前非常好的一次排演機會,在這個過程中你會發現為了正确執行用例所需要的外部資料和運作時資料。概念驗證隻會建立兩三個測試用例,随着正式用例的增多,你會發現更多的資料需求。但是概念驗證經常能夠幫你快速定位到一些常用的輸入資料需求,比如登入的使用者名密碼和一些保持使用者會話有效的狀态資料。

幫助評估腳本編寫難度

概念驗證還可以幫你評估編寫一個典型的測試用例腳本需要耗費多少時間以及評估修改腳本所帶來的額外時間。

展示性能測試解決方案是否适合目标應用

相比簡單的樣例沙箱,針對實際應用的工具測試要靠譜很多。

概念驗證檢查點

下面列舉的檢查點為有效地開展概念驗證提供了一些指引。就時間而言,每個概念驗證都有它的獨特性,但是在應用環境可用的前提下,一般不會超過幾天的時間。

前提

下面這些需求應當在項目中盡早準備以便在需要的時候能夠快速搭建poc環境。

和客戶(内部其他項目部門)就poc項目的成功或者退出條件達成一緻,你們需要對poc本身是否成功有一緻判斷。這些條件需要在正式開始poc之前文檔化,并且确認簽字。

擁有滿足性能測試工具最低軟硬體需求的一台工作站或者用戶端平台。這台機器必須已經安裝了應用用戶端和相應的支撐軟體。

擁有在被測應用環境安裝任何需要的監控軟體的權限。

最好能夠在poc期間獨占應用的使用權。

能夠聯系到一個熟悉應用的負責人(比如一個超級使用者),他能夠回答可能出現的應用使用問題。

能夠聯系到一個熟悉應用原理的專家(比如應用開發),他能夠回答poc過程中出現的相關技術問題,并且能夠解釋應用架構在中間件層面是如何運作的。

一個能夠正确安裝性能測試工具到工作站的賬号,并且這個賬号需要對被測應用用戶端有通路權限。

至少兩套針對目标應用的登入資訊。之是以需要兩套是因為你需要驗證并發執行測試用例時不會出現問題。

兩個樣例測試用例,一個是隻讀類型的操作,另一個是相對複雜的涉及更新應用資料的操作。這樣就能驗證腳本在讀寫模式下是否正常工作。

流程

下面這個清單可以幫助你確定poc項目為後續的正式性能測試打下堅實的基礎。

針對同樣的測試用例錄制兩份,然後使用你認為最便捷的方式對這兩份腳本進行比較。選擇有很多,windiff就是一個不錯的選擇,也許你的性能測試工具本身就提供了這樣的比較功能。定位兩次錄制腳本中不一緻的地方,這些地方将會是需要重點關注和解決的運作時資料關聯需求。

在定位了腳本輸入資料和運作時資料關聯以及其他一些必要的腳本修改之後,確定腳本在單使用者和多使用者模式下都能夠正确回放。确認任何資料庫更新在腳本回放之後都已經生效,并且回放日志沒有錯誤資訊。在poc或者後續的正式測試過程中,都需要避免由于手工修改腳本帶來諸如記憶體洩漏等非業務問題。

注意

windiff.exe是一款用于定位兩個檔案中不同内容的windows工具程式;這是一款免費工具并且已經伴随windows釋出有好長時間。如果你需要更加強大的對比功能,可以嘗試下面的工具:

prestosoft的examdiff pro

winmerge

傳遞物

下面清單中的内容是poc的傳遞物,它們是後續有效開展正式性能測試項目的基礎。

poc的輸出應該針對性能測試工具是否能夠對應用測試用例進行腳本化和回放給出明确的結論。

你應該在poc過程中定位到一些腳本輸入資料和會話資料的需求并從中了解到後續性能測試項目過程中可能存在的資料需求。

你應該能夠了解為了讓腳本正确回放所需要做的一些腳本修改工作并且對編寫一個能夠正确執行的測試用例腳本所需要的時間也有相應評估。

如果這是一個銷售過程的poc,你應該能夠打動你的客戶,并且和客戶就之前達成的poc完成條件形成共識——一次完美的銷售!