Серия учебных пособий на уровне няни «Горячее свертывание» - Учебное пособие по использованию инструмента Чарльза для захвата пакетов (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
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose