我無法設置funkload與Cookie一起使用。我打開fl-record
並執行一系列請求,每個請求都發送一個cookie。如果我在不提供文件夾路徑的情況下使用該命令,則輸出將以TCPWatch-Proxy格式存儲,並且我可以看到所有Cookie的內容,因此我知道它們已發送。Funkload和cookies
例如,這是watch0003.request
內容:
GET http://mydomainnamehere.pl/api/world/me/ HTTP/1.1
Host: mydomainnamehere.pl
Proxy-Connection: keep-alive
Referer: http://mydomainnamehere.pl/test/engine/
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.57 Safari/534.24
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: pl,en-US;q=0.8,en;q=0.6,fr-FR;q=0.4,fr;q=0.2
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: Beacon-ClientID=<<<some-beaconpush-id-here>>>; sessionid=<<<some-session-id>>>; fbs_<<<some-facebook-id>>>="access_token=<<<some-access-token>>>&expires=1308254400&secret=<<<some-secret>>>&session_key=<<<some-session-key>>>&sig=<<<some-signature>>>&uid=<<<some-user-id>>>"; Beacon-Preferred-Client=WebSocket
但是,如果我跑fl-record
與測試案例的名稱,這樣做爲了funkload存儲輸出爲Python測試,所有的餅乾被省略。沒有在一行代碼,將有什麼與他們:
import unittest
from funkload.FunkLoadTestCase import FunkLoadTestCase
from webunit.utility import Upload
from funkload.utils import Data
#from funkload.utils import xmlrpc_get_credential
class Simple(FunkLoadTestCase):
def setUp(self):
"""Setting up test."""
self.logd("setUp")
self.server_url = self.conf_get('main', 'url')
# XXX here you can setup the credential access like this
# credential_host = self.conf_get('credential', 'host')
# credential_port = self.conf_getInt('credential', 'port')
# self.login, self.password = xmlrpc_get_credential(credential_host,
# credential_port,
# XXX replace with a valid group
# 'members')
def test_simple(self):
# The description should be set in the configuration file
server_url = self.server_url
# begin of test ---------------------------------------------
...
# /tmp/tmp5Nv5lW_funkload/watch0003.request
self.get(server_url + "/api/world/me/",
description="Get /api/world/me/")
...
# end of test -----------------------------------------------
def tearDown(self):
"""Setting up test."""
self.logd("tearDown.\n")
if __name__ in ('main', '__main__'):
unittest.main()
還有一個配置文件,但沒有關於cookies有兩種。
另一方面,文檔指出fl(Cookie支持)。我還發現了以前版本中有關Cookie支持的一些錯誤修正,因此我可以認爲這不僅僅是一個空的聲明。我還在其中一個更新日誌中發現了一個觀點,即在輸出中不包含「已刪除的Cookie」。這讓我想知道,問題可能在於記錄的cookies被標記爲刪除,或者通過從TCP-Watch格式轉換爲實際的測試用例時被識別爲這樣。然而,這只是一個瘋狂的猜測。
我想知道:
- 如果你曾經有過成功的支持funkload的餅乾。如果是這樣,你使用的是哪個版本。
- 您對Funkload的一般體驗以及它是否值得在更復雜的設置中使用。
編輯
顯然有些由TCPWatch
記錄的請求都被完全忽略,並且不包括在輸出測試案例。任何人都知道爲什麼會這樣做?它與重定向有什麼關係?
EDIT(2)
好,它的作用。這一件事實際上是有道理的。它遺漏了重定向的結果,因爲這些將通過簡單地遵循HTTP 302 Found
而生成。然而,cookies的問題仍然沒有解釋。
不幸的是我完全停止使用Funkload。我也從它的創作者那裏聽說,我遇到的行爲其實是有意的。基本原理或多或少是預計cookie會在測試周期內重新創建 - 因此簽名操作必須是每個測試用例的一部分。也就是說,可能還有其他一些我沒遇到過的bug。 – julkiewicz 2011-09-07 01:17:52
你能詳細說明你切換到了什麼嗎?我目前正在設置Funkload,並且很想知道是否有很好的選擇。 – yayitswei 2011-10-12 10:23:18