我无法设置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