У меня проблемы с настройкой funkload для правильной работы с файлами cookie. Я включаю fl-record
и выполняю серию запросов, каждый из которых отправляет куки. Если я использую команду без указания пути к папке, выходные данные сохраняются в формате TCPWatch-Proxy, и я могу видеть содержимое всех файлов cookie, поэтому я знаю, что они отправлены.
Например, это содержимое 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, все Cookies опускаются. В коде нет ни одной строки, которая бы имела какое-либо отношение к ним:
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()
Существует также файл конфигурации, но там нет ничего о файлах cookie.
С другой стороны, в документации указано, что fl имеет (поддержка Cookie). В предыдущих выпусках я также обнаружил некоторые исправления, касающиеся поддержки Cookie, поэтому могу предположить, что это не просто пустое утверждение. Я также нашел пункт в одном из журналов изменений, в котором говорится, что «удаленные куки» не включены в вывод. Это заставило меня задуматься о том, что, возможно, проблема в том, что файлы cookie, которые были записаны, помечаются для удаления или распознаются как таковые при преобразовании из формата TCP-Watch в реальный тестовый набор. Однако это только дикое предположение.
Я хотел бы знать:
- Если у вас когда-либо были успехи с поддержкой funkload для файлов cookie. Если да, то какую версию вы использовали.
- Из вашего общего опыта работы с funkload и того, стоит ли его использовать в более сложной настройке.
EDIT
По-видимому, некоторые из запросов, записанных TCPWatch
, полностью игнорируются и не включаются в выходной тестовый пример. У кого-нибудь есть идея, зачем он это делает? Это как-то связано с перенаправлением?
EDIT (2)
Хорошо, это так. Это одна вещь на самом деле имеет смысл. Это исключает результаты перенаправления, так как они будут сгенерированы простым следствием HTTP 302 Found
. Однако вопрос о файлах cookie все еще остается необъяснимым.