Не удается запустить локальный HAR Storage

java
selenium
browsermob-proxy
har
Теги: #<Tag:0x00007fedbfe13c50> #<Tag:0x00007fedbfe13a48> #<Tag:0x00007fedbfe138e0> #<Tag:0x00007fedbfe136d8>

(zaleg) #1

Поднял HAR storage, но при открытии http://127.0.0.1:5000/ получаю такую ошибку, не могу понять в чем проблема


Browsermob proxy + Java + WebDriver помогите запустить простейший тест
(Sergey Korol) #2

Если мне не изменяет память, то там нужна 2.x версия Python. Эта ошибка вроде на 3й появляется. Т.к. в гайде не указана точная версия, у вас по дефолту должна тянуться последняя. Попробуйте снести более новую и поставить 2.7 например.


(zaleg) #3

Да нет, как раз стоит 2.7 Python.
Есть еще такая инфа, когда перехожу по линке с HAR отчетом:

В консоли paster'a вываливаеться такой стек-трэйс:

Microsoft Windows [Version 10.0.10586]
(c) 2015 Microsoft Corporation. All rights reserved.

C:\Users\Admin>C:\Python27\Scripts\paster.exe serve production.ini
Starting server in PID 1384.
serving on 0.0.0.0:5000 view at http://127.0.0.1:5000
Error - <type 'exceptions.AttributeError'>: MongoDB instance has no attribute 'collection'
URL: http://127.0.0.1:5000/results/details?label=remote-bmp-client%20:%20googleSearchAndCaptureTraffic
File 'C:\\Python27\\lib\\site-packages\\weberror-0.13.1-py2.7.egg\\weberror\\errormiddleware.py', line 171 in __call__
  app_iter = self.application(environ, sr_checker)
File 'C:\\Python27\\lib\\site-packages\\beaker-1.8.0-py2.7.egg\\beaker\\middleware.py', line 155 in __call__
  return self.wrap_app(environ, session_start_response)
File 'C:\\Python27\\lib\\site-packages\\routes-2.3.1-py2.7.egg\\routes\\middleware.py', line 141 in __call__
  response = self.app(environ, start_response)
File 'C:\\Python27\\lib\\site-packages\\pylons-1.0.2-py2.7.egg\\pylons\\wsgiapp.py', line 103 in __call__
  response = self.dispatch(controller, environ, start_response)
File 'C:\\Python27\\lib\\site-packages\\pylons-1.0.2-py2.7.egg\\pylons\\wsgiapp.py', line 313 in dispatch
  return controller(environ, start_response)
File 'C:\\Python27\\lib\\site-packages\\harstorage-1.0-py2.7.egg\\harstorage\\lib\\base.py', line 19 in __call__
  return WSGIController.__call__(self, environ, start_response)
File 'C:\\Python27\\lib\\site-packages\\pylons-1.0.2-py2.7.egg\\pylons\\controllers\\core.py', line 214 in __call__
  response = self._dispatch_call()
File 'C:\\Python27\\lib\\site-packages\\pylons-1.0.2-py2.7.egg\\pylons\\controllers\\core.py', line 164 in _dispatch_call
  response = self._inspect_call(func)
File 'C:\\Python27\\lib\\site-packages\\pylons-1.0.2-py2.7.egg\\pylons\\controllers\\core.py', line 107 in _inspect_call
  result = self._perform_call(func, args)
File 'C:\\Python27\\lib\\site-packages\\pylons-1.0.2-py2.7.egg\\pylons\\controllers\\core.py', line 57 in _perform_call
  return func(**args)
File '<decorator-gen-5>', line 2 in details
File 'C:\\Python27\\lib\\site-packages\\pylons-1.0.2-py2.7.egg\\pylons\\decorators\\rest.py', line 34 in check_methods
  return func(*args, **kwargs)
File 'C:\\Python27\\lib\\site-packages\\harstorage-1.0-py2.7.egg\\harstorage\\controllers\\results.py', line 99 in details
  self._set_options_in_selector(c.mode, c.label)
