Я до сих пор помню тот день, как будто это было вчера. Это был мой первый месяц работы в сфере автоматизации тестирования, и я уже подумывал уйти. Я сидел за своим столом, мое сердце колотилось, когда я смотрел на экран своего компьютера, смесь паники и отчаяния захлестывала меня. Я только что вошел в мир тестирования API, область, сильно отличающуюся от моей комфортной зоны веб-автоматизации с использованием Java. Моя новая команда была полностью посвящена JavaScript и API, и я был единственным QA в команде, которому доверили сложную задачу по подготовке среды автоматизации для тестирования API. Это казалось огромной задачей, и я не был уверен, готов ли я к ней.

В этом сообщении блога я расскажу вам о своем путешествии от ощущения перегруженности и неподготовленности API к освоению автоматизации тестирования API. Я поделюсь с проблемами, с которыми я столкнулся, уроками, которые я извлек, и как я изменил свою карьеру. Независимо от того, являетесь ли вы новичком в этой области или опытным профессионалом, ищущим идеи, этот пост предоставит ценные уроки и, возможно, немного вдохновения. Итак, давайте погрузимся!

Откройте для себя силу тестирования API 🤔

По мере того, как я углублялся в свою новую роль, я задавался вопросом о необходимости тестирования API. В первую очередь я был знаком с веб-тестированием и раньше не работал с API. Я помню, как подумал: «Зачем возиться с тестированием API? Разве веб-тестирование не распространяется на сквозное тестирование?»

Однако по мере того, как я все больше погружался в мир API, я начал осознавать огромную ценность тестирования API. В отличие от веб-тестирования, которое может занимать много времени и не позволяет определить точное местонахождение проблемы, тестирование API обеспечивает мгновенную обратную связь. Это позволяет выявлять и устранять проблемы в их источнике, что приводит к более эффективному устранению неполадок и сокращению времени, затрачиваемого на догадки.

Кроме того, тестирование API гарантирует, что ваши API — важные каналы связи между различными программными системами — безопасны, надежны и быстры. Это очень важно, потому что, если ваши API работают неправильно, это может нарушить работу всей системы, частью которой они являются.

Как инженер по качеству, вы можете немедленно повысить ценность своей команды с помощью тестирования API. Это помогает обеспечить бесперебойную работу ваших программных систем, предоставляя быструю обратную связь и выявляя проблемы в их источнике. Но помимо этого, освоение тестирования API также может расширить ваш набор навыков. Это шаг к тому, чтобы стать полноценным инженером по качеству, способным понимать и тестировать систему от начала до конца, от пользовательского интерфейса до API и баз данных. Это осознание стало для меня переломным моментом. Это изменило мою точку зрения, заставив меня оценить важность тестирования API в совершенно новом свете.

Однако ручное тестирование этих API может оказаться непростой задачей. Из-за постоянных изменений и обновлений в API их ручная проверка может занять много времени и привести к ошибкам. Признание важности тестирования API было первым шагом, но настоящей проблемой было выяснить, как автоматизировать процесс, чтобы сэкономить время и обеспечить точность. Здесь действительно начался мой путь.

Поворотный момент💪

Возвращаясь к моей истории, у меня не было опыта тестирования API, и идея его автоматизации казалась далекой мечтой. Я был в недоумении, с чего начать. Чувство перегруженности было преуменьшением. Я прошерстил Интернет в поисках ресурсов, но не нашел ничего конкретного о стеке технологий, который мы использовали, что еще больше подорвало мою уверенность.

На грани того, чтобы сдаться, я помню, как в то время поделился своими страхами со своей девушкой, сказав: «Это невозможно. Я не могу сделать это. Я увольняюсь с этой работы».

Она посмотрела на меня, ее глаза наполнились пониманием, и сказала: «Держи это один день за раз. Разбейте его на более мелкие задачи. Учитесь понемногу каждый день. Вы можете сделать это." Несмотря на то, что это был совет, который я уже слышал раньше, услышав его в тот момент, я по-новому взглянул на него и укрепил свою решимость. С этой новообретенной решимостью я решил сделать первые шаги в своем путешествии.

Отправляемся в путешествие: первые шаги 🚶‍♂️

Перед сложной задачей я знал, что мне нужен план. Я решил откровенно поговорить со своим менеджером о своих опасениях и обратиться к нему за советом. Он предложил мне начать с понимания требований приложения и определения того, что нам нужно для реализации фреймворка.

