Изучите тестирование интерфейсов: SOAP, правила RestFul, JMeter и инструменты тестирования интерфейсов, представленные на рынке.
Изучите тестирование интерфейсов: SOAP, правила RestFul, JMeter и инструменты тестирования интерфейсов, представленные на рынке.

введение

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

 Этот блог даст вам глубокое понимание классификации тестирования интерфейсов, проектирования различных архитектур, ключевых направлений тестирования и наиболее часто используемых инструментов тестирования интерфейсов, представленных в настоящее время на рынке. Мы обсудим эволюцию архитектуры от протоколов SOAP, RPC, RestFul к протоколам HTTP и сосредоточимся на JMeter, мощном инструменте тестирования интерфейса, подробно описав его введение, установку, общие компоненты и шаги для выполнения тестирования интерфейса.


1. Классификация тестов интерфейса

Внутренний интерфейс:

Проверьте интерфейсы между различными подмодулями тестируемой системы или интерфейсы, предоставляемые тестируемой системой для внутреннего использования.

Внешний интерфейс:

  1. Тестируемая система вызывает внешние интерфейсы
  2. Интерфейс, предоставляемый системой внешнему миру

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

2. Текущий проект архитектуры интерфейса.

  1. На основе архитектуры SOAP и спецификаций XML. На основе протокола WebService. Особенности: Адрес интерфейса заканчивается на wsdl.
  2. Ожидается, что архитектура RPC будет основана на протоколе даббо и протоколе экономии. Микросервисы SpringCloud.
  3. На основе архитектуры RestFul, спецификации json и ожидаемого протокола http.

Правила RestFul:

Адрес интерфейса: http://127.0.0.1/user, get (запрос пользователя) post (добавить пользователя) put (изменить пользователя) delete (удалить пользователя)

  • Формат данных Json: существует только два типа данных:
  • Пара ключ-значение: {ключ: значение}
  • Массив: массив1, массив2

Подробное объяснение протокола http:

Запрос: строка запроса, заголовок запроса, тело запроса.
  1. Строка запроса: POST http://47.107.116.139/phpwind/index.php?m=u&c=login&a=dorun HTTP/1.1
  2. Заголовок запроса:
  3. ХОСТ 47.107.116.139 (запрашивающий хост)
  4. Соединение: поддержание активности (сохранение активно)
  5. Content-Length: 112 (длина контента)
  6. Принимаем: application/json, text/javascript, */8, q=0.01 (формат данных)
  7. X-Request-With: XMLHttpRequest (асинхронный запрос)
  8. Пользовательский агент: Mozilla/5.0 (Windows NT) (тип клиента)
  9. Тип контента: (Тип контента)
  10. ......
  11. Файл cookie: csrf_token=xxxxxx (информация о файлах cookie, файл cookie, отправленный клиентом на сервер)
  12. тело запроса

username=msxy%password=msxy\&backurl=httpxxxxx

Ответ: строка ответа, заголовки ответа, тело ответа.
  1. Строка ответа:

HTTP/1.1 200 OK

  1. заголовок ответа
  2. Server: nginx
  3. Data: Tue, 24 Aug 2021 12:23:12 GMT
  4. Conten-Type: text/html; charset=UTF-8
  5. Transfer-Encoding: chunked
  6. X-Powered-By: PHP/5.6.36
  7. Set-Cookie: (информация о файлах cookie, отправляемая сервером клиенту)
  8. Тело ответа
  9. xxx

3. Инструменты тестирования интерфейсов на рынке

Jmeter+Ant+Git+Jenkins

Postman+Newman+Git+Jenkins

soapui, apipost, fildder, charles

4. Знакомство с Jmeter, установка и настройка при изменении среды.

Основанный на инструменте стресс-тестирования языка Java, он может выполнять тестирование интерфейса и производительности.

Установка: JDK1.8 или выше, настройте переменные среды.

5. Знакомство с каталогом Jmeter

каталог jmeter
каталог jmeter

резервные копии: каталог резервных копий сценариев, формат JML

bin: хранит сценарии запуска Jmeter, файлы конфигурации и файлы модулей.

Jmeter.bat запускает Jmeter

jmeter.prperites основной файл конфигурации.

docs: автономная справочная документация.

дополнительно: интегрированные файлы сборки, хранящиеся у третьих лиц, унаследованные от Ant и Jenkins.

Каталог lib: хранит пакеты jar

лицензия: файл лицензии

6. Общие компоненты Jmeter

1. План испытаний: отправная точка, контейнер для всех компонентов.

2. Группа тем: представляет определенное количество пользователей.

3. Сэмплер: наименьшее устройство, отправляющее запрос на сервер.

4. Логический контроллер: в сочетании с сэмплером для реализации сложной логики.

5. Препроцессор: работа до запроса

6. Постпроцессор: работа после запроса

7. Утверждение: используется для определения того, успешно ли выпущен запрос.

8. Таймер: отвечает за интервал задержки между запросами, фиксированный, по Гауссу, случайный.

9. Компоненты конфигурации: информация о конфигурации

10. Слушатель: отвечает за сбор результатов.

Порядок: очень важно

План тестирования>>Группа потоков>>Компонент конфигурации>>Препроцессор>>Таймер>>Сэмплер (запрос)>>Постпроцессор>>Утверждение>>Прослушиватель.

Область применения: очень важно

Обязательные компоненты: план тестирования, группа потоков, сэмплер.

Вспомогательные компоненты: помимо необходимых компонентов

Вспомогательные компоненты действуют на родительские компоненты, родственные компоненты и все дочерние компоненты в родственных компонентах.

7. Jmeter выполняет тестирование интерфейса.

  1. Получите документацию по API (если это не работает, используйте Fiddler для захвата пакетов) и ознакомьтесь с работой интерфейса, адресом интерфейса, методом аутентификации, входными параметрами, выходными параметрами и кодами ошибок.
  2. Напишите тест-кейсы интерфейса.

Идеи тестов:

Положительный пример:

Введите обычные параметры и убедитесь, что интерфейс возвращается нормально.

Контрпример:

Аутентификация: пусто, ошибка, срок аутентификации истек, ограничение времени аутентификации...

Параметры: пусто, ошибка типа, ошибка длины, переопределение кода ошибки.

Другие, черный список, пейджинг

  1. Выполнено с использованием инструментов тестирования интерфейса.
  2. Jmeter+Ant+Git+Jemkins реализует непрерывную интеграцию для вывода отчетов о тестировании интерфейса и отправки их по электронной почте.

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

я участвуюНа третьем этапе специального тренировочного лагеря 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