File 'C:\\Python27\\lib\\site-packages\\harstorage-1.0-py2.7.egg\\harstorage\\controllers\\results.py', line 123 in _set_options_in_selector
  results = MongoDB().collection.find(
AttributeError: MongoDB instance has no attribute 'collection'


CGI Variables
-------------
  CONTENT_LENGTH: '0'
  HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
  HTTP_ACCEPT_ENCODING: 'gzip, deflate, sdch'
  HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.8,uk;q=0.6,ru;q=0.4'
  HTTP_CONNECTION: 'keep-alive'
  HTTP_HOST: '127.0.0.1:5000'
  HTTP_UPGRADE_INSECURE_REQUESTS: '1'
  HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.54 Safari/537.36'
  PATH_INFO: '/results/details'
  QUERY_STRING: 'label=remote-bmp-client%20:%20googleSearchAndCaptureTraffic'
  REMOTE_ADDR: '127.0.0.1'
  REQUEST_METHOD: 'GET'
  SERVER_NAME: '0.0.0.0'
  SERVER_PORT: '5000'
  SERVER_PROTOCOL: 'HTTP/1.1'


WSGI Variables
--------------
  application: <beaker.middleware.SessionMiddleware object at 0x037C1270>
  beaker.get_session: <bound method SessionMiddleware._get_session of <beaker.middleware.SessionMiddleware object at 0x037C1270>>
  beaker.session: {'_accessed_time': 1463755905.862, '_creation_time': 1463755905.862}
  paste.httpserver.proxy.host: 'dummy'
  paste.httpserver.proxy.scheme: 'http'
  paste.httpserver.thread_pool: <paste.httpserver.ThreadPool object at 0x03072710>
  paste.parsed_querystring: ([('label', 'remote-bmp-client : googleSearchAndCaptureTraffic')], 'label=remote-bmp-client%20:%20googleSearchAndCaptureTraffic')
  paste.registry: <paste.registry.Registry object at 0x05397EB0>
  paste.throw_errors: True
  pylons.action_method: <bound method ResultsController.details of <harstorage.controllers.results.ResultsController object at 0x053360F0>>
  pylons.controller: <harstorage.controllers.results.ResultsController object at 0x053360F0>
  pylons.environ_config: {'session': 'beaker.session', 'cache': 'beaker.cache'}
  pylons.log_debug: False
  pylons.pylons: <pylons.util.PylonsContext object at 0x053360B0>
  pylons.routes_dict: {'action': u'details', 'controller': u'results'}
  routes.route: <routes.route.Route object at 0x037C1150>
  routes.url: <routes.util.URLGenerator object at 0x05397FD0>
  webob._parsed_query_vars: (GET([(u'label', u'remote-bmp-client : googleSearchAndCaptureTraffic')]), 'label=remote-bmp-client%20:%20googleSearchAndCaptureTraffic')
  wsgi process: 'Multithreaded'
  wsgiorg.routing_args: (<routes.util.URLGenerator object at 0x05397FD0>, {'action': u'details', 'controller': u'results'})
------------------------------------------------------------

Вообще не могу понять что не так. Что-то с версиями установленых либ, но каких..


(Sergey Korol) #4

А с mongodb все ок? База создалась, сервис стартанул нормально?


(zaleg) #5

С виду все ок:

Microsoft Windows Version 10.0.10586 2015 Microsoft Corporation. All rights reserved.

C:\Users\Admin>"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe" -dbpath d:\Servers\data --port 27017
2016-05-20T18:03:27.170+0300 I CONTROL [initandlisten] MongoDB starting : pid=9596 port=27017 dbpath=d:\Servers\data 64-bit host=OZaporozhets
2016-05-20T18:03:27.174+0300 I CONTROL [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
2016-05-20T18:03:27.177+0300 I CONTROL [initandlisten] db version v3.2.6
2016-05-20T18:03:27.179+0300 I CONTROL [initandlisten] git version: 05552b562c7a0b3143a729aaa0838e558dc49b25
2016-05-20T18:03:27.181+0300 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1p-fips 9 Jul 2015
2016-05-20T18:03:27.184+0300 I CONTROL [initandlisten] allocator: tcmalloc
2016-05-20T18:03:27.186+0300 I CONTROL [initandlisten] modules: none
2016-05-20T18:03:27.188+0300 I CONTROL [initandlisten] build environment:
2016-05-20T18:03:27.189+0300 I CONTROL [initandlisten] distmod: 2008plus-ssl
2016-05-20T18:03:27.191+0300 I CONTROL [initandlisten] distarch: x86_64
2016-05-20T18:03:27.193+0300 I CONTROL [initandlisten] target_arch: x86_64
2016-05-20T18:03:27.195+0300 I CONTROL [initandlisten] options: { net: { port: 27017 }, storage: { dbPath: "d:\Servers\data" } }
2016-05-20T18:03:27.229+0300 I - [initandlisten] Detected data files in d:\Servers\data created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2016-05-20T18:03:27.265+0300 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=4G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2016-05-20T18:03:28.166+0300 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
2016-05-20T18:03:28.166+0300 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory 'd:/Servers/data/diagnostic.data'
2016-05-20T18:03:28.253+0300 I NETWORK [initandlisten] waiting for connections on port 27017


(Sergey Korol) #6

Почему с консоли, а не в качестве сервиса? Ну и собственно покажите наличие harstorage db.


(zaleg) #7

Запустил как сервис. А как cоздать такую базу и натравить на нее paster?
Спасибо.


(Sergey Korol) #8

Она должна создаваться в процессе инсталяции самого harstorage. Но и mongodb при этом должен быть запущен. Попробуйте переустановить сам harstorage. Ну а посмотреть наличие базы можно из mongo shell или любой существующей mongo admin тулы.


(zaleg) #9

Всё перепробывал. База не создается при инсталяции самого harstorage.
Та же ошибка на http://127.0.0.1:5000/ :pensive:


(Sergey Korol) #10

Тогда опишите в деталях все степы установки. От mongo до конфигурации harstorage.


(zaleg) #11

Да делаю как в инструкции (https://code.google.com/archive/p/harstorage/wikis/Installation.wiki )

  1. Установил MongoDB и запустил как сервис.
  2. Дальше Python 2.7.2 и все необходимые либы.
  3. Harstorage устанавливал так:
    -easy_install harstorage-1.0-py2.7.egg
    -paster make-config "harstorage" production.ini
    -paster setup-app production.ini
    -paster serve production.ini

  4. Далее перехожу по линку вышеуказанному и всё.


(zaleg) #12

Ура! Танци с бубном закончились)
Проблема решилась:
1) сделал downgrade - pip install pymongo==2.7.2 (было 3.2.2)
2) Добавил импорт - from pymongo import Connection в файл
C:\Python27\Lib\site-packages\harstorage-0.6-py2.7.egg\harstorage\lib\MongoHandler.py