Skip to main content

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

Metadata

Release files for sealant 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sealant 1.0.2
File Size Uploaded
SeaLant-1.0.2.tar.gz 12.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sealant 1.0.2
File Interpreter ABI Platform
SeaLant-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 27.7 kB

Release files / SeaLant-1.0.2.tar.gz

Download URL SeaLant-1.0.2.tar.gz
Size 12.0 kB
Tags Source
SHA-256 checksum
How to use checksums
baad21f554a9340561c248fd6e3db82f2500e29be4e388448dcfeaf9e58e8da4
BLAKE2b-256 checksum
How to use checksums
5ec9978e5d539f70529a985fb1bc880cbb51e4e298f276aab13cbfdb1b658d1f
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / SeaLant-1.0.2-py3-none-any.whl

Download URL SeaLant-1.0.2-py3-none-any.whl
Size 15.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
419d13a1f8afd5c3f1dfc28a1b9791ebcc5647b0fd74ec0bd4ce8958c0442d7c
BLAKE2b-256 checksum
How to use checksums
034d01989b64df186990b8514c2f02ce4033f67eba34283723d2ae1b275d50a3
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page