This media is not supported in your browser
VIEW IN TELEGRAM
Всім доброго вечора 🌙
Ну шо, як у вас день пройшов?
Я от тільки зараз доповз до моменту, коли можу спокійно видихнути, перший день після відпустки 🫠
І класика жанру розгрібай пошту, відповідай на листи, репорти, кастомерів і а шо там з тією фічею як воно працює)?
Реально, під кінець дня вже пальці відвалюються від клави, ніби марафон біг по Jira і chat'у одночасно
У вас теж таке буває? Коли здається, що нічого критичного не сталося але по факту ти пів дня просто ловиш фаєрболами.
Ось На відео це маст хев-стіл, коли ти в тотальній запарі
все під рукою, але як би не крутився все одно знайдуть по колу стануть і будуть засипати ????????????????????
Всім гарного вечора, релаксу вам бажаю 🤗🤗🤗
Ну шо, як у вас день пройшов?
Я от тільки зараз доповз до моменту, коли можу спокійно видихнути, перший день після відпустки 🫠
І класика жанру розгрібай пошту, відповідай на листи, репорти, кастомерів і а шо там з тією фічею як воно працює)?
Реально, під кінець дня вже пальці відвалюються від клави, ніби марафон біг по Jira і chat'у одночасно
У вас теж таке буває? Коли здається, що нічого критичного не сталося але по факту ти пів дня просто ловиш фаєрболами.
Ось На відео це маст хев-стіл, коли ти в тотальній запарі
все під рукою, але як би не крутився все одно знайдуть по колу стануть і будуть засипати ????????????????????
Всім гарного вечора, релаксу вам бажаю 🤗🤗🤗
😁14❤3🤓2
This media is not supported in your browser
VIEW IN TELEGRAM
Друзі, всім привіт ☀️
Сподіваюсь, у вас усе добре і ви в безпеці 🙏
Сьогодні просто хочу побажати вам гарного, спокійного і продуктивного дня.
Почніть ранок з чашечки кофаа (а кому не можна, то з соку апельсинового або чая),
візьміть шматочок чорного шоколаду, вдихніть-видихніть і вперед, розривати беклог і життя 🔥
Вірю в кожного з вас
Ви круті. Ви сильні.
Всіх обняв. Бережіть себе ❤️
Сподіваюсь, у вас усе добре і ви в безпеці 🙏
Сьогодні просто хочу побажати вам гарного, спокійного і продуктивного дня.
Почніть ранок з чашечки кофаа (а кому не можна, то з соку апельсинового або чая),
візьміть шматочок чорного шоколаду, вдихніть-видихніть і вперед, розривати беклог і життя 🔥
Вірю в кожного з вас
Ви круті. Ви сильні.
Всіх обняв. Бережіть себе ❤️
4🥰12❤6❤🔥4
Всім привіт, як ви? кавуся допомогла?
Обідня історія QA
Коли без LocalStorage не куда для веба.
Сьогодні з ранку ну прям день почався з кави але не з настрою після неї, це ішшью ідеальна класика для QA
Якщо коротко то тестував веб-додаток для відео/аудіо дзвінків, де юзер може вибрати, або свій телефон, або софтфон (внутрішній SIP) куди буде йти стрім аудіо,
Юзер вибрав софтфон очікуєш, що дзвінок піде через нього?
Ага, щас.
Дзвінок стабільно йде на старий номер, якого вже немає в UI.
Ну і консоль кричить
Error: call target mismatch, unexpected endpointId received ну це класична помилка. но не можу далі понять в чому проблема, і на другому env у мене не відтворюється.
Ну пишу деву, показую відео, логи.
Ну і Відповідь стандартна
У мене не відтворюється. У тебе щось з RDP або кешем. Це не бага. Ну да… тільки я цей баг вже тричі відловив.
Ну я як завжди Окей, іду копати глибше.
DevTools → Application → Local Storage.
Що бачу?
Є ключ call.rooms
В ній масив з кількома об'єктами типу і там є явно "type": "softphone", але поручь є ше один запис тільки з другой сессієй ID де там вже "type": "phone", і ось ти мій дорогенький
Виявляється, UI бере просто перший endpoint із localStorage
і дзвонить куди бачить першим, ігноруючи активну сесію.
Це як if (storage.rooms[0].endpoint) і поїхали. і це не відтворюється бо коли є реально 1 запись там все гуд працює і не дочепишься)
Знаєте мені 1 раз сказала дуже умна люди круту річь - якщо баг в QA відтвориться хотя б 1 раз і не де більше, в кастомерів він точно вилізе, і це True
Хотів також вам в комплект порадити пару тулів які я теж юзаю
Local Storage - це зручний інструмент для керування локальним сховищем через панель розширень
https://chromewebstore.google.com/detail/local-storage/nnlekldijoehomfgfciodmolohhfkfpm
Polypane - це реально справжня знахідка для куа якщо ви не знали, тестуєш різні стани юзерів (log in / log out, різні ролі) не треба логінитись щоразу, бачиш одразу як зміна localStorage/cookie впливає на рендер, Можна одночасно тримати кілька версій UI, наприклад, staging vs prod
https://polypane.app/
ну про Recorder у Chrome DevTools я думаю ви всі чули, Це інструмент вбудований у Chrome DevTools, який дозволяє записувати, редагувати й відтворювати дії користувача на сторінці, а також експортувати їх у скрипти для автотестів.
ну і куди ж без швидкого копіпаст localStorage між браузерами / сесіями
ось вам і бага на ровному місці)))
А які ви розширення чи тули юзаєте? поділіться в коментарям мені правда дуже цікаво - бо я як вже казав старе і юзаю може не шось новіше і всі про це знають)
ну і да, QA це коли ти кажешь деву це баг і це треба фіксити, і якщо він каже це фіча, треба як кажуть донести істину)
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
#обідні_історії_QA #localStorage
Обідня історія QA
Коли без LocalStorage не куда для веба.
Сьогодні з ранку ну прям день почався з кави але не з настрою після неї, це ішшью ідеальна класика для QA
Якщо коротко то тестував веб-додаток для відео/аудіо дзвінків, де юзер може вибрати, або свій телефон, або софтфон (внутрішній SIP) куди буде йти стрім аудіо,
Юзер вибрав софтфон очікуєш, що дзвінок піде через нього?
Ага, щас.
Дзвінок стабільно йде на старий номер, якого вже немає в UI.
Ну і консоль кричить
Error: call target mismatch, unexpected endpointId received ну це класична помилка. но не можу далі понять в чому проблема, і на другому env у мене не відтворюється.
Ну пишу деву, показую відео, логи.
Ну і Відповідь стандартна
У мене не відтворюється. У тебе щось з RDP або кешем. Це не бага. Ну да… тільки я цей баг вже тричі відловив.
Ну я як завжди Окей, іду копати глибше.
DevTools → Application → Local Storage.
Що бачу?
Є ключ call.rooms
В ній масив з кількома об'єктами типу і там є явно "type": "softphone", але поручь є ше один запис тільки з другой сессієй ID де там вже "type": "phone", і ось ти мій дорогенький
Виявляється, UI бере просто перший endpoint із localStorage
і дзвонить куди бачить першим, ігноруючи активну сесію.
Це як if (storage.rooms[0].endpoint) і поїхали. і це не відтворюється бо коли є реально 1 запись там все гуд працює і не дочепишься)
Знаєте мені 1 раз сказала дуже умна люди круту річь - якщо баг в QA відтвориться хотя б 1 раз і не де більше, в кастомерів він точно вилізе, і це True
Хотів також вам в комплект порадити пару тулів які я теж юзаю
Local Storage - це зручний інструмент для керування локальним сховищем через панель розширень
https://chromewebstore.google.com/detail/local-storage/nnlekldijoehomfgfciodmolohhfkfpm
Polypane - це реально справжня знахідка для куа якщо ви не знали, тестуєш різні стани юзерів (log in / log out, різні ролі) не треба логінитись щоразу, бачиш одразу як зміна localStorage/cookie впливає на рендер, Можна одночасно тримати кілька версій UI, наприклад, staging vs prod
https://polypane.app/
ну про Recorder у Chrome DevTools я думаю ви всі чули, Це інструмент вбудований у Chrome DevTools, який дозволяє записувати, редагувати й відтворювати дії користувача на сторінці, а також експортувати їх у скрипти для автотестів.
ну і куди ж без швидкого копіпаст localStorage між браузерами / сесіями
// Експорт:
copy(JSON.stringify(localStorage))
// Імпорт:
Object.entries(JSON.parse(prompt('Встав JSON:'))).forEach(([k,v]) => localStorage.setItem(k, v))
ось вам і бага на ровному місці)))
А які ви розширення чи тули юзаєте? поділіться в коментарям мені правда дуже цікаво - бо я як вже казав старе і юзаю може не шось новіше і всі про це знають)
ну і да, QA це коли ти кажешь деву це баг і це треба фіксити, і якщо він каже це фіча, треба як кажуть донести істину)
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
#обідні_історії_QA #localStorage
Google
Local Storage - Chrome Web Store
A browser extension for managing local storage.
2🔥14👍5❤3⚡1🥴1
Завдання дня для QA
Що з наведеного найточніше описує, як працює NAT у звичайній домашній мережі?
Що з наведеного найточніше описує, як працює NAT у звичайній домашній мережі?
Anonymous Quiz
7%
(A) Прямо передає публічні IP кожному пристрою в локалці
17%
(B) Шифрує весь трафік перед надсиланням у зовнішню мережу
58%
(C) Перетворює приватні IP-адреси на публічну IP-адресу роутера
18%
(D) Не дозволяє жодному пакету ззовні потрапити до внутрішньої мережі
👍6🔥5🤓1🤪1
This media is not supported in your browser
VIEW IN TELEGRAM
Доброго ранку, народ
Сьогодні без філософії, просто ранок, просто робота.
Той самий день, де нічого нового, але всьо якось треба зробить.
Знаєте цей вайб, коли не хочеш, а вже робиш? Ну от і я вже так з 08:15
Сьогодні кум мені підняв настрій з ранку
Прикладаю відео коли ти GPT знов шось не те, і ти вже давай, давай по новій, ну давай, блін, давай
😂😂😂
І як тут не згадати класичне
Той, хто боїться, що його через пару років замінить ШІ, скоріше за все, просто ще не юзає GPT правильно
Так шо гарного вам дня, стабільного Wi-Fi,
і шоб таски не плодились самі по собі, а бажано, закривались 💪
Обійняв.
Сьогодні без філософії, просто ранок, просто робота.
Той самий день, де нічого нового, але всьо якось треба зробить.
Знаєте цей вайб, коли не хочеш, а вже робиш? Ну от і я вже так з 08:15
Сьогодні кум мені підняв настрій з ранку
Прикладаю відео коли ти GPT знов шось не те, і ти вже давай, давай по новій, ну давай, блін, давай
😂😂😂
І як тут не згадати класичне
Той, хто боїться, що його через пару років замінить ШІ, скоріше за все, просто ще не юзає GPT правильно
Так шо гарного вам дня, стабільного Wi-Fi,
і шоб таски не плодились самі по собі, а бажано, закривались 💪
Обійняв.
2😁10👍7💯3
Завдання дня для QA
Навіщо браузери поважають заголовок X-Content-Type-Options: nosniff?
Навіщо браузери поважають заголовок X-Content-Type-Options: nosniff?
Anonymous Quiz
40%
(A) Щоб заборонити зберігання cookies сторонніми сайтами
28%
(B) Щоб браузер не намагався сам вгадати MIME-тип контенту
18%
(C) щоб пришвидшити завантаження JS/CSS файлів
15%
(D) Щоб обійти політику Same-Origin для скриптів
🔥7❤1👍1
Привіт друзі) мене вже не одна людина в коментах питала і в лс щось для мобайл!
Пост саме для тих, хто тестить мобайли або просто задовбався кожен раз мучитись зі збірками, API, інсталом і дебагом
Поділюсь 5-ма топовими тулзами, які я сам юзав в роботі
1. Loadly
https://loadly.io/
Це просто магія, якшо ти працюєш з iOS.
Ставити .ipa без TestFlight, акаунтів і болі, закинув файл -> згенерував QR -> відсканував айфоном -> все!
Юзав купу разів, коли треба було швидко накатити збірку комусь або самому протестити щось із минулого. Працює прям стабільно, не підводило.
2. HTTP Toolkit
https://httptoolkit.com/
Це коли дев каже, У мене все працює, а ти бачиш, що респонз пустий відкриваєш цей тул і ловиш весь трафік. можно подивитись API прямо з мобілки, перехопити, змінити, зафейкати респонс, додати сертифікат для SSL
Прям must-have якщо API тестиш не тільки на браузері.
3. Pyto IDE - юзав давно, але це актуалочка
https://apps.apple.com/us/app/pyto-ide/id1436650069
А це для тих моментів, коли на проді все попливло, а тебе немає біля ноута. Тут як DevTools прямо на айфоні, верстка, стилі, консоль
Все як у великому Chrome але в кишені)
4. firebase
https://firebase.google.com/products/app-distribution
Якшо ти працюєш у команді, дуже зручно. Закинув apk/ipa, Тестер або менеджер отримав пуш на телефон видно, хто встановив
5. Screen studio
https://screen.studio/
а ось це вже не тул для тестів, але для записів просто вогонь. Якість відео шикарна/ Видно натискання, є круті анімації
Ну і Можна записати демо, баг, інструкцію для юзера
Особисто я ним записую все девам і менеджерам заходить, бо виглядає як презентація Apple
Всі ці тули перевірені особисто але не всі юзаю зараз але вони актуальні)
Якщо теж щось юзаєте круте, пишіть в коментар, люди реально багато питали) але я з мобайлом дуже рідко стикаюсь
Обняв, банда 💛
Пост саме для тих, хто тестить мобайли або просто задовбався кожен раз мучитись зі збірками, API, інсталом і дебагом
Поділюсь 5-ма топовими тулзами, які я сам юзав в роботі
1. Loadly
https://loadly.io/
Це просто магія, якшо ти працюєш з iOS.
Ставити .ipa без TestFlight, акаунтів і болі, закинув файл -> згенерував QR -> відсканував айфоном -> все!
Юзав купу разів, коли треба було швидко накатити збірку комусь або самому протестити щось із минулого. Працює прям стабільно, не підводило.
2. HTTP Toolkit
https://httptoolkit.com/
Це коли дев каже, У мене все працює, а ти бачиш, що респонз пустий відкриваєш цей тул і ловиш весь трафік. можно подивитись API прямо з мобілки, перехопити, змінити, зафейкати респонс, додати сертифікат для SSL
Прям must-have якщо API тестиш не тільки на браузері.
3. Pyto IDE - юзав давно, але це актуалочка
https://apps.apple.com/us/app/pyto-ide/id1436650069
А це для тих моментів, коли на проді все попливло, а тебе немає біля ноута. Тут як DevTools прямо на айфоні, верстка, стилі, консоль
Все як у великому Chrome але в кишені)
4. firebase
https://firebase.google.com/products/app-distribution
Якшо ти працюєш у команді, дуже зручно. Закинув apk/ipa, Тестер або менеджер отримав пуш на телефон видно, хто встановив
5. Screen studio
https://screen.studio/
а ось це вже не тул для тестів, але для записів просто вогонь. Якість відео шикарна/ Видно натискання, є круті анімації
Ну і Можна записати демо, баг, інструкцію для юзера
Особисто я ним записую все девам і менеджерам заходить, бо виглядає як презентація Apple
Всі ці тули перевірені особисто але не всі юзаю зараз але вони актуальні)
Якщо теж щось юзаєте круте, пишіть в коментар, люди реально багато питали) але я з мобайлом дуже рідко стикаюсь
Обняв, банда 💛
loadly.io
Loadly.io - A Better Alternative to TestFlight and Diawi for App Beta Testing and Distribution
Loadly.io is the ultimate platform for app beta testing and distribution, offering unlimited app uploads and downloads, enhanced security, detailed analytics, and seamless integration. Discover why Loadly.io is a better alternative to TestFlight and Diawi.
7❤🔥20🔥10❤3⚡2🙏1
Доброго ранку, банда ☀️☀️☀️
Що я маю вам сказати. Вчора говорив із одним знайомим, крутий спец, шарить добре, та й працює реально як за 10-тьох.
Але каже, Просто вже не можу. Вигорання люте. На роботу не хочеться, на мітингах тільки 'ага' і 'окей'. І навіть звільнитись не можу, бо відчуття, що все тримається на мені.
І тут мені знову згадалась та сама думка, яку я собі не раз повторював і вам нагадаю
Робота має або приносити гроші, або задоволення.
Ідеально обидва. Але хоча б щось із цього.
Можна фігачити як конячка, але якщо,
добре платять - це мотивація.
кайфуєш від того, що робиш -це заряд.
А якщо ні першого, ні другого вигорання не за горами. І отой я ще трохи потерплю може закінчитись дуже фігово без ресурсу, без інтересу, без себе.
Я наприклад дуже кайфую від своїй роботи, так буває тяжкі дні і коли мозок плавиться - але коли ти вирішив на роботі ту чи іншу проблему або розібрався в том функціоналі та ти шо ти як заново родився і гордий за себе)
Як ви це відчуваєте?
Бували моменти, коли ловили себе на думці, Та гори воно все...
Як виходили з цього стану?
Поділіться, тут всі свої. Може, комусь із нашої банди допоможе ваше слово
Всім гарного дня і настрою)
Що я маю вам сказати. Вчора говорив із одним знайомим, крутий спец, шарить добре, та й працює реально як за 10-тьох.
Але каже, Просто вже не можу. Вигорання люте. На роботу не хочеться, на мітингах тільки 'ага' і 'окей'. І навіть звільнитись не можу, бо відчуття, що все тримається на мені.
І тут мені знову згадалась та сама думка, яку я собі не раз повторював і вам нагадаю
Робота має або приносити гроші, або задоволення.
Ідеально обидва. Але хоча б щось із цього.
Можна фігачити як конячка, але якщо,
добре платять - це мотивація.
кайфуєш від того, що робиш -це заряд.
А якщо ні першого, ні другого вигорання не за горами. І отой я ще трохи потерплю може закінчитись дуже фігово без ресурсу, без інтересу, без себе.
Я наприклад дуже кайфую від своїй роботи, так буває тяжкі дні і коли мозок плавиться - але коли ти вирішив на роботі ту чи іншу проблему або розібрався в том функціоналі та ти шо ти як заново родився і гордий за себе)
Як ви це відчуваєте?
Бували моменти, коли ловили себе на думці, Та гори воно все...
Як виходили з цього стану?
Поділіться, тут всі свої. Може, комусь із нашої банди допоможе ваше слово
Всім гарного дня і настрою)
❤18💔4👍2🥴2🙏1
Завдання дня для QA
Яку роль виконує директива proxy_pass у конфігурації Nginx?
Яку роль виконує директива proxy_pass у конфігурації Nginx?
Anonymous Quiz
7%
(A) Вона вказує шлях до статичних файлів, які треба кешувати
12%
(B) Вона визначає правило переписування URL для frontend-роутера
75%
(C) Вона дозволяє передати запит від Nginx до іншого сервера (reverse proxy)
7%
(D) Вона активує TLS для HTTPS-запитів
🔥6
Bug or Defect?
Завдання дня для QA
Навіщо браузери поважають заголовок X-Content-Type-Options: nosniff?
Навіщо браузери поважають заголовок X-Content-Type-Options: nosniff?
Доброго вечора, як ваші справи? щось у мене завал просто, не продохнути.
Вирішив вам зробити розбір цього пула вже як звільнився від праці)
ну коротенько чому це не (A) але він в топі по відповідям
Caме це робить заголовок SameSite, або політика CORS, а не nosniff.
чому ні (С)
Тут принцепі не про те, nosniff не має ніякого відношення до швидкості. Це про безпеку, а не про перформанс.
Чому і не (D)
А тут навпаки. nosniff підсилює політику Same-Origin. Він забороняє виконання файлів, якщо вони не мають правильний тип.
ну і правильна відповідь чому саме (B)
Друзі, дивіться яка штука.
Є той самий заголовок X-Content-Type-Options: nosniff і він звучить складно, але насправді суть проста, тобто це заборона браузеру розумничати.
Бо браузери іноді думають, що вони знають краще, ніж сервер. Ти умовно кажеш ось тобі CSS, а він каже Ммм це виглядає як JavaScript, давай я його виконаю.
І ось тут саме тоді в гру вступає nosniff, він каже не вигадуй. Виконуй лише той контент, MIME-тип якого чітко співпадає з очікуваним і все.
Це важливо для безпеки, бо інакше можна завантажити скрипт з .css розширенням, і браузер його виконає. А це вже XSS і інші пригоди.
Як я це запам’ятав та дуже просто
nosniff це як QA, який каже не треба здогадуватись, працюємо тільки по документації!
Ось така простенька, але важлива деталька, яку краще памʼятати 😉
сподіваюсь пул вийшов цікавий і комусь корисний)
Всім гарного вечора, обняв 🤗🤗🤗
Вирішив вам зробити розбір цього пула вже як звільнився від праці)
ну коротенько чому це не (A) але він в топі по відповідям
Caме це робить заголовок SameSite, або політика CORS, а не nosniff.
чому ні (С)
Тут принцепі не про те, nosniff не має ніякого відношення до швидкості. Це про безпеку, а не про перформанс.
Чому і не (D)
А тут навпаки. nosniff підсилює політику Same-Origin. Він забороняє виконання файлів, якщо вони не мають правильний тип.
ну і правильна відповідь чому саме (B)
Друзі, дивіться яка штука.
Є той самий заголовок X-Content-Type-Options: nosniff і він звучить складно, але насправді суть проста, тобто це заборона браузеру розумничати.
Бо браузери іноді думають, що вони знають краще, ніж сервер. Ти умовно кажеш ось тобі CSS, а він каже Ммм це виглядає як JavaScript, давай я його виконаю.
І ось тут саме тоді в гру вступає nosniff, він каже не вигадуй. Виконуй лише той контент, MIME-тип якого чітко співпадає з очікуваним і все.
Це важливо для безпеки, бо інакше можна завантажити скрипт з .css розширенням, і браузер його виконає. А це вже XSS і інші пригоди.
Як я це запам’ятав та дуже просто
nosniff це як QA, який каже не треба здогадуватись, працюємо тільки по документації!
Ось така простенька, але важлива деталька, яку краще памʼятати 😉
сподіваюсь пул вийшов цікавий і комусь корисний)
Всім гарного вечора, обняв 🤗🤗🤗
2❤🔥9🔥5👍3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Друзі, всім привіт! Як ваші справи?
В Одесі сьогодні було дуже гучно, але сподіваюсь, ви всі в безпеці і цілі 💛💙
А я вже з 6 ранку, вже дві кафусі бахнув, і поліз в роботу, бо кінцівка спринта така, шо аж нікуди, питання, фікси, блокери, все й одразу 🤯
Бажаю вам продуктивного, але спокійного дня. Не забувайте відпочивати)
А відео для підняття настрою
Ну цеж прямо класика коли до тебе такі приходять
Все, релізнемось сьогодні, поїхали!
А ти, Який реліз? Я навіть ще не дивився, шо там!
Всіх обняв 🤗🤗🤗
В Одесі сьогодні було дуже гучно, але сподіваюсь, ви всі в безпеці і цілі 💛💙
А я вже з 6 ранку, вже дві кафусі бахнув, і поліз в роботу, бо кінцівка спринта така, шо аж нікуди, питання, фікси, блокери, все й одразу 🤯
Бажаю вам продуктивного, але спокійного дня. Не забувайте відпочивати)
А відео для підняття настрою
Ну цеж прямо класика коли до тебе такі приходять
Все, релізнемось сьогодні, поїхали!
А ти, Який реліз? Я навіть ще не дивився, шо там!
Всіх обняв 🤗🤗🤗
2❤12🤣8🥴1
Друзі привіт, сорі сьогодні день не як пʼятниця, завал)
Но без рубрики залишить вас не можу) Завдання дня для QA Для чого найчастіше використовують Telnet у тестуванні або налагодженні?
Но без рубрики залишить вас не можу) Завдання дня для QA Для чого найчастіше використовують Telnet у тестуванні або налагодженні?
Anonymous Quiz
10%
(A) Щоб шифрувати дані перед передачею
6%
(B) Щоб перевірити наявність XSS у фронтенді
72%
(C) Щоб перевірити, чи відкритий порт на віддаленому сервері
11%
(D) Щоб моніторити CPU-споживання сервера в реальному часі
❤3👍3
This media is not supported in your browser
VIEW IN TELEGRAM
🌞 Ранковий QA-постик 🌞
Друзі всім привіт, як ваші справи?
Субота, вихідні, час трошки перевести подих, ну, це якщо ти не я, бо сьогодні ще 3 уроки з учнями, але я радий, це для мене в кайф
На відео це буквально я вчора, один фікс, і за ним 1005000000 регресій, які ми ще будемо розгрібати понеділок-п’ятниця 😅
А ще, помітив от яку штуку. Уже не перший раз проводжу уроки по Postman, і кожен раз дивуюсь env, pre-request, post-respons і test scripts майже ніхто не юзає.
А це ж просто мастхев для нормального API тестування. Не обов’язково одразу все автоматизувати, але базовий сетап, це вже 50% профі-роботи.
Тому сьогодні ще підвечір спробую скласти пост на цю тему, з прикладами, сценаріями і поясненням, для чого вони реально потрібні.
Якщо цікаво, поставте 🔥)
Всіх обняв, гарного дня і настрою, і кава щоб була смачна.
#ранковіісторіїQA
Друзі всім привіт, як ваші справи?
Субота, вихідні, час трошки перевести подих, ну, це якщо ти не я, бо сьогодні ще 3 уроки з учнями, але я радий, це для мене в кайф
На відео це буквально я вчора, один фікс, і за ним 1005000000 регресій, які ми ще будемо розгрібати понеділок-п’ятниця 😅
А ще, помітив от яку штуку. Уже не перший раз проводжу уроки по Postman, і кожен раз дивуюсь env, pre-request, post-respons і test scripts майже ніхто не юзає.
А це ж просто мастхев для нормального API тестування. Не обов’язково одразу все автоматизувати, але базовий сетап, це вже 50% профі-роботи.
Тому сьогодні ще підвечір спробую скласти пост на цю тему, з прикладами, сценаріями і поясненням, для чого вони реально потрібні.
Якщо цікаво, поставте 🔥)
Всіх обняв, гарного дня і настрою, і кава щоб була смачна.
#ранковіісторіїQA
7🔥45❤3😁2
Завдання дня для QA:
Що з наведеного найкраще описує роль заголовка Content-Type в HTTP-запиті?
Що з наведеного найкраще описує роль заголовка Content-Type в HTTP-запиті?
Anonymous Quiz
0%
(A) Визначає розмір тіла запиту
40%
(B) Вказує, який тип контенту поверне сервер
57%
(C) Вказує, який формат даних міститься в тілі запиту
3%
(D) Визначає мову користувача для локалізації відповіді
❤10👍4😢1
Bug or Defect?
🌞 Ранковий QA-постик 🌞 Друзі всім привіт, як ваші справи? Субота, вихідні, час трошки перевести подих, ну, це якщо ти не я, бо сьогодні ще 3 уроки з учнями, але я радий, це для мене в кайф На відео це буквально я вчора, один фікс, і за ним 1005000000 регресій…
Привіт банда)
Як і обіцяв, сьогодні трошки про ту тему, яка чомусь часто пролітає мимо, скрипти в Postman Pre-request і Tests.
Але як казав один мудрий QA, якщо у тебе ріквести йдуть у флоу, не використовувати параметризацію це просто злочин. І я повністю згоден.
Я знаю, ніхто не любить скрипти в Postman'і, бо все ж працює.
Але давайте чесно, ти або тикнеш 50000000 разів руками, або один раз напишеш нормально, і потім живеш.
Так от що це таке страшне ці Pre-request + Test scripts, це прям твій внутрішній автотестер у Postman.
Вони юзаються для того, щоб передати id, token, username між запитами, згенерити унікальні значення типу емейлу, логіна, дати, одразу провалідити респонс і зберегти щось в env
ну і що головне, працювати з Postman як з легенькою автоматизацією, не тільки ручками тикати.
так ну что я написав вам стандартні і те шо юзаю за часту і показую на уроках для своїх учнів)
1. Pre-request script і готуємо дані до запиту
Унікальний логін
це щоб створити унікальний логін користувача на кожен запуск, і не ловити помилку (користувач вже існує.
Зручно при тесті реєстрації, створення акаунтів, унікальних назв.
2. Валідний email
а ценерує email, який точно буде унікальний, з міткою часу.
Корисно при реєстрації, коли система не дозволяє дублі.
3. Дата створення та завершення
це тут ставить дату зараз + через 10 днів у правильному ISO-форматі (з урахуванням таймзони).
Супер для створення сесій, подій, об’єктів з датами дії.
Це вже ми про Test Script
4. Перевірка статусу + збереження ID та токена
Перевіряємо, що об’єкт створено (201) чи можемо на любий статус код і зберігаємо id + token, щоб далі юзати їх в наступних запитах без копіпасту, тобто налаштував собі env всі данні в зміні автоматично записалися і в наступному запиті полетіли)
Це ключова зв’язка для побудови флоу із декількох запитів.
5. Валідація структури відповіді
а це щоб одразу перевірити, чи в полі name реально приходить рядок, а не null, object, або взагалі undefined.
Добре ловить непомітні проблеми типу бекенд вернув щось не те, але ти не помітив.
Мій поінт такий, якщо в тебе є більше ніж 1 запит і між ними летять якісь змінні - скрипти, твої друзі.
Це не автоматизація в класичному сенсі, але це QA-професіоналізм, якому не треба соромитись.
А хто ще не пробував, спробуйте, це реально спрощує і покращує вашу щоденну роботу.
Сподіваюсь коротко вийшло але зрозуміло
якщо вам є шо додати то пишіть які ви юзаєте скрипти і навіщо, буде цікаво не тільки мені)
Якщо пост зайшов і був корисний, ставь серденько)
Зберу фідбек і знайду час напишу для вас окремий ше пост де розповім про
setNextRequest як будувати динамічні флоу ну і pm.iterationData щоб робити data-driven тести
Гарного вам дня і вечора) 🤗🤗🤗
Як і обіцяв, сьогодні трошки про ту тему, яка чомусь часто пролітає мимо, скрипти в Postman Pre-request і Tests.
Але як казав один мудрий QA, якщо у тебе ріквести йдуть у флоу, не використовувати параметризацію це просто злочин. І я повністю згоден.
Я знаю, ніхто не любить скрипти в Postman'і, бо все ж працює.
Але давайте чесно, ти або тикнеш 50000000 разів руками, або один раз напишеш нормально, і потім живеш.
Так от що це таке страшне ці Pre-request + Test scripts, це прям твій внутрішній автотестер у Postman.
Вони юзаються для того, щоб передати id, token, username між запитами, згенерити унікальні значення типу емейлу, логіна, дати, одразу провалідити респонс і зберегти щось в env
ну і що головне, працювати з Postman як з легенькою автоматизацією, не тільки ручками тикати.
так ну что я написав вам стандартні і те шо юзаю за часту і показую на уроках для своїх учнів)
1. Pre-request script і готуємо дані до запиту
Унікальний логін
const rnd = Math.floor(Math.random() * 10000);
pm.environment.set("test_login", test_user_${rnd});
це щоб створити унікальний логін користувача на кожен запуск, і не ловити помилку (користувач вже існує.
Зручно при тесті реєстрації, створення акаунтів, унікальних назв.
2. Валідний email
const email = user_${Date.now()}@example.com;
pm.environment.set("test_email", email);а ценерує email, який точно буде унікальний, з міткою часу.
Корисно при реєстрації, коли система не дозволяє дублі.
3. Дата створення та завершення
const now = new Date();
const plus10 = new Date(now);
plus10.setDate(now.getDate() + 10);
const nowISO = new Date(now.getTime() - now.getTimezoneOffset() * 60000).toISOString();
const plus10ISO = new Date(plus10.getTime() - plus10.getTimezoneOffset() * 60000).toISOString();
pm.environment.set("created_at", nowISO);
pm.environment.set("expired_at", plus10ISO);
це тут ставить дату зараз + через 10 днів у правильному ISO-форматі (з урахуванням таймзони).
Супер для створення сесій, подій, об’єктів з датами дії.
Це вже ми про Test Script
4. Перевірка статусу + збереження ID та токена
pm.test("Status 201 — Created", function () {
pm.response.to.have.status(201);
});
const res = pm.response.json();
pm.environment.set("user_id", res.data.id);
pm.environment.set("access_token", res.data.token);Перевіряємо, що об’єкт створено (201) чи можемо на любий статус код і зберігаємо id + token, щоб далі юзати їх в наступних запитах без копіпасту, тобто налаштував собі env всі данні в зміні автоматично записалися і в наступному запиті полетіли)
Це ключова зв’язка для побудови флоу із декількох запитів.
5. Валідація структури відповіді
pm.test("Поле name — рядок", function () {
const data = pm.response.json().data;
pm.expect(data.name).to.be.a("string");
});а це щоб одразу перевірити, чи в полі name реально приходить рядок, а не null, object, або взагалі undefined.
Добре ловить непомітні проблеми типу бекенд вернув щось не те, але ти не помітив.
Мій поінт такий, якщо в тебе є більше ніж 1 запит і між ними летять якісь змінні - скрипти, твої друзі.
Це не автоматизація в класичному сенсі, але це QA-професіоналізм, якому не треба соромитись.
А хто ще не пробував, спробуйте, це реально спрощує і покращує вашу щоденну роботу.
Сподіваюсь коротко вийшло але зрозуміло
якщо вам є шо додати то пишіть які ви юзаєте скрипти і навіщо, буде цікаво не тільки мені)
Якщо пост зайшов і був корисний, ставь серденько)
Зберу фідбек і знайду час напишу для вас окремий ше пост де розповім про
setNextRequest як будувати динамічні флоу ну і pm.iterationData щоб робити data-driven тести
Гарного вам дня і вечора) 🤗🤗🤗
4❤47❤🔥5👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Всім доброго ранку і гарного старту тижня!
Понеділок день, коли кава закінчується швидше, ніж таски)
І знаєте, буває такий момент, коли щось не працює. І ти такий ходиш, думаєш:
«Ну точно хтось натупив. Хто це зробив? Хто там міг поламати?
А потім копаєш, і та-дам
це ж Ти сам і зробив ту бяку ще у п’ятницю 🫠
От на відео, прям я в такі моменти
(коли ловлю сам себе за хвіст у багрепорті)
Друзі, бажаю вам сьогодні не ловити самі себе, пити теплу каву і не забути те, що зробили в п’ятницю 😅
А якщо забули, нічого, головне чесно зізнатися самому собі й порішати!
Обняв, гарного понеділка!
#qaбудні #ранковіісторіїQA
Понеділок день, коли кава закінчується швидше, ніж таски)
І знаєте, буває такий момент, коли щось не працює. І ти такий ходиш, думаєш:
«Ну точно хтось натупив. Хто це зробив? Хто там міг поламати?
А потім копаєш, і та-дам
це ж Ти сам і зробив ту бяку ще у п’ятницю 🫠
От на відео, прям я в такі моменти
(коли ловлю сам себе за хвіст у багрепорті)
Друзі, бажаю вам сьогодні не ловити самі себе, пити теплу каву і не забути те, що зробили в п’ятницю 😅
А якщо забули, нічого, головне чесно зізнатися самому собі й порішати!
Обняв, гарного понеділка!
#qaбудні #ранковіісторіїQA
1😁16❤5👍2🔥2🥴1
Завдання дня для QA
Питання: Під час тестування API на локальному сервері ви отримали помилку ERR_CONNECTION_TIMED_OUT. Сервер працює, URL правильний. Яка з причин найбільш ймовірна?
Питання: Під час тестування API на локальному сервері ви отримали помилку ERR_CONNECTION_TIMED_OUT. Сервер працює, URL правильний. Яка з причин найбільш ймовірна?
Anonymous Quiz
7%
(A) Некоректний формат JSON у тілі запиту
18%
(B) Помилка в логіці бекенду (500 помилка)
64%
(C) Обмеження фаєрволу або мережевий доступ заблокований
11%
(D) Невірний Content-Type заголовок
🔥9👏2
Bug or Defect?
Привіт банда) Як і обіцяв, сьогодні трошки про ту тему, яка чомусь часто пролітає мимо, скрипти в Postman Pre-request і Tests. Але як казав один мудрий QA, якщо у тебе ріквести йдуть у флоу, не використовувати параметризацію це просто злочин. І я повністю…
Привіт, банда! 👋
Як і обіцяв, сьогодні розповім про ті штуки, які виглядають страшно, але на ділі, просто must have, якщо хочеш бути не просто тикальщиком у Postman, а QA з повагою до свого часу )
Ну ось коротенько вам про postman.setNextRequest() це коли треба динамічний флоу
Ідея яка, умовно ти хочеш в залежності від відповіді переходити до іншого запиту. Це як if/else в коді, тільки в Postman.
Як це працює, після поточного запиту Postman автоматично викликає вказаний. Можна реалізовувати умовну логіку, якщо токен не валідний, авторизуйся, якщо все ок, йди далі.
І так працює тільки в Runner, не в одиночному запуску, але я може шось не знаю і вже змінилось це)
pm.iterationData, це для Data-Driven тестування
Умовно у вас є колекція запитів, і треба запускати їх з різними наборами даних (логіни, email-и, конфігурації).
Робиш CSV або JSON з даними (типу users.csv)
І ось у скриптах використовуєш
І кожен запуск буде бігти з новими даними
Як їх можно комбінувати? впринцепі не дуже складно але треба зрозуміти логику
ну ось вам приклад реального флоу
Тестуємо створення акаунта, авторизацію, запит до захищеного ресурсу
ЗАпис Created User
Дали запит на логін.
запит на отримання того чи іншого профілю
Поінт який, Якщо маєш 2+ ріквести, роби з них флоу.
Якщо тестуєш багато різних даних, не копіпасти руками, а юзай pm.iterationData.
Це не full-scale автомейшн, але це вже QA, який поважає свій час
Сподіваюсь корисно) якщо так ставьте серденько, задавайте питання залюбки відповім у вільний час.
Може ще хочете продовження з більш складними прикладами (pre-request, custom utils, або інтеграція з Newman)?
Всіх Обняв, Гарного вечора вам 🤗🤗🤗
Як і обіцяв, сьогодні розповім про ті штуки, які виглядають страшно, але на ділі, просто must have, якщо хочеш бути не просто тикальщиком у Postman, а QA з повагою до свого часу )
Ну ось коротенько вам про postman.setNextRequest() це коли треба динамічний флоу
Ідея яка, умовно ти хочеш в залежності від відповіді переходити до іншого запиту. Це як if/else в коді, тільки в Postman.
if (pm.response.code === 401) {
postman.setNextRequest("Auth Request");
} else {
postman.setNextRequest("Main Flow Step 2");
}Як це працює, після поточного запиту Postman автоматично викликає вказаний. Можна реалізовувати умовну логіку, якщо токен не валідний, авторизуйся, якщо все ок, йди далі.
І так працює тільки в Runner, не в одиночному запуску, але я може шось не знаю і вже змінилось це)
pm.iterationData, це для Data-Driven тестування
Умовно у вас є колекція запитів, і треба запускати їх з різними наборами даних (логіни, email-и, конфігурації).
Робиш CSV або JSON з даними (типу users.csv)
login,email,password
qa_user1,user1@example.com,qwe123
qa_user2,user2@example.com,asd456
І ось у скриптах використовуєш
pm.iterationData.get("login")
pm.environment.set("test_login", pm.iterationData.get("login"));
pm.environment.set("test_email", pm.iterationData.get("email"));
pm.environment.set("test_password", pm.iterationData.get("password"));І кожен запуск буде бігти з новими даними
Як їх можно комбінувати? впринцепі не дуже складно але треба зрозуміти логику
ну ось вам приклад реального флоу
Тестуємо створення акаунта, авторизацію, запит до захищеного ресурсу
ЗАпис Created User
const user = {
login: pm.iterationData.get("login"),
email: pm.iterationData.get("email")
};
pm.environment.set("test_login", user.login);
pm.environment.set("test_email", user.email);Дали запит на логін.
const login = pm.environment.get("test_login");
pm.test("Логін успішний", () => {
pm.response.to.have.status(200);
const res = pm.response.json();
pm.environment.set("access_token", res.token);
});
postman.setNextRequest("Отримати Профіль");запит на отримання того чи іншого профілю
pm.test("Профіль OK", () => {
pm.response.to.have.status(200);
});Поінт який, Якщо маєш 2+ ріквести, роби з них флоу.
Якщо тестуєш багато різних даних, не копіпасти руками, а юзай pm.iterationData.
Це не full-scale автомейшн, але це вже QA, який поважає свій час
Сподіваюсь корисно) якщо так ставьте серденько, задавайте питання залюбки відповім у вільний час.
Може ще хочете продовження з більш складними прикладами (pre-request, custom utils, або інтеграція з Newman)?
Всіх Обняв, Гарного вечора вам 🤗🤗🤗
3🔥23❤🔥5👍3❤1⚡1🥴1
Всім доброго раночку, банда!
Як ваш настрій? На дворі сонечно, ну це прям кайф 💛
Вчора отримав круте питання, от просто в саме серденько.
Ігор, як ти менеджиш свій час? Ну реально, і працювати, і учні, і канал, як все встигаєш?
Та шо сказати, магії тут нема
Все, що встигається, це завдяки плануванню, дисципліні і стікерам, яких на борді вже більше ніж в Trello
Як я це роблю? Робота, це святе, в робочий час фокус тільки туди.
- Учні це вечори/вихідні, окремо забиті в календар. ну і постійний борд + reminder от чесно, якби не вони, то я б вже загубився.
Буває, з одного уроку на інший переходжу в розбіг у 1 хвилину, без напоміналки злетів би )))
І от подумалось, планування часу, це окремий скіл.
Бо як не вмієш планувати, то просто не встигаєш.
А далі або вигорання, або відчуття, що вічно щось не зробив.
Ну от як це у вас відбувається?
Як ви керуєте своїм часом?
Чим користуєтесь, Google Calendar? Notion? Todoist? Excel-файлик на робочому столі?
Може є якісь лайфхаки, без яких ви б уже поплили?
Поділіться, буде цікаво і мені, і всім хто читає
Бо як казав один мудрий QA, розгребти беклог, то одне, а от знайти на це час, зовсім інше 😄
Всім гарного, продуктивного дня і побільше сонця в душі ☀️☀️☀️
Обняв!
Як ваш настрій? На дворі сонечно, ну це прям кайф 💛
Вчора отримав круте питання, от просто в саме серденько.
Ігор, як ти менеджиш свій час? Ну реально, і працювати, і учні, і канал, як все встигаєш?
Та шо сказати, магії тут нема
Все, що встигається, це завдяки плануванню, дисципліні і стікерам, яких на борді вже більше ніж в Trello
Як я це роблю? Робота, це святе, в робочий час фокус тільки туди.
- Учні це вечори/вихідні, окремо забиті в календар. ну і постійний борд + reminder от чесно, якби не вони, то я б вже загубився.
Буває, з одного уроку на інший переходжу в розбіг у 1 хвилину, без напоміналки злетів би )))
І от подумалось, планування часу, це окремий скіл.
Бо як не вмієш планувати, то просто не встигаєш.
А далі або вигорання, або відчуття, що вічно щось не зробив.
Ну от як це у вас відбувається?
Як ви керуєте своїм часом?
Чим користуєтесь, Google Calendar? Notion? Todoist? Excel-файлик на робочому столі?
Може є якісь лайфхаки, без яких ви б уже поплили?
Поділіться, буде цікаво і мені, і всім хто читає
Бо як казав один мудрий QA, розгребти беклог, то одне, а от знайти на це час, зовсім інше 😄
Всім гарного, продуктивного дня і побільше сонця в душі ☀️☀️☀️
Обняв!
2❤14👍3👏1🥴1👨💻1
Завдання дня для QA:
Питання. Яку основну задачу виконує Fail2Ban у Linux-системах?
Питання. Яку основну задачу виконує Fail2Ban у Linux-системах?
Anonymous Quiz
5%
(A) Оптимізує використання ресурсів процесора
6%
(B) Автоматично оновлює пакети безпеки
78%
(C) Захищає систему, блокуючи підозрілі IP-адреси
11%
(D) Резервує критичні конфігураційні файли
❤7👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Друзі, доброго вечора! 🌙
Як ви там? Ви теж у вічній запарі на роботі чи вже релакс?
А то щось тихо сьогодні, активності нул, всі закопані в таски?
Ану признавайтесь, на відео себе впізнали?
Бережіть себе 💛
Як ви там? Ви теж у вічній запарі на роботі чи вже релакс?
А то щось тихо сьогодні, активності нул, всі закопані в таски?
Ану признавайтесь, на відео себе впізнали?
Бережіть себе 💛
😁11❤3🤣2