By George Curta · Last updated 2026-04-07
419/419 тестов пройдено
100% успешностьКомплексный набор тестов производства, охватывающий взаимодействие с GUI, конечные точки API, безопасность, производительность и кроссбраузерную.
Модернизация инфраструктуры
До 467× быстрееВ марте 2026 г. мы выполнили миграцию с общего VPS на выделенный сервер с 16× большей памятью RAM, 5 параллельными рабочими анализаторов и всеми 48.
Параллельная производительность
Новый сервер обрабатывает сотни одновременных запросов по всем сервисам без ошибок.
| Сервис | Параллельные | Успех | Средн. | RPS |
|---|---|---|---|---|
| Analyzer (spaCy) | 500 | 100% | 331 ms | 634 |
| Analyzer (12-lang mix) | 120 | 100% | 114 ms | 515 |
| Anonymizer | 1,000 | 100% | 8 ms | 1,501 |
| Structured Data | 100 | 100% | 331 ms | 144 |
| Frontend (Next.js) | 200 | 100% | 979 ms | 104 |
| Mixed Workload | 110 | 100% | 56 ms | 536 |
Скорость полного конвейера
Сквозная задержка анализ + аноним на новом сервере, измеренная со всеми прогретыми языковыми моделями.
| Язык | Двигатель | Среднее конвейера | Сущности |
|---|---|---|---|
| English | spaCy | 10.2 ms | 9 |
| German | spaCy | 13.4 ms | 9 |
| French | spaCy | 10.5 ms | 10 |
| Spanish | spaCy | 7.8 ms | 9 |
| Japanese | spaCy | 9.9 ms | 6 |
| Chinese | spaCy | 13.6 ms | 5 |
| Arabic | Transformer | 12.7 ms | 7 |
| Hebrew | Stanza | 117.3 ms | 6 |
Времена на старом сервере включают полный конвейер тестирования GUI (Playwright + API). Времена на новом сервере - это тестирования только API со всеми прогретыми моделями. Улучшение отражает реальные преимущества инфраструктуры: исключенные холодные запуски, параллелизм 5×, хранилище NVMe.
13 вех тестирования
Каждая веха охватывает отдельную функциональную область платформы, от аутентификации до кроссбраузерной совместимости.
Authentication & Session
22/22 тесты
Вход, сохранение сеанса, профиль, проверки здоровья, охранники аутентификации, выход/повторный вход
PII Detection (Analyzer)
62/62 тесты
Анализ на 48 языках через GUI, фильтры сущностей, пороги оценок, пограничные случаи, комбинации клавиш
Anonymizer (5 Operators)
40/40 тесты
Операторы Replace, Redact, Hash, Mask, Encrypt через API и GUI, быстрые действия, многоязычность
Decrypt (Roundtrip)
22/22 тесты
Раунды шифрования-затем-расшифровки для AES-256/128/192, многоязычность, проверка ключей, большой текст
Batch & File Upload
20/20 тесты
Пакетная обработка текста, пользовательский интерфейс загрузки файлов, переключение вкладок, статус обработки
Entity Management
28/28 тесты
CRUD сущностей на 3 вкладках, Создатель AI, правила проверки, проверка очистки
Preset Management
28/28 тесты
CRUD предустановок на 3 вкладках, рабочий процесс приложения, правила проверки, проверка очистки
Settings (10 Tabs)
42/42 тесты
Все 10 вкладок настроек: Учетная запись, Выставление счетов, Токены, Безопасность, История, Язык, Ключи шифрования, Услуги, Разработчик
API Security
35/35 тесты
Основные конечные точки, заголовки безопасности, политика CORS, проверка входных данных, безопасность аутентификации, ограничение скорости
Token Usage Monitoring
24/24 тесты
Потребление токенов по размеру текста, оператору, языку, фильтру сущностей, расшифровке, пакету, экспорту CSV
Lighthouse & Quality
20/20 тесты
Оценки Lighthouse на 8 страницах, адаптивность окна просмотра, доступность, SEO, ошибки консоли, неработающие ссылки
48 Languages + RTL
56/56 тесты
Анализ для всех 48 языков, 4 проверки макета RTL, переключение языков, проверка выбора
Cross-Browser
20/20 тесты
5 страниц в Chromium, Firefox, WebKit и мобильном Chrome — ноль ошибок консоли
Охват 48 языков
Каждый поддерживаемый язык тестируется с реальными образцами PII. Три типа двигателей NLP обеспечивают оптимальную точность для каждого языка.
| Язык | Код | Двигатель | Сущности | Старый сервер | Новый сервер | Ускорение | Статус |
|---|---|---|---|---|---|---|---|
| English | en | spacy | 113 | 270 мс | 8 мс | 34× | |
| German | de | spacy | 148 | 313 мс | 7 мс | 45× | |
| Spanish | es | spacy | 104 | 1,841 мс | 6 мс | 307× | |
| French | fr | spacy | 133 | 2,327 мс | 8 мс | 291× | |
| Italian | it | spacy | 97 | 1,787 мс | 7 мс | 255× | |
| Portuguese | pt | spacy | 61 | 1,764 мс | 6 мс | 294× | |
| Dutch | nl | spacy | 122 | 2,486 мс | 6 мс | 414× | |
| Polish | pl | spacy | 70 | 1,726 мс | 8 мс | 216× | |
| Russian | ru | spacy | 41 | 2,226 мс | 6 мс | 371× | |
| Japanese | ja | spacy | 23 | 1,436 мс | 6 мс | 239× | |
| Chinese | zh | spacy | 24 | 2,554 мс | 7 мс | 365× | |
| Korean | ko | spacy | 16 | 1,305 мс | 6 мс | 218× | |
| Arabic | ar | transformer | 20 | 554 мс | 8 мс | 69× | |
| Hindi | hi | transformer | 22 | 486 мс | 7 мс | 69× | |
| Turkish | tr | spacy | 112 | 504 мс | 6 мс | 84× | |
| Romanian | ro | spacy | 122 | 1,730 мс | 6 мс | 288× | |
| Greek | el | spacy | 29 | 1,822 мс | 7 мс | 260× | |
| Croatian | hr | spacy | 67 | 989 мс | 7 мс | 141× | |
| Slovenian | sl | spacy | 64 | 1,264 мс | 7 мс | 181× | |
| Macedonian | mk | spacy | 24 | 1,259 мс | 7 мс | 180× | |
| Swedish | sv | spacy | 140 | 1,002 мс | 6 мс | 167× | |
| Danish | da | spacy | 107 | 1,910 мс | 7 мс | 273× | |
| Norwegian | nb | spacy | 109 | 1,606 мс | 7 мс | 229× | |
| Finnish | fi | spacy | 118 | 1,229 мс | 7 мс | 176× | |
| Icelandic | is | transformer | 73 | 559 мс | 8 мс | 70× | |
| Ukrainian | uk | spacy | 25 | 1,434 мс | 9 мс | 159× | |
| Lithuanian | lt | spacy | 86 | 1,601 мс | 7 мс | 229× | |
| Bulgarian | bg | stanza | 24 | 8,735 мс | 98 мс | 89× | |
| Serbian | sr | transformer | 24 | 519 мс | 8 мс | 65× | |
| Hungarian | hu | stanza | 82 | 8,141 мс | 39 мс | 209× | |
| Czech | cs | transformer | 81 | 562 мс | 8 мс | 70× | |
| Slovak | sk | transformer | 70 | 577 мс | 8 мс | 72× | |
| Latvian | lv | transformer | 83 | 526 мс | 8 мс | 66× | |
| Estonian | et | transformer | 79 | 531 мс | 8 мс | 66× | |
| Hebrew | he | stanza | 17 | 8,850 мс | 101 мс | 88× | |
| Persian | fa | transformer | 12 | 439 мс | 7 мс | 63× | |
| Vietnamese | vi | stanza | 74 | 11,282 мс | 99 мс | 114× | |
| Indonesian | id | transformer | 79 | 524 мс | 7 мс | 75× | |
| Thai | th | transformer | 20 | 521 мс | 5 мс | 104× | |
| Malay | ms | transformer | 87 | 510 мс | 7 мс | 73× | |
| Filipino | tl | transformer | 75 | 501 мс | 7 мс | 72× | |
| Bengali | bn | transformer | 18 | 455 мс | 7 мс | 65× | |
| Urdu | ur | transformer | 12 | 445 мс | 7 мс | 64× | |
| Afrikaans | af | stanza | 119 | 7,867 мс | 55 мс | 143× | |
| Swahili | sw | transformer | 68 | 526 мс | 7 мс | 75× | |
| Armenian | hy | stanza | 69 | 19,643 мс | 85 мс | 231× | |
| Catalan | ca | spacy | 100 | 3,267 мс | 7 мс | 467× | |
| Basque | eu | stanza | 82 | 783 мс | 40 мс | 20× |
Кроссбраузерная совместимость
5 критических страниц протестированы на 4 браузерных движках без ошибок консоли и горизонтального переполнения.
Chromium
5 из 5 страниц
Все пройденоFirefox
5 из 5 страниц
Все пройденоWebKit
5 из 5 страниц
Все пройденоMobile Chrome
5 из 5 страниц
Все пройденоТестирование безопасности
35 тестов35 специализированных тестов безопасности, охватывающих конечные точки API, заголовки, CORS, проверку входных данных, аутентификацию и ограничение скорости.
Основные конечные точки
8 tests8 тестов, проверяющих доступность конечной точки API и коды ответов
Заголовки безопасности
6 tests6 тестов для CSP, X-Frame-Options, HSTS и прочего
Политика CORS
5 tests5 тестов для обработки запросов с перекрестным источником
Проверка входных данных
6 tests6 тестов для XSS, SQL-инъекций и искаженных входных данных
Безопасность аутентификации
5 tests5 тестов для обхода аутентификации и безопасности сеанса
Ограничение скорости
5 tests5 тестов для обеспечения ограничения скорости API и заголовков Retry-After
Анализ использования токенов
Всего использовано токенов: 76122 теста потребления токенов, измеряющих экономическую эффективность операций, размеров текста, языков и операторов.
| Операция | Символы | Язык | Сущности | Оператор | Токены | Время ответа |
|---|---|---|---|---|---|---|
| analyze | 50 | en | 44 | N/A | 4 | 220 мс |
| analyze | 200 | en | 140 | N/A | 9 | 276 мс |
| analyze | 500 | en | 387 | N/A | 21 | 367 мс |
| analyze | 1,000 | en | 745 | N/A | 39 | 542 мс |
| analyze | 5,000 | en | 3776 | N/A | 193 | 4,398 мс |
| analyze | 10,000 | en | 7566 | N/A | 385 | 14,494 мс |
| anonymize | 160 | en | 113 | replace | 7 | 291 мс |
| anonymize | 160 | en | 113 | redact | 7 | 236 мс |
| anonymize | 160 | en | 113 | hash | 7 | 243 мс |
| anonymize | 160 | en | 113 | mask | 7 | 276 мс |
| anonymize | 160 | en | 113 | encrypt | 7 | 242 мс |
| analyze | 148 | en | 4 | lang-compare | 2 | 0 мс |
| analyze | 145 | de | 3 | lang-compare | 2 | 0 мс |
| analyze | 144 | es | 3 | lang-compare | 2 | 0 мс |
| analyze | 145 | fr | 4 | lang-compare | 2 | 0 мс |
| analyze | 136 | it | 3 | lang-compare | 2 | 0 мс |
| analyze | 145 | pt | 3 | lang-compare | 2 | 0 мс |
| analyze | 137 | nl | 3 | lang-compare | 2 | 0 мс |
| analyze | 137 | pl | 2 | lang-compare | 2 | 0 мс |
| analyze | 132 | ru | 3 | lang-compare | 2 | 0 мс |
| analyze | 84 | ja | 2 | lang-compare | 2 | 0 мс |
| analyze | 70 | zh | 2 | lang-compare | 2 | 0 мс |
| analyze | 123 | ar | 4 | lang-compare | 2 | 0 мс |
| analyze | 160 | en | 106 | PERSON only | 7 | 258 мс |
| analyze | 160 | en | 108 | PERSON+EMAIL+PHONE | 8 | 266 мс |
| analyze | 160 | en | 113 | All entities | 8 | 264 мс |
| decrypt | 342 | en | 37 | decrypt | 2 | 188 мс |
| batch-analyze | 476 | en,de,fr | 394 | N/A | 26 | 5,278 мс |
Методология тестирования
Наш набор тестов объединяет тестирование Playwright на уровне GUI с прямой проверкой API для полного охвата.
Тестирование GUI
Автоматизация браузера Playwright тестирует реальные рабочие процессы пользователя — нажатие кнопок, заполнение форм, навигация между страницами и проверка визуальных результатов.
Тестирование API
Прямые HTTP-запросы проверяют каждую конечную точку с граничными случаями, искаженными входными данными и граничными условиями, которые одно только тестирование GUI не может охватить.
Кэширование сеанса
Аутентифицированные сеансы кэшируются и повторно используются на протяжении вех, что сокращает время выполнения тестов при сохранении реалистичного поведения пользователя.
Очистка CRUD
Каждая сущность, предустановка и ключ шифрования, созданные во время тестирования, очищаются после этого, обеспечивая идемпотентность тестов и повторяемость.
About this page
We update this page when our platform or the law changes.
Read our founder note for how we work.
Each change shows up in the timestamp at the top.
Related reading
- Common questions
- Glossary
- How tokens work
- Security posture
- Where we comply
- What we detect
- Case studies
- Release notes
We follow these rules
- GDPR (EU 2016/679).
- ISO/IEC 27001:2022.
- NIS2 (EU 2022/2555).
- HIPAA safe harbor under 45 CFR § 164.514(b)(2).
Our promise
We do not sell your data.
We do not train models on your text.
We store your files in Germany.
You can delete your account at any time.
You own your work.
Where we run
Our servers live in Falkenstein, Germany.
We use Hetzner. They hold ISO 27001 certification.
All data stays in the EU.
Backups run every day.
Need help?
Email support@anonym.legal.
We reply within one business day.
How we test
We run a full check suite on every release.
Each surface gets its own sweep script and report.
Human reviewers spot-check the output each week.
We track recall and precision on a labelled set.
Bad runs block the deploy.
What we never do
- We never sell your information to third parties.
- We never train models on what you upload.
- We never keep your work after you delete it.
- We never share keys with any outside firm.
- We never run ads inside the product.
Plans in plain words
We sell credits, not seats.
One credit covers one short job.
Long jobs use a few credits each.
You can top up at any time.
Unused credits roll over each month.
Read the plans page for current rates.
Who built this
A small team of engineers and lawyers built this.
We ship from Europe and work in the open.
Our founder note spells out why we started.
Where to start
- Open the web app and try a sample file.
- Learn how credits get counted.
- See current plans and limits.
- Meet the team behind the product.
How the parts fit
A browser add-on cleans text inside Chrome.
A Word plug-in handles drafts in Office.
A small desktop tool works on whole folders.
An agent protocol link feeds large models safely.
All four share one core engine and one rule set.
Words from our team
We started this work after a lunch about cookies.
One friend kept getting odd ads on her phone.
We asked why a court file leaked through a draft.
We sketched the first build on a napkin that week.
By month three we had a tiny demo for a friend.
She used it on her first case the next day.
Common questions we hear
Can the tool read scanned PDFs? Yes, with OCR.
Does it work on long files? Yes, in small chunks.
Can I roll my own rule set? Yes, save it as a preset.
Does it run offline? The desktop build runs offline.
Do you keep my files? No, the cloud build wipes after each run.
Will it learn from my work? No, we never train on inputs.
A short tour of the workflow
Upload a file or paste a snippet of prose.
Pick the entities you want gone from the draft.
Choose a method: replace, mask, hash, encrypt, or redact.
Press run and watch the side panel show each hit.
Skim the result and tweak any rule that misfired.
Save the cleaned file or send it to a teammate.