Я обратился к своей команде, засыпая их вопросами, втайне надеясь, что они не станут сомневаться в моей компетентности. К моему облегчению, они поддержали меня и рассказали мне о требованиях. Они помогли мне понять, с какими API мы имеем дело, как они используются и есть ли какие-либо внешние факторы, такие как сторонние сервисы, которые могут повлиять на мое тестирование. Вооружившись их руководством и более четким пониманием поставленной задачи, я был готов взяться за следующую большую задачу — выбрать правильный стек технологий.

Выбор правильного стека технологий 🛠️

Следующим препятствием был выбор стека технологий для автоматизации API. Должен ли я придерживаться Java, единственного языка, с которым я был знаком? Я хотел наставника или гида, который помог бы мне сориентироваться в этих решениях. К сожалению, не было ни одного, но вам не нужно проходить через те же трудности, что и мне. Подробнее об этом позже в блоге.

Я спросил свою команду об использовании Java, но все они использовали экосистему JavaScript, в частности Node & ExpressJS и Mocha в качестве среды тестирования. Ни у кого из них не было опыта работы с Java. Я понял, что если выберу Java, то буду сам по себе. Итак, объединившись со своей командой, я выбрал экосистему JavaScript для своей среды тестирования. Это решение не только обеспечило поддержку команды во время блокпостов, но и положило начало крутой кривой обучения.

Навигация по кривой обучения 📚

Я обратился к Google, YouTube и множеству других сайтов в надежде найти полезные ресурсы. Я изо всех сил пытался найти что-нибудь, что я мог бы непосредственно применить, или, возможно, я даже не знал, что искать в то время. Иногда ответ находится прямо перед вами, но если вы его не узнаете, вы можете его не заметить.

Вскоре я понял, что не полностью понимаю стек технологий, который использовала моя команда. Как работает ExpressJS? Что такое Мокко? Меня переполняли фундаментальные вопросы. Я решил узнать об этих технологиях, чтобы понять, как работает приложение.

Я купил курсы Backend Development на Udemy, надеясь, что они помогут мне с автоматизацией API. Каждый день после работы я часами смотрел уроки, пытаясь понять бэкэнд-разработку, чтобы я мог проводить бэкэнд-тестирование. Несмотря на то, что курсы не помогли мне напрямую с автоматизацией API, они обогатили мое понимание нашего серверного приложения и экосистемы JavaScript, дав мне возможность справиться с предстоящими проблемами и добиться прогресса.

Столкновение с трудностями и достижение прогресса 💡

Несмотря на все знания, я все еще не был близок к созданию фреймворка автоматизации API. Моя команда начала спрашивать, когда они смогут увидеть некоторые тесты для API. Я потратил бесчисленное количество часов на обучение, но так и не смог написать ни одного теста. Я снова начал сомневаться в себе, думая, что у меня все в порядке.

Однако теперь я знал, что искать, и лучше понимал библиотеки и фреймворки, которые могут подойти для нашего приложения. Используя более сфокусированный и структурированный подход, я углубился в свои исследования. Медленно, но верно все начало становиться на свои места, что привело меня к следующему важному шагу — доработке стека технологий и написанию тестов.

Доработка стека технологий и написание тестов ✍️

Я нашел несколько библиотек и фреймворков, подходящих для автоматизации API, и представил свои выводы команде. Они предложили провести проверку концепции (POC) с каждым, чтобы определить наилучшее соответствие.

Проведя пару POC с разными библиотеками и продемонстрировав их моей команде, мы решили использовать следующий набор технологий:
Язык: JavaScript,
HTTP-библиотека. : SuperTest,
Среда тестирования: Mocha,
Библиотека утверждений: Chai.

Все они были довольно популярны и имели хорошую поддержку сообщества в то время. Когда технологический стек был завершен, пришло время написать тесты для нашего приложения. Я решил начать с самых простых возможных тестов — вызовов GET без аутентификации. Я нервничал, но знал, что должен с чего-то начать. После дня борьбы я, наконец, увидел, как прошел мой первый тест! Это была маленькая победа, но она казалась гигантским скачком вперед.

Оттуда это превратилось в процесс построения одного теста на другом. Были многочисленные неудачи, но благодаря поддержке моей команды, которая стала возможной благодаря нашему общему стеку технологий, я смог извлечь уроки из этих неудач и продолжить расти.

Обучение и развитие🌱

Самое главное, я всегда следил за тем, чтобы мои тесты были частью процесса проверки кода, а разработчики проверяли мой код. Это был решающий шаг в моем пути обучения. Именно благодаря этому процессу я смог улучшить свои навыки кодирования, поскольку они продолжали указывать на то, что я делал неправильно.

