簡體   English   中英

如何使用Rspec測試Google Analytics(分析)API?

[英]How to test google analytics (garb) API with Rspec?

我正在使用Garb gem從Google Analytics(分析)中提取一些基本統計信息,例如綜合瀏覽量。 一切工作正常,但是我不知道測試API調用的最佳方法。 這是我的Analytics(分析)課程的配對版本:

class Analytics
  extend Garb::Model

  metrics :pageviews
  dimensions :page_path

  Username = 'username'
  Password = 'password'
  WebPropertyId = 'XX-XXXXXXX-X'

  # Start a session with google analytics.
  # 
  Garb::Session.login(Username, Password)

  # Find the correct web property.
  # 
  Property = Garb::Management::Profile.all.detect {|p| p.web_property_id == WebPropertyId}

  # Returns the nubmer of pageviews for a given page.
  # 
  def self.pageviews(path)
    Analytics.results(Property, :filters => {:page_path.eql => path}).first.pageviews.to_i
  end

  # ... a bunch of other methods to pull stats from google analytics ...
end

很簡單 但是,除了確保設置常量之外,我還無法編寫有效的測試。 測試這樣的最佳方法是什么? 這里是一些問題:

  • 我不希望在測試中實際擊中API。 它很慢,需要互聯網連接。
  • 這些統計數據顯然一直在變化,即使我在測試時確實點擊了API,也很難設定期望值。

我想我要上模擬課嗎? 但是我以前從未使用過這種模式。 任何幫助都將非常棒,甚至只有一些鏈接才能使我走上正確的道路。

Fakeweb是一個不錯的起點。 它可以將您的SUT與網絡隔離開,以便慢速連接不會影響您的測試。

在不了解Garb的情況下很難知道還要說些什么。 顯然,您需要知道要從API發送和接收的數據的格式,以便可以進行適當的模擬/存根。

我建議創建一個測試界面,以模仿對Google API的實際調用。 另一個選擇是使用模擬來創建樣本數據。

我同意最好不要使用實際的API,因為這樣做不會給您帶來任何好處。 由於API所有者更改了響應格式,因此對實際API的調用可能一天會成功,而第二天可能會失敗。 由於GA可能不會更改它的版本API,因此我認為創建一個可以在測試環境中使用的接口以進行更快的測試是安全的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM