效能測試:到底網站在10,000人時的效能表現為何?
這篇文章主要建議一個工具讓我們可以回答這樣的問題。到底這個網站在 10,000人的連線狀況下,效能表現為何?
這是效能測試所要達到的模擬目標,業界比較知名的工具有哪些呢?
業界使用的工具
一般提到效能測試的工具,比較知名的就是想到兩個工具,
一個是商用軟體 HP LoadRunner另一個就是 Jmeter免費的工具。
當然,HP LoadRunner需要付費的 License,相對的提供許多分析報表、更友善介面的設計、學習的門檻也會比較低。
Jmeter 相對來說,比起 HP LoadRunner ,使用上會有些門檻。
如果以需要達到的測試功能或是模擬的效果來說,其實這兩個工具都是可以提供的。
HP LoadRunner 商用 | Jmeter免費 |
Jmeter 可以執行哪些網路流量的模擬測試呢?
- Web – HTTP, HTTPS
- SOAP / REST
- FTP
- Database via JDBC
- LDAP
- Message-oriented middleware (MOM) via JMS
- Mail – SMTP(S), POP3(S) and IMAP(S)
- MongoDB (NoSQL)
- Native commands or shell scripts
- TCP
這當中最常見與最常使用的就是 HTTP, HTTPS
因為大部分的應用程式都有支援Web Service。
這之中經常被問到的, Jmeter 可以支援產生 Http traffic,那麼 JMeter 跟 Browser 有什麼差異呢?
Jmeter 與Browser 差異
Jmeter 不是瀏覽器! 儘管 Jmeter 可以透過 HTTP/HTTPS與網站溝通,可以接收與傳送HTML。
為什麼Jmeter 不是瀏覽器? 因為 JMeter 只會將 Http 收到的內容原封不動的收到,
並不會執行HTML內的JavaScript, CSS,預設不會將該HTML畫面呈現與輸出。
另外,瀏覽器在瀏覽網站的時候會同時用多個執行緒 multiple-threads連接到該網站,
但是,Jmeter 除非特別設定,不然是會用1個執行緒循序的執行。
Jmeter 可以錄製 Https 嗎?
Jmeter 可以扮演 Man in the Middle 的角色,使用者可以使用Browser 操作,Jmeter 可以錄製完Browser 操作過程的行為並且重新撥放,
這樣的錄製動作也支援 HTTPS。這時候的 Jmeter 其實是扮演 proxy的角色將瀏覽器與網站之間的溝通錄製並且重放。
Browser <==========> JMeter (Proxy) <============>Web
(圖檔引用:guru99)