Серия учебных пособий на уровне няни «Горячее свертывание» - Учебное пособие по использованию инструмента Чарльза для захвата пакетов (13) - Как Чарльз проводит макетное тестирование и тестирование интерфейса
Серия учебных пособий на уровне няни «Горячее свертывание» - Учебное пособие по использованию инструмента Чарльза для захвата пакетов (13) - Как Чарльз проводит макетное тестирование и тестирование интерфейса

1. Введение

Самым большим преимуществом Charles является анализ перехвата пакетов, и большинство используемых нами функций также основаны на функции перехвата пакетов, но не забывайте, что Charles также может выполнять тестирование интерфейса. Что касается Mock, то он фактически был введен при изменении данных запросов и ответов. Брат Хонг здесь, чтобы кратко представить свои теоретические знания. Сегодня мы в основном представляем и делимся практическими операциями тестирования интерфейса с использованием Charles.

2. Что такое макет?

В энциклопедии Baidu говорится следующее: Макетное тестирование — это метод тестирования, в котором виртуальный объект используется для создания метода тестирования для определенных объектов, которые нелегко создать или получить в процессе тестирования.

Mock означает, что в процессе тестирования для некоторых объектов, которые сложно создать/получить, создается Mock-объект для имитации поведения объекта.

Метод Mock — распространенная технология модульного тестирования. Его основная функция — моделировать некоторые объекты, которые сложно создать или которые являются относительно сложными в приложении, тем самым изолируя тест от объектов за пределами границ теста.

3. Преимущества пробного тестирования

3.1 Команды работают параллельно

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

3.2 Разработка через тестирование TDD (Разработка через тестирование)

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

3.3 Тестовое покрытие

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

3.4 Система изоляции

Если интерфейс возвращает разные значения в разных состояниях, общий подход состоит в том, чтобы воспроизвести это состояние, а затем запросить интерфейс. Однако при использовании определенных интерфейсов может произойти сбой из-за неправильного времени или метода работы и даже загрязниться обратная связь. конечное хранилище. Например, базы данных и т. д., чтобы избежать загрязнения системной базы данных, интерфейс можно настроить в режим Mock, чтобы обеспечить чистоту базы данных.

4. Недостатки пробного тестирования

Mock — не панацея, и использование Mock сопряжено с риском. Вам нужно решить, использовать ли Mock, исходя из реальной ситуации и конкретных потребностей проекта.

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

5.Мок-клиент

Документы интерфейса подключены, но внутренний интерфейс еще не разработан. Тестировщикам необходимо заранее выполнить модульное тестирование или автоматическое тестирование интерфейса, а также использовать макетный контент, возвращаемый различными запросами.

6.Мок-сервер

Когда фронтенд-персонал выполнил задачи по разработке, но бэк-энд-персонал еще не завершил разработку и разработку интерфейса, и им необходимо совместно провести тестирование с фронтенд-персоналом, им необходимо создать Mock-сервис.

Ладно, на этом знакомство с теорией Mock. Если вам интересно, можете проверить информацию приватно. Далее давайте перейдем к сегодняшней теме: использованию Charles для тестирования интерфейса.

7.Compose

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

7.1 Способ 1

1.Откройте Чарльза,Нажмите【Tools】-->【Compose】или【Compose New...】 . Как показано ниже:

2. Заполните информацию об интерфейсе, который вы хотите протестировать. Если есть документ интерфейса, заполните его в соответствии с документом интерфейса. Если нет, просто запишите пакет и заполните его самостоятельно, как показано на следующем рисунке:

7.2 Способ 2

1. Выберите захваченную информацию запроса интерфейса.,Щелкните правой кнопкой мыши-->【Compose】,Как показано ниже:

 2. Появится информация, связанная с запросом интерфейса. Как показано ниже:

8. Анализ функций интерфейса

Опишите функции интерфейса Composer согласно отмеченным позициям на рисунке ниже.

1. Метод запроса: нажмите, чтобы выбрать протокол запроса: получение, отправку и т. д.

2.адресная строка URL: введите запрошенный URL-адрес.

3. Нажмите кнопку «Выполнить», чтобы выполнить запрос.

4. После завершения выполнения в области «История» справа будет создана запись истории.

5.http-версия: вы можете проверить http-версию.

6. Добавьте параметры запроса

9. Практика тестирования интерфейса

9.1 Практика POST API

В настоящее время сложно найти бесплатные интерфейсы. После долгих поисков я нашел один в Python. Раньше я также использовал его в Fiddler. Давайте использовать это в качестве примера.

Информация об интерфейсе:

Информация об интерфейсе

описывать

https://httpbin.org/post

адрес интерфейса

Метод запроса

HTTP POST

Параметры запроса

Параметры Формат запроса JSON

Формат параметра:

Язык кода:javascript
копировать
{
    "form": {
        "comments": "Пекин ХонгеpostТестирование интерфейса", 
        "custemail": "19182XX@qq.com", 
        "custname": "Пекин Хонге", 
        "custtel": "13045032408", 
        "delivery": "15:45"
  }
}

Итак, как использовать Charles для отладки запроса POST с данными в формате json. Конкретные шаги заключаются в следующем:

1. Запустите Charles и откройте панель «Создание». Введите URL-адрес на новой панели «Создание» (введите адрес интерфейса запроса) и выберите «Метод POST» в раскрывающемся списке. запроса,Как показано ниже:

2. После нажатия [Написать], как показано на рисунке ниже:

3. Нажмите [Текст JSON], затем введите запрошенные данные JSON и, наконец, нажмите [Выполнить], как показано на рисунке ниже:

4. Нажмите «Выполнить». Если вы видите результат в списке сеансов и возвращаете 200, это означает, что операция прошла успешно, как показано на рисунке ниже:

5. Просмотрите результат ответа на запрос в Инспекторах.,Мы заранее знаем, что интерфейс возвращает данные в формате json.,Нажмите json в части ответа, чтобы отформатировать данные.,Легко читать. Как показано ниже:

9.2GET API на практике

Информация об интерфейсе: параметризованный get Запрос, например поиск по Douban: Journey to the West, url Адрес: https://www.douban.com/search?q=Путешествие на Запад. Конкретные операции показаны на рисунке ниже:

1. Запустите Charles и откройте панель «Создание». Введите URL-адрес на панели «Композитор» и выберите GETМетод в раскрывающемся списке. запроса,Как показано ниже:

2. Введите параметры интерфейса запроса, как показано на рисунке ниже:

3. Нажмите «Выполнить». Если вы видите результат в списке сеансов и возвращаете 200, это означает, что операция прошла успешно, как показано на рисунке ниже:

10. Резюме

 Сегодня я в основном объясняю и рассказываю, как использовать Charles для проведения Тестирования. Два вида метода в интерфейсе запроса,Остальные запросы аналогичны! ! ! хорошо,Сегодня еще не рано,Брат Хун объяснит и поделится здесь.,Спасибо за ваше терпение при чтении! ! !

я участвуюНа третьем этапе специального тренировочного лагеря Tencent Technology Creation 2023 года будет проводиться конкурс сочинений. Соберите команду, чтобы выиграть приз!

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода