Skip to main content

Библиотека с инструментом для поиска утечек памяти в процессе выполнения тестов в Chrome или Node.js

Project description

SeaLant

Библиотека с инструментом для поиска утечек памяти в процессе выполнения тестов в Chrome или Node.js

Содержание

Установка

pip install sealant

Инструкция

Пример использования

Минимальный набор действий для подключения библиотеки:

from sealant import sealant
from unittest import TestCase
...

# Предназначено для использование с фреймворком UnitTests и основанных на 
# нем сторонних фреймворках
class TestsCaseExample(TestCase):

...

    # Перед тестом необходимо уже иметь запущенную ноду, библиотека
    # подключается к ней перед запуском метода test_case
    @sealant()
    def test_case(self):
        some_actions()

Параметры подключения к ноде

В представленном выше сценарии используются настройки подключения по умолчанию: подключение к ноде по localhost:9222
При необходимости можно указать другие хост/порт ноды или прямую ccылку websocket

    @sealant(host='not_localhost', port='2229', ws='ws://direct_ws:9222')
    def test_case(self):
        actions()

Указанный ws имеет приоритет над host/port
Допустим вариант указания настроек подключения для целого класса:

@sealant(host='not_localhost', port='2229')
class TestsCaseExample(TestCase):

...
    @sealant()
    def test_case(self):
        actions()

Можно задать настройки по умолчанию для всех использований библиотеки в config.py.

Выбор типа анализа утечки

Следующим важным этапом настройки является возможность выбора типа heapfile: heaptimeline или heapsnapshot. По умолчанию используется heaptimeline как более быстрый и показавший большую стабильность способ. Но для Node.js допустим только вариант с heapsnapshot:

    @sealant(timeline=False)
    def test_case(self):
        actions()

Найденные утечки сравниваются с объемом, указанным в config.py (leak_size_limit). Если размер утечки больше заданного допустимого после выполнения 8 пункта, то вызывается исключение LeakError.

Сохранение отчета и артефактов теста

В config.py можно задать, сохранять ли полученные heapfiles и составлять ли отчет в случае нахождения утечки. В этом случае составленный отчет и снятые heapfiles пакуются в zip архив и помещаются в заданную в config.py папку (по умолчанию создается папка leaks в папке с тестом).

Версионирование

Мы используем SemVer для версионирования. Доступные версии указаны в тэгах этого репозитория.

Авторы

Юдахин А.Е
e-mail: aejudakhin@gmail.com

Докучаев С.В
e-mail: sv.dokuchaev@tensor.ru

Лицензия

This project is licensed under the MIT License - see the LICENSE.md file for details

test2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SeaLant-1.0.2.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

SeaLant-1.0.2-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file SeaLant-1.0.2.tar.gz.

File metadata

  • Download URL: SeaLant-1.0.2.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for SeaLant-1.0.2.tar.gz
Algorithm Hash digest
SHA256 baad21f554a9340561c248fd6e3db82f2500e29be4e388448dcfeaf9e58e8da4
MD5 d46c8c8cd0f41a2e700ff539ca81dfc3
BLAKE2b-256 5ec9978e5d539f70529a985fb1bc880cbb51e4e298f276aab13cbfdb1b658d1f

See more details on using hashes here.

File details

Details for the file SeaLant-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: SeaLant-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for SeaLant-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 419d13a1f8afd5c3f1dfc28a1b9791ebcc5647b0fd74ec0bd4ce8958c0442d7c
MD5 ed209fe4a856c599615f7dcdaf91c916
BLAKE2b-256 034d01989b64df186990b8514c2f02ce4033f67eba34283723d2ae1b275d50a3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page