Получение конструктивной критики стало для меня одним из больших поворотных моментов. Сначала было немного трудно глотать, но вскоре я понял, что делать ошибки и учиться на них — это нормально. Все это было частью процесса роста. С годами я смирился с тем, что быть наименее осведомленным человеком в комнате – это нормально. Это означает, что вы находитесь в комнате, полной людей, у которых вы можете учиться, и нет лучшего места, чем это.

К моему удивлению, то, что я поначалу считал пустой тратой времени, все усилия, затраченные ранее на изучение основ бэкенда, оказались значительным преимуществом, когда дело дошло до написания тестов API. Понимание того, как работает приложение изнутри, дало мне лучшее представление о том, что тестировать и как это тестировать. Это позволило мне создавать более содержательные и эффективные тесты.

По мере того, как я продолжал это путешествие, начали проявляться плоды моего труда. Мои тесты стали более надежными, мой код стал чище, а моя уверенность возросла. Я превратился из ошеломленного новичка в опытного инженера по автоматизации тестирования, способного создавать эффективные тесты и вносить значительный вклад в качество нашего программного обеспечения. Эта трансформация стала важной вехой в моей карьере.

Результат: от новичка до профессионала 🌟

К концу проекта я не только создал масштабируемую среду автоматизации тестирования, но и получил повышение в своей компании. Это было непростое путешествие, но оно того стоило. Я превратился из новичка в профессионала, и все благодаря тому, что брался за дело день за днем ​​и никогда не сдавался. Ощущение, что мои тесты успешно выполняются, выявляются ошибки и вносят свой вклад в общее качество нашего программного обеспечения, было очень приятным. Это было свидетельством тяжелой работы, настойчивости и непрерывного обучения, которое я вложил.

Размышляя о своем путешествии, я не могу не желать более гладкого пути, пути с меньшим количеством проб и ошибок. Возможно, наставник или руководство для оказания пошаговой помощи. Разве это не облегчило бы путь к освоению автоматизации тестирования API? С этой мыслью я решил создать решение.

Представляем ваше руководство: основной курс по автоматизации тестирования API 🧑🏻‍💻

Чтобы избавить вас от трудностей, с которыми я столкнулся, и упростить вам автоматизацию тестирования API, я создал новый курс в рамках моей Академии SDET Unicorns — Мастерство автоматизации тестирования API с помощью TypeScript. ” Этот курс предназначен для того, чтобы вы могли написать свой первый тест API всего за 10 минут. Это всеобъемлющее руководство, в котором собраны все знания и опыт, которые я приобрел за эти годы, представленные в ясной и понятной форме.

В этом курсе мы пройдем:

  • Основы API и тестирование API
  • Обзор проекта и знакомство с техническим стеком
  • Настройка инструмента и фреймворка
  • Создание доказательства концепции с помощью различных методов HTTP
  • Создание и доработка тестов API на реальном проекте
  • Масштабирование тестов с помощью среды тестирования
  • Добавление аутентификации в тестовую среду
  • Погружение в дополнительные темы: загрузка файлов, служебные файлы, отчеты и CI с Jenkins.
  • Лучшие практики и советы по успешной автоматизации тестирования API

Измените свою карьеру🌠

Этот курс — не просто учебник по автоматизации тестирования API. Это инструмент трансформации карьеры. Речь идет о том, чтобы вооружить вас навыками и знаниями, необходимыми для того, чтобы преуспеть в своей работе и оказать реальное влияние на вашу команду. Речь идет о том, чтобы вселить в вас уверенность, чтобы противостоять вызовам и выйти из них победителем. И вот вам пора отправиться в это путешествие.

Ваше путешествие начинается сейчас🎉

Мой путь к освоению автоматизации тестирования API был полон проблем, но это также был путь обучения и роста. А теперь я рад помочь вам в вашем путешествии.

Вам не нужно проходить через те же трудности и трудности, что и я. Зарегистрируйтесь сейчас, чтобы сделать ваше путешествие более комфортным — https://bit.ly/3rfCXaB

Посмотрите вступительное видео, чтобы узнать больше о курсе —

Помните, иногда чувствовать себя подавленным — это нормально. Нормально чувствовать, что ты недостаточно хорош. Но не позволяйте этим чувствам мешать вам учиться и расти. Делайте это шаг за шагом, просите о помощи, когда она вам нужна, и продолжайте двигаться вперед. Вы способны на большее, чем вы думаете.

Итак, вы готовы изменить свою карьеру и стать мастером автоматизации тестирования API? Я здесь, чтобы направлять вас на каждом этапе пути. Давайте начнем! 🚀

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .