簡體   English   中英

如何使用Ruby(Watir / WebDriver)捕獲GET調用?

[英]How to capture a GET call using Ruby (Watir/WebDriver)?

在我正在測試的網頁上,當用戶單擊選擇列表中的選項時,將進行GET調用。 GET看起來像這樣:

GET /mediaportal/captions/SCH/Follow%20Up%20with%20the%20Robles%20Family_SCH.xml 

如何告訴Ruby偵聽GET請求並將其捕獲,或更具體地說,將上面GET中請求的URL捕獲並放入變量中。

我使用的是watir-webdriver gem,我希望里面有東西能讓我做到這一點。

嘗試net / http gem:

require 'net/http'
uri = URI('http://yoursite.com/mediaportal/captions/SCH/Follow%20Up%20with%20the%20Robles%20Family_SCH.xml ')
Net::HTTP.get(uri) # => String

有關更多信息,請嘗試此處: http : //ruby-doc.org/stdlib-1.9.3/libdoc/net/http/rdoc/Net/HTTP.html

好的-我做了一些更多的研究,結果發現webrick Web服務器捆綁了一個HTTP代理。 (使用Ruby的常見經驗-解決方案通常比預期的要接近。)該問題的答案很好地總結了該問題 ,並指向一個博客文章該博客文章提供了如何執行此操作的代碼示例。

您使用WEBrick :: HTTPProxyServer啟動服務器,然后應該能夠攔截所有流量。 一個挑戰可能是從您的測試代碼與該服務器進行交互。 如果不設置某種服務器,可能很難做到這一點。 但是,如果您只想監聽特定的呼叫,則可以將服務器作為測試套件的一部分啟動,然后在呼叫出現時將其關閉。

我認為讓HTTP流量通過代理可能是您處理此問題的最簡單方法。 那或者忽略功能級別測試的幕后api,而是專注於UI從請求中獲取響應時發生的一切。 如果需要測試REST API本身,請編寫可在API級別工作的單獨的API測試自動化程序。

HTTP代理服務器的要點可能是您可以使用的

如果您想直接測試REST API,建議使用REST-Client gem。 如果流量為JSON格式,則JSON-spec gem也是一個救命稻草,尤其是如果您需要用於rspec /黃瓜驗證步驟的大型庫(.matchers和黃瓜“ then”步驟。) 就使用黃瓜和這是在Test Automation Bazaar上進行API測試的兩顆寶石。.我第一次展示這些東西,(我應該已經找到了制作幻燈片的時間,但希望那里至少會給您一個大概的入門思路)。

暫無
暫無

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

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