4

我需要模擬從不同的地理位置你知道一個測試API性能的好工具嗎?

API 3G網絡和HTTP請求:HTTP寧靜 - JSON

廣告位置:歐洲,美國

客戶:移動設備

+0

你能否提供更多的上下文? 3G - 客戶端還是服務器,還是點對點?哪些地理位置?什麼是API - REST,SOAP,JSON? – 2012-01-30 16:54:55

+0

HTTP restful - JSON – sparkle 2012-01-30 19:01:32

回答

1

對於JSON負載測試, json-simple

爲REST一般可以使用 loadUI - 「用於負載測試的工具衆多協議,如Web服務,REST,AMF,JMS,JDBC以及Web站點。 LoadUI採用高度圖形化界面」

7

這聽起來像你問兩個獨立的問題:?

  • 你有什麼API服務器的性能特性最有用表述爲:有多少併發用戶可以充當之前響應時間超過您的可接受水平?
  • 什麼是你的客戶端設備的性能體驗?

我會鼓勵你的兩個問題化整爲零,並獨立進行測試。器件的工作OVE 3G將難以產生足夠的負載來壓力配置良好的網絡服務器,而且在全球範圍內調試數千個負載測試節點通常不具有成本效益。此外,一旦流量到達您的Web服務器,它不應該真正關心它是來自同一個城市,國家或大陸,還是來自移動設備,PC或負載測試服務器。

所以,我會使用任何你喜歡的負載測試工具來測試你的web API的性能。 Apache JMeter是免費的,但有一點學習曲線;但是,它可以從多個雲提供商處獲得,這使您可以從不同的大洲進行測試並運行它們。谷歌「Jmeter雲」瞭解更多細節。

如果性能是一個關鍵問題,那麼您可能希望擁有一個持續測試機制,您可以在這個星期左右的時間內對代碼進行性能測試,並按照優化進行優化 - 通常在項目結束時留下優化相當危險......

接下來的問題是「好的,所以我知道我的API服務器可以提供1000個併發請求,平均響應時間爲012秒(這個時間爲<)」(或其他) - 這是如何轉化爲最終用戶體驗的?

只有當您清楚您的Web服務器不是瓶頸時纔會發生這種情況 - 因爲您在此之外做出的大多數優化性能的決定都非常重要。從邏輯上講,如果您知道您的網絡服務器正在某個級別進行響應,則最終用戶的性能會受到網絡延遲和吞吐量的影響。延遲時間通常通過ping時間的粗略統計來衡量:網絡數據包在客戶端和服務器之間傳輸需要多長時間?如果不重新訪問整個託管策略,就很難或不可能改進ping時間;它取決於光速,您的託管服務器場與客戶端和服務器之間的其他幾十個網段之間的連接。

吞吐量通常是以每秒字節數來衡量的。通常情況下,這是你可以影響 - 正常情況下,例如,通過使你的API更簡潔,採用壓縮等

3G設備通常具有相對較差的網絡時延的特點,但相當不錯的吞吐量。然而,影響延時和吞吐量的許多情況完全不可預測 - 繁忙的地點是一個典型的例子:充滿3G設備的足球場意味着個人用戶通常連接性差。

測試,這是困難的。我將其分解爲3G設備測試,並測試地理變化。爲了測試3G設備的性能特徵,我將在專用測試套件(可能基於JMeter)前使用帶寬限制器模擬網絡條件。

拼圖的最後一部分可能是昂貴的 - 有專門的公司誰可以來自世界各地的測試web性能。他們在世界各地都有節點,他們可以在那裏執行測試腳本;他們經常爲您編寫腳本,併爲您提供一個Web界面來運行和測量測試。我過去使用Keynote,並發現它們非常好。這種測試是昂貴的,所以我只在項目結束時才使用它,一旦我排除了所有其他性能方面的考慮。

相關問題