如果要製造出完美的產品,必須對它進行全方面實驗室檢驗。這裡有幾種類型的測試,每一種測試都針對應用程式的某個具體方面。
本文將對單元測試、資料庫測試、系統測試、負載測試進行介紹。
一、單元測試
單元測試是測試應用程式的每一步,要確保其各個組成部分運轉正常。若沒有單元測試,在應用程式中找出導致錯誤啟動並執行原因一般來說相當困難。
單元測試通常採用一個單元測試架構,它提供了編寫和運行測試並輸出結果所需要的基本結構。
一些較為常用的單元測試架構套件括:
PHPUnit:http://phpunit.de/
SimpleTest:http://www.simpletest.org/
PHPT:http://qa.php.net/write-test.php
二、資料庫測試
PHPUnit資料庫擴充模仿了JUnit的DbUnit擴充,它是事實上的Java單元測試架構。PHPUnit資料庫擴充不處理建立資料庫、表或使用者憑證;它在假設這些已經建立的基礎上運行。
PHPUnit資料庫測試參考:http://phpunit.de/manual/current/en/database.html
三、系統測試
一旦系統的各個組成部分以及與外部系統的互動已經完成測試,那麼我們將要對作為一個整體的應用程式進行測試,這成為系統測試。
對於Web應用程式而言,這往往通過編寫自動化測試以一個真實使用者會採用的相同方式與瀏覽器互動來完成。
編寫和執行這種測試的流行軟體包是Selenium,它是一個基於Java的伺服器,運行用戶端串連到它,執行命令以啟動瀏覽器並與之互動。該軟體常常用於在Web應用程式內部執行一系列動作,並對最後載入的檔案內容進行斷言以確認其達到預期的功能。
Selenium:http://seleniumhq.org/
PHPUnit包含一個Selenium擴充,它允許這些互動得以執行。
四、負載測試
一旦應用程式工作正常,無論是其各個組成部分還是作為一個整體,我們非常有必要瞭解應用程式作為一個整體如何運行。
負載測試類比一組使用者的行為以確定應用程式在負載下如何表現。
接下來將介紹兩種測試載入器:ab、siege
1、ab測試載入器
作為Apache HTTP伺服器項目的組成部分,ab是一個相對簡單的已開發基準測試載入器,並且適用於大多數安裝有Apache的環境中。
它有許多參數,我們對其如何引導測試稍加調整,其中有3個經常用到的參數:
1)-c #:每秒的並發請求數,或同時訪問應用程式的使用者數量。
2)-n #:要發送的請求書。
3)-t #:測試持續的以秒計算的最長時間,假設為-n 50000。
因此,舉例來說,如果你想類比一分鐘內10個並發使用者的行為,你可以使用如下命令:
ab -c 10 -t 60 http://localhost/phpinfo.php
ab使用參考:http://httpd.apache.org/docs/2.0/programs/ab.html
2、Siege測試載入器
另一個常用的負載測試工具是Siege,它由Joe Dog軟體開發。ab的負載測試限制在一個特定的URL上,而除了URL之外,Siege還可對整個應用程式進行負載測試。Siege手冊介紹了它的所支援的選項。
Siege:http://www.joedog.org/siege-home/
Siege手冊:http://www.joedog.org/siege-manual/
http://www.bkjia.com/PHPjc/780765.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/780765.htmlTechArticle如果要製造出完美的產品,必須對它進行全方面實驗室檢驗。這裡有幾種類型的測試,每一種測試都針對應用程式的某個具體方面。 本文將對...