vyvchy
    Теми розділу

    10 · Performance testing

    Види performance-тестів: load, stress, spike, soak

    Зміст

    «Перевір, чи витримає» — це не одне завдання, а щонайменше шість різних. Чи тримає система навантаження, яке ми очікуємо щодня? Що з нею станеться за межею очікуваного — або коли заберуть половину памʼяті? Чи переживе вона раптовий пік і, головне, чи повернеться після нього до норми? Чи не почне повільнішати сама собою на третю добу роботи? Скільки вона тримає взагалі? А скільки триматиме, коли користувачів стане вдесятеро більше? Кожне питання має власний вид тесту, власну форму навантаження і власний критерій «пройдено» — а прогін за принципом «просто побільше користувачів» відповідає рівно на одне з них. Зазвичай не на те, яке хвилює бізнес.

    Слабке розуміння теми зводиться до переліку назв; сильне називає питання за кожною назвою і додає, що єдиної таксономії тут немає. З цього й почнемо.

    Дві таксономії, і жодна з них не «правильна»

    (performance testing) — це тип тестування, що визначає продуктивність компонента або системи. Силабус ISTQB CT-PT називає його збірним терміном: під ним живе будь-яке тестування, зосереджене на швидкості відгуку (responsiveness) системи під різними обсягами навантаження. Усі види нижче — його підвиди, а не альтернативи; цілі перф-тестування — у першій главі розділу.

    Далі — розбіжність, про яку зазвичай мовчать. Розділ §1.2 силабуса CT-PT перелічує сім видів, шпаргалка Grafana k6 — шість, і списки не збігаються ні складом, ні назвами.

    ISTQB CT-PT §1.2Grafana k6
    load testingaverage-load test
    stress testingstress test
    spike testingspike test
    endurance testingsoak test
    scalability testing
    capacity testing
    concurrency testing
    smoke test
    breakpoint test

    Це не недогляд одного з джерел. Дока k6 говорить прямо: консенсусу не існує навіть щодо назв цих видів, а самі категорії відносні до випадку — «стрес-тест для одного застосунку є тестом середнього навантаження для іншого». Отже, «стрес-тест» без контексту конкретної системи нічого конкретного не означає.

    Звідси два наслідки. Перший: називайте обидві таксономії й кажіть, що вони не збігаються — зводити їх до одного «істинного» списку помилка. Другий: стратегія сильно залежить від профілю організації («уникайте мислити в абсолютах»), і жоден окремий вид тесту не усуває всіх ризиків — щоб оцінити різні режими , види комбінують. Сьомий вид ISTQB, concurrency testing, тут не розбираємо: його дім — глава про метрики.

    Load: чи тримає система те, що ми очікуємо

    означує (load testing) як тип тестування продуктивності для оцінки поведінки під різними навантаженнями — зазвичай у діапазоні між очікуваними умовами низького, типового й пікового використання. Силабус розгортає: фокус на здатності витримувати зростальні рівні очікуваних реалістичних навантажень, що виникають із запитів , згенерованих контрольованою кількістю конкурентних користувачів або процесів.

    Два слова тут несучі. Очікувані реалістичні — усе, що виходить за очікуваний діапазон, це вже не load, а stress. Контрольована кількість — навантаження задається, а не спостерігається: прогін, у якому ви не знаєте, скільки саме подали, під канонічне означення load-тесту не підпадає.

    k6 називає той самий вид average-load test — оцінка того, як система працює за очікуваних нормальних умов, — і дає орієнтири, яких канон не дає взагалі: навантаження середнє продове, тривалість 5–60 хвилин, привід — регулярна перевірка, що система тримає продуктивність за середнього використання.

    І головне обмеження виду, сформульоване каноном прямо: без кількість користувачів не є доброю мірою навантаження. «Ми прогнали 500 користувачів» без опису того, що ці 500 роблять, навантаження не задає — а отже, результат ні з чим не порівняти. Як будується профіль — предмет окремої глави розділу про модель навантаження.

    Stress: за межею навантаження — і за межею ресурсів

    Означення (stress testing) складене з двох незалежних частин, і другу пропускають найчастіше. Це тип тестування продуктивності, що оцінює систему або компонент:

    1. на межах або поза межами очікуваних чи специфікованих робочих навантажень;
    2. або зі зменшеною доступністю ресурсів — силабус називає їх поіменно: доступна обчислювальна ємність, доступна і памʼять.

    Другу вісь можна тестувати, не додавши жодного : достатньо забрати памʼять або урізати пропускну здатність.

    Режим відмови, який шукає цей вид, канон описує окремо: деградація стає неприйнятною вже в межах нормального, очікуваного, дозволеного діапазону, а типові причини — одного або кількох ресурсів і змінні фонові навантаження. Позамежний приклад інший: система падає або не відповідає на раптову велику кількість запитів. Тому мета стрес-тесту — не зламати систему, а побачити, як саме вона ламається.

    k6 означує вид як оцінку роботи системи на своїх межах, коли навантаження перевищує очікуване середнє: навантаження високе, тривалість — ті самі 5–60 хвилин. Поруч стоїть вид, якого в ISTQB немає взагалі, — breakpoint: він поступово нарощує навантаження, щоб знайти межі ємності системи. Якщо питають «як знайти точку зламу», мовою інструментів це саме breakpoint.

    Практична деталь: дока JMeter радить тримати вимкненим запис усіх відповідей (Functional Testing) під час стрес-тестування — інакше файл результатів швидко розростається, і продуктивність самого JMeter страждає. Типово і так вимкнений, тож ідеться про те, щоб не ввімкнути його заради зручності й забути. Вимірювальний інструмент починає псувати те, що міряє.

    Spike: витримати пік — і повернутися

    (spike testing) зосереджене на здатності системи правильно відповісти на раптові сплески пікових навантажень і потім повернутися до усталеного стану; глосарій формулює це ще прямолінійніше — через відновлення після сплеску.

    Обидва канонічні формулювання містять два елементи, і другий пропускають регулярно: прогін, у якому система пережила пік, але лишилася в деградованому стані, вид вважає провальним.

    Так

    Ні

    Усталений стан

    Миттєвий стрибок навантаження

    Пік: кілька хвилин

    Спад до початкового рівня

    Час відповіді повернувся
    до усталеного?

    Пройдено

    Провалено: система
    не відновилась

    Так

    Ні

    Усталений стан

    Миттєвий стрибок навантаження

    Пік: кілька хвилин

    Спад до початкового рівня

    Час відповіді повернувся
    до усталеного?

    Пройдено

    Провалено: система
    не відновилась

    Форма навантаження теж своя. Раптова зміна має власну назву серед канонічних форм профілю — Steps, миттєві зміни навантаження (наприклад, додавати 100 віртуальних користувачів кожні пʼять хвилин), на відміну від Ramp-ups — рівномірного зростання (скажімо, один віртуальний користувач за хвилину), з якого будують звичайний load-тест. k6 означує вид як валідацію виживання системи за раптових, коротких і масивних зростань активності: навантаження дуже високе, тривалість кілька хвилин, привід — сезонні події або часті піки трафіку.

    Канонічний приклад ISTQB упізнає кожен: продаж квитків на великий спортивний захід. Система падає або не відповідає на раптову велику кількість запитів, і діагноз названо прямо — ємності обробити цю кількість користувачів недостатньо.

    Soak: те, що ламається лише з часом

    (endurance testing; в інструментів той самий вид зветься soak) зосереджене на стабільності системи протягом проміжку часу, специфічного для її операційного контексту. Глосарій додає другу вісь: під значним навантаженням протягом значного проміжку часу.

    Предмет пошуку канон називає поіменно: цей тип тестування перевіряє, що немає проблем ємності ресурсів — витоків памʼяті, зʼєднань з базою даних, пулів потоків, — які згодом можуть деградувати продуктивність і/або спричинити відмови в точках зламу. Ширший перелік причин «деградації з часом» канон наводить окремо: витоки памʼяті, фрагментація диска, зростання мережевого навантаження, ріст файлового сховища й неочікуване зростання бази даних.

    Чому цього не бачать інші види? Бо дефект проявляється не на високому навантаженні й не на короткому прогоні, а на звичайному навантаженні, витриманому довго. Саме тому k6 дає для soak навантаження середнє, а тривалість — довгу (години), з приводом «після змін перевірити систему під тривалим безперервним використанням».

    Метрика цього виду — тренд, а не значення: дивитися треба на нахил графіка й споживання памʼяті, бо середнє за вісім годин може лишатися прийнятним, поки остання година вже нікуди не годиться. Пріоритет джерело формулює як питання ризику: одні системи більше ризикують тривалим використанням, і тоді soak має бути пріоритетним, інші — інтенсивним, і там першість за стрес-тестами.

    Volume: коли змінна — не користувачі, а дані

    Тут потрібна засторога, і вона важливіша за сам виклад. Канонічного джерела під термін «обсягове тестування» (volume testing) не існує, і це перевірено, а не припущено: у машинному зрізі ISTQB Glossary на 651 термін такого запису немає (решта семи видів присутні всі), у силабусі CT-PT — жодного входження. Єдине джерело, яке термін означує, — стаття Вікіпедії, тобто secondary, до того ж із власним банером про брак посилань і останньою правкою в серпні 2023 року. Тому далі — ужиткове означення, а не канон.

    За цим джерелом — тестування застосунку на певній кількості даних, щоб перевірити продуктивність системи за такої кількості даних у базі. Змінна тут — обсяг збережених даних, а не кількість користувачів чи темп запитів: базу розширюють до потрібного розміру й тестують продуктивність уже на ній; другий випадок — файл обміну (.dat, .xml), для якого створюють зразок потрібного розміру. Показово, що навіть енциклопедія подає віднесення виду до як чужу думку — «is regarded by some as a type of capacity testing».

    Канон ISTQB явище описує, але назви йому не дає: цілі ємності можуть також формулюватися щодо обсягів даних, які виникають із транзакцій, і в силабусі є приклад цього класу — деградація, коли користувачі запитують великі обсяги даних, з діагнозом «ємності обробити згенеровані обсяги даних недостатньо». Тому вимогу «система тримає базу на N мільйонів рядків» надійніше формулювати як ціль ємності з явним обсягом даних.

    Scalability і capacity: «скільки тримаємо зараз» проти «наскільки виростемо»

    Ці два види плутають частіше за решту, хоча різниця між ними в одному слові — часі.

    Тестування ємності (capacity testing) визначає, скільки користувачів і/або транзакцій задана система підтримає — і при цьому все ще виконає заявлені цілі продуктивності. Умова несуча: максимальна кількість користувачів, за якої система ще відповідає за задані X мілісекунд, і максимальна, за якої вона просто не падає, — два різні числа, і ємністю канон називає перше. Тому питання «скільки ми тримаємо?» відповіді не має, поки не названо ціль. Саму ємність глосарій означує як ступінь, у якому максимальні межі параметра відповідають вимогам.

    (scalability testing) дивиться в майбутнє: фокус — здатність системи відповідати майбутнім вимогам продуктивності, які можуть виходити за межі нинішніх, а мета — визначити здатність рости (більше користувачів, більші обсяги збережених даних) без порушення чинних специфікованих вимог і без відмов. Найцінніше тут те, що результат переживає прогін: щойно межі масштабованості відомі, порогові значення можна встановити й моніторити на проді, щоб отримати попередження про проблеми, які можуть ось-ось виникнути. Тест дає число — число стає порогом алерту.

    Деталь, яка робить відповідь сильною: на здатність масштабуватися впливають усі три підхарактеристики — часова поведінка, і ємність, — тож «не масштабується» діагноз неповний, поки не названо, яка з трьох упирається першою. А в k6 окремого capacity-виду немає взагалі: найближчий родич — уже згаданий breakpoint, і різниця між ними в питанні («скільки тримає з дотриманням цілей» проти «де ламається»).

    Baseline і перф-смоук: без чого прогін не має вердикту

    (performance baseline) — набір метрик, які використовують для порівняння поточних і раніше досягнутих вимірів продуктивності. У каноні він стоїть серед , поряд із цілями перф-тесту й SLA, і дає змогу продемонструвати конкретні поліпшення продуктивності та/або підтвердити досягнення критеріїв приймання. Зворотний бік канон називає серед ризиків прогону, розпочатого без заздалегідь визначених метрик: без набору базових вимірів, що визначають прийнятну й неприйнятну продуктивність, фактичні результати прогону неможливо оцінити. Тобто «700 мс» — не результат; результат — «700 мс проти 480 мс тиждень тому, на тому самому середовищі й тих самих даних».

    Деталь, яку легко проґавити: канон каже, що може бути потрібно спершу створити базовий вимір, використовуючи знеособлені дані з бази, де це можливо. Baseline не «береться з проду» — його готують, і саме тому він відтворюваний.

    Дока k6 ставить порівняння з базовим виміром першим пунктом серед цілей регулярних прогонів, а поруч — окремими пунктами — розуміння варіацій метрик у часі (плаский чи змінний тренд) і виявлення нових релізів. Те, що це три різні цілі, важливо: baseline відповідає на «чи ми не погіршилися проти зафіксованої точки», тренд — на «куди ми рухаємося загалом». Що означає кожна метрика — тема глави про метрики.

    Найдешевший інструмент розділу — перф-. k6 радить починати саме з нього: перед більшими прогонами валідувати, що скрипти працюють як очікується і що система нормально почувається з кількома користувачами. У шпаргалці це низьке навантаження, тривалість у секундах або хвилинах, привід — зміна відповідного коду; перевіряє він функціональну логіку, базові метрики й відхилення. Спосіб не втратити три години нічного прогону на скрипті, який зламався через переїзд .

    Який вид відповідає на яке питання

    Найшвидший спосіб обрати вид — почати не з назви, а з форми проблеми. Канон дає чотири , і кожен веде до свого набору гіпотез.

    Що видноТипові причини за канономКуди дивитися
    Повільно на будь-якому навантаженніпогана схема або реалізація БД, мережева затримка, фонові навантаженняне перф-тест: помітно вже у функціональному тестуванні
    Повільно на середньому й високомунасичення одного або кількох ресурсів, змінні фонові навантаженняload, далі stress
    Деградація з часомвитоки памʼяті, фрагментація диска, зростання мережевого навантаження, ріст файлового сховища, неочікуване зростання БДsoak / endurance
    Погана обробка помилок під перевантаженнямнедостатні пули ресурсів, замалі черги й стеки, надто швидкі таймаутиstress, spike

    Перший рядок канон коментує окремо: такі проблеми виявляються під час функціонального й юзабіліті-тестування, не лише перф-тестування. Четвертий — найпідступніший: час відповіді ще прийнятний, а обробка помилок уже деградує.

    Яке питання ставить бізнес?

    Чи тримаємо очікуване?

    Що буде за межею або
    за браку ресурсів?

    Чи переживемо пік
    і повернемось?

    Чи не зʼїде система
    за добу роботи?

    Скільки тримаємо
    з дотриманням цілей?

    Чи витримаємо
    вдесятеро більше?

    load / average-load

    stress

    spike

    endurance / soak

    capacity

    scalability

    Яке питання ставить бізнес?

    Чи тримаємо очікуване?

    Що буде за межею або
    за браку ресурсів?

    Чи переживемо пік
    і повернемось?

    Чи не зʼїде система
    за добу роботи?

    Скільки тримаємо
    з дотриманням цілей?

    Чи витримаємо
    вдесятеро більше?

    load / average-load

    stress

    spike

    endurance / soak

    capacity

    scalability

    І засторога до інтерпретації. Графіку утилізації ресурсів не можна вірити, не спитавши, яке в нього вікно усереднення: сплеск високої утилізації може спричинити насичення, хоча усереднена по довгому інтервалу утилізація виглядає низькою. Задокументований випадок: інструменти показували утилізацію процесора не вище 80% при наявному насиченні — бо звітували пʼятихвилинними середніми, усередині яких утилізація на секунди сягала 100%.

    Типові помилки

    «Стрес-тест — це просто побільше навантаження». Виглядає як подвоєна кількість віртуальних користувачів, а насправді половина канонічного означення не про навантаження взагалі: вона про зменшену доступність ресурсів — обчислювальної ємності, пропускної здатності, памʼяті.

    «Система пережила пік — сплесковий тест пройдено». Виглядає як зелений прогін, а насправді обидва канонічні формулювання вимагають ще й повернення до усталеного стану. Система, яка після піку лишилася повільною, тест провалила — тому фазу спадання не можна відрізати «щоб швидше».

    «Soak — це той самий load, тільки довше й сильніше». Виглядає як логічне посилення, а насправді навантаження в soak — середнє: дефекти класу «деградація з часом» проявляються на звичайному навантаженні, витриманому довго.

    «Ми тримаємо 5000 користувачів». Виглядає як число ємності, а насправді ємність за каноном — це скільки система підтримає і при цьому все ще виконає заявлені цілі продуктивності. Без названої цілі це просто точка, у якій ще не впало.

    «700 мс — це нормально?» Виглядає як питання до тестувальника, а насправді це питання до базового виміру, якого немає: без метрик, що визначають прийнятну й неприйнятну продуктивність, результати прогону оцінити нічим. Канон називає це ризиком прогону без заздалегідь визначених метрик, а k6 ставить порівняння з базовим виміром першим пунктом серед цілей регулярних прогонів.

    Підсумок

    1. Види — це різні питання, а не різні сили одного питання. Load — «чи тримаємо очікуване», stress — «що за межею і за браку ресурсів», spike — «чи переживемо пік і повернемось», soak — «чи не деградуємо з часом», capacity — «скільки тримаємо з дотриманням цілей», scalability — «наскільки виростемо».
    2. Єдиної таксономії немає, і це треба називати вголос. ISTQB дає сім видів, k6 — шість зі своїми назвами, а дока інструмента визнає брак консенсусу навіть щодо назв.
    3. У половини означень є друга половина, яку пропускають: у стресі — дефіцит ресурсів, у сплеску — повернення до усталеного стану, в ємності — «і при цьому виконує заявлені цілі».
    4. Числа інструментів — орієнтир, а не норма: стрес для одного застосунку є середнім навантаженням для іншого.
    5. Прогін без базового виміру вердикту не має: результат — це порівняння з зафіксованою точкою на тому самому середовищі й тих самих даних.

    Можливі питання

    «Чим load відрізняється від stress?» Перевіряють, чи бачите ви межу «очікуване проти позамежного» — і чи згадаєте другу вісь стресу, зменшену доступність ресурсів. Відповідь лише про «більше користувачів» читається як вивчений список.

    «Що таке soak-тест і що саме він ловить?» Дивляться, чи назвете клас дефектів (витоки памʼяті, невіддані зʼєднання з БД, вичерпані пули потоків) і чи скажете, що навантаження в такому прогоні звичайне, а висновок роблять по тренду.

    «Чим capacity відрізняється від scalability?» Класична пара на плутанину: перше — про «зараз і на цьому залізі», друге — про «потім, коли виростемо». А «скільки користувачів витримає система» — питання, на яке сильна відповідь починається зі зустрічного: яка ціль продуктивності? Без неї «витримає» не визначено.

    «Що таке volume testing?» Питання на чесність: термін ужитковий, але канонічним його назвати не можна — в ISTQB такого терміна немає, а явище покривається цілями ємності щодо обсягів даних.

    «Які види performance-тестів ви знаєте?» Слухають не довжину списку, а структуру: чи привʼязуєте кожну назву до питання і чи згадуєте, що таксономії різняться.

    Джерела

    Дві таксономії, і жодна з них не «правильна»

    • ISTQB® CT-PT — Foundation Level Specialist Syllabus, Performance Testing v1.0 (2018) — §1.2: перф-тестування як збірний термін і перелік із семи видів, включно з concurrency testing.
    • ISTQB Glossary — означення performance testing як типу тестування, що визначає продуктивність компонента або системи.
    • Grafana k6 — Load test types — перелік із шести видів, пряма заява про брак консенсусу щодо назв, залежність стратегії від профілю ризику й теза, що жоден окремий вид не усуває всіх ризиків.

    Load: чи тримає система те, що ми очікуємо

    • ISTQB® CT-PT — Foundation Level Specialist Syllabus, Performance Testing v1.0 (2018) — §1.2: фокус на очікуваних реалістичних навантаженнях і контрольованій кількості користувачів; §4.2.5: теза, що без операційних профілів кількість користувачів не є доброю мірою навантаження.
    • ISTQB Glossary — означення load testing через діапазон між очікуваними низьким, типовим і піковим використанням.
    • Grafana k6 — Load test types — назва average-load test та орієнтири навантаження, тривалості й приводу для запуску.

    Stress: за межею навантаження — і за межею ресурсів

    • ISTQB® CT-PT — Foundation Level Specialist Syllabus, Performance Testing v1.0 (2018) — §1.2: дві осі стресу (навантаження за межею і зменшена доступність ресурсів) із переліком ресурсів; §1.5: режим відмови «деградація в межах очікуваного діапазону» і його причини.
    • ISTQB Glossary — означення stress testing через межі очікуваних навантажень або зменшену доступність ресурсів.
    • Grafana k6 — Load test types — означення й орієнтири стрес-тесту; окремий вид breakpoint як поступове нарощування до межі ємності.
    • Apache JMeter — User's Manual: Elements of a Test Plan — порада вимикати запис усіх відповідей під час стрес-тестування, бо файл швидко розростається й страждає продуктивність самого JMeter.

    Spike: витримати пік — і повернутися

    • ISTQB® CT-PT — Foundation Level Specialist Syllabus, Performance Testing v1.0 (2018) — §1.2: сплеск як здатність відповісти на раптові пікові навантаження й повернутися до усталеного стану; §4.2.4: форми профілю Steps і Ramp-ups; §1.5: приклад із продажем квитків і діагноз «ємності бракує».
    • ISTQB Glossary — означення spike testing через відновлення після раптових сплесків пікових навантажень.
    • Grafana k6 — Load test types — означення сплеску як виживання за раптових коротких масивних зростань активності, орієнтири навантаження й тривалості.

    Soak: те, що ламається лише з часом

    • ISTQB® CT-PT — Foundation Level Specialist Syllabus, Performance Testing v1.0 (2018) — §1.2: витривалість як стабільність в операційному контексті й перевірка на відсутність проблем ємності ресурсів (витоки памʼяті, зʼєднання з БД, пули потоків); §1.5: перелік причин деградації з часом.
    • ISTQB Glossary — означення endurance testing через значне навантаження протягом значного проміжку часу.
    • Grafana k6 — Load test types — назва soak, орієнтири (середнє навантаження, тривалість у годинах) і пріоритет soak проти стресу за профілем ризику системи.

    Volume: коли змінна — не користувачі, а дані

    • Wikipedia — Volume testing — джерело класу secondary, єдине, що термін означує: тестування на заданій кількості даних у базі або у файлі обміну, розширення бази до потрібного розміру, віднесення до тестування ємності подане як чужа думка.
    • ISTQB® CT-PT — Foundation Level Specialist Syllabus, Performance Testing v1.0 (2018) — канон описує явище без окремої назви: §1.2 — цілі ємності можуть формулюватися щодо обсягів даних; §1.5 — приклад деградації на великих обсягах і його діагноз.

    Scalability і capacity: «скільки тримаємо зараз» проти «наскільки виростемо»

    • ISTQB® CT-PT — Foundation Level Specialist Syllabus, Performance Testing v1.0 (2018) — §1.2: ємність як кількість користувачів і транзакцій із дотриманням заявлених цілей; масштабованість як здатність рости без порушення чинних вимог і межі масштабованості як пороги моніторингу на проді; §1.1: вплив усіх трьох підхарактеристик на здатність масштабуватися.
    • ISTQB Glossary — означення capacity як ступеня, у якому максимальні межі параметра відповідають вимогам, і scalability testing як тестування масштабованості продукту.
    • Grafana k6 — Load test typesbreakpoint як найближчий інструментальний родич: поступове нарощування навантаження до меж ємності.

    Baseline і перф-смоук: без чого прогін не має вердикту

    • ISTQB® CT-PT — Foundation Level Specialist Syllabus, Performance Testing v1.0 (2018) — §4.1.2: baseline як набір метрик для порівняння, елемент критеріїв приймання і створення базового виміру на знеособлених даних; §2.1: ризик прогону без базових вимірів.
    • Grafana k6 — Automated performance testing — порівняння з базовим виміром як перша ціль регулярних прогонів, окремо від спостереження за трендом і виявлення регресій релізів.
    • Grafana k6 — Load test types — порада починати зі смоук-тесту й орієнтири смоуку: низьке навантаження, секунди-хвилини, перевірка логіки, базових метрик і відхилень.

    Який вид відповідає на яке питання

    Пояснення

    «Поясни» працює з власним API-ключем Anthropic: запит іде з вашого браузера прямо до Anthropic.

    Свій API-ключ (BYOK)

    Вставте власний ключ Anthropic — пояснення працюватиме на реальній моделі. Ключ зберігається лише у вашому браузері (localStorage), нікуди не надсилається, крім api.anthropic.com, і не логується.