Функциональное тестирование и тестирование производительности с использованием Jmeter
Функциональное тестирование и тестирование производительности с использованием Jmeter
статья Оглавление

Начало работы с JMeter

Jmeter это продукт, основанный на Java Разработано программное обеспечение для функционального тестирования и тестирования производительности. 🎁 Последняя версия на момент редактирования этой статьи: 5.1.1.

Введение

Jmeter это использование Java Разработано программное обеспечение для функционального тестирования и тестирования производительности.

характеристика

Jmeter способен загружать и тестировать производительность множества различных типов приложений/серверов/протоколов:

  • Сеть — HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET и т. д.)
  • Веб-сервисы SOAP/REST
  • FTP-файлы
  • База данных через JDBC
  • LDAP
  • Промежуточное программное обеспечение, ориентированное на сообщения (MOM) через JMS
  • Почта — SMTP(S), POP3(S) и IMAP(S)
  • Собственная команда или сценарий оболочки
  • TCP-протокол
  • Java-объект

Рабочий процесс

Принцип работы Jmeter заключается в имитации отправки пользователями запросов на сервер, сборе информации об ответах сервера и вычислении статистической информации.

Рабочий процесс Jmeter показан ниже:

основные элементы

Jmeter изосновные элементыследующее:

  • План испытаний - План тестирования можно рассматривать как JMeter Скрипт-тест . План тестирования состоит из элементов тестирования, таких как группа нить, логическая контроллер,Контроллер генерации выборки,слушатель,таймер,Утвердить элемент конфигурации.
  • Группа тем - Цель группы нить — смоделировать сценарий работы большого количества пользовательских нагрузок.
    • Установить номер
    • Установить период ускорения
    • Установите количество раз для выполнения теста
  • Контроллеры - Можно разделить на две основные категории:
    • Сэмплер - Роль сэмплера состоит в том, чтобы имитировать отправку пользователем просить на целевое устройство Служить. Сэмплер является обязательным компонентом. в плане тестирования, потому что это может сделать только JMeter Узнайте, какой тип просить вам нужно отправить на генератор Служить. просить можно HTTP,HTTP(s),FTP,TCP,SMTP,SOAP ждать.
    • логический контроллер - логический Функция контроллера заключается в контроле количества и порядка циклов, отправляемых при многократном просить.
  • Слушатели - слушательиз Функция:собиратьтест Информация о результате。Например, просмотрите дерево результатов、Сводный отчет ждать.
  • Таймеры - Функция таймера заключается в контроле частоты отправки нескольких сообщений.
  • Элементы конфигурации - Работа элемента Конфигурация аналогична работе семплера. Однако он не просит, а предоставляет подготовленные данные и т.п., типа CSV, помощник функции.
  • Элементы препроцессора - Элементы препроцессора, излучаемые сэмплеромпроситьказнен раньше,Если препроцессор прикреплен к элементу сэмплера,Тогда он будет выполнен до запуска этого элемента сэмплера. Элемент препроцессора используется для подготовки среды и параметров перед запуском.
  • Элементы постпроцессора - Элемент постпроцессора — это элемент, который выполняется после отправки семплера просить и часто используется для обработки данных ответа.

📌Советы: Соотношение между количеством элементов Jmeter примерно следующее:

  1. В Скрипте может быть не более одного тестового плана.
  2. В плане тестирования должна быть хотя бы одна группа нить.
  3. В группе нить должен быть хотя бы один сэмплер.
  4. нить В группе должен быть хотя бы одинслушатель。

Установить

Экологические требования

  • Необходимый. Джметр на основе JDK8 разработки, поэтому его необходимо запустить на JDK8 среда.
    • JDK8
  • Необязательный. некоторый jar Сумка не Jmeter При условии, что если вам нужны соответствующие функции, вам нужно скачать их самостоятельно и разместить. lib Оглавление。

скачать

Входить Официальный сайт Jmeterскачать Адрес Выберите нужную версию для скачивания.

запускать

Разархивировать Jmeter Сжатый пакет,Входить bin Оглавление

Unix Работа системы классов jmeter ;Windows Система работает jmeter.bat

использовать

Создать план тестирования

🔔 Примечание:

  • Перед запуском всей тестовой программы необходимо сохранить план тестирования。
  • JMeter План тестирования начинается с .jmx Сохранить как файл расширения.
Создать группу потоков
  • Щелкните правой кнопкой мыши «План тестирования». 【добавить в】=>【нить(пользователь)】=>【нить Группа】。
  • Установите количество циклов и количество циклов
настроить исходный
  • Щелкните правой кнопкой мыши только что созданную группу. 【добавить в】=>【Конфигурацияэлемент】=>【HTTP просить значение по умолчанию].
  • Введите протокол, имя или IP-адрес сервера и номер порта.
Создать HTTP-запрос
  • Щелкните правой кнопкой мыши на «нитGroup». 【добавить в-】=>【пробоотборник】=>【HTTP просить】。
  • Введите протокол, имя сервера или IP, номер порта(если Конфигурация Понятно HTTP значение проситьпо умолчанию можно игнорировать)
  • Заполните метод и путь
  • Заполните параметры, данные тела сообщения и загрузите файл.
Добавить заголовки HTTP-запроса
  • Щелкните правой кнопкой мыши на «нитGroup». 【добавить в】=>【Конфигурацияэлемент】=>【HTTP Менеджер информационных заголовков]
  • Поскольку данные, передаваемые в моем тестовом примере, json форму, поэтому установите пары ключ-значение Content-Typeapplication/json
Добавить утверждение
  • Щелкните правой кнопкой мыши на «нитGroup». 【добавить в】=>【утверждение】=>【 утверждение ответа 】
  • В моем случае с HTTP Код статуса ответа: 200 Судить, успешен ли просить
Добавить дерево результатов просмотра
  • Щелкните правой кнопкой мыши на «нитGroup». 【добавить в】=>【слушатель】=>【Посмотреть дерево результатов】
  • Просто нажмите, чтобы запустить,Вы можете просмотреть результаты теста
Добавить сводный отчет
  • Щелкните правой кнопкой мыши на «нитGroup». 【добавить в】=>【слушатель】=>【сводный отчет】
  • Просто нажмите, чтобы запустить,Вы можете просмотреть результаты теста
Сохранить план тестирования

Выполнить план тестированиявперед,GUI Сначала вам будет предложено сохранить конфигурацию как jmx документ.

Выполнить план тестирования

Официальный совет – не использовать напрямую GUI Приходить Выполнить план тестирование, этот режим относится к Создать план тестированияи debug。

Выполнение плана тестирования должно осуществляться в режиме командной строки, синтаксис следующий:

Язык кода:javascript
копировать
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

Выполнить план тестированияназад,существовать -e -o Указывается после параметра web Содержание отчета об испытаниях можно найти в разделе «Отчеты Оглавление». Открыть в браузере index.html файл, вы можете увидеть следующий отчет:

вопрос

Как прочитать локальный файл txt/csv в качестве параметра запроса

ссылка:Jmeter Читать местное txt/csv Файл как параметр запроса для реализации автоматизации интерфейса.

(1) Нажмите【добавить в】=>【Конфигурацияэлемент】=>【CSV Настройки файла данных]

Конфигурация следующая:

Важные инструкции по настройке (заполните другие конфигурации в зависимости от реальных условий):

  • Имя файла: введите местоположение файла данных, который необходимо импортировать.
  • Кодировка файла: установите UTF-8, чтобы избежать искажения символов.
  • имя переменной:использовать, Ограниченный список входных переменных. Как показано на скриншоте, установлены две переменные. a и b

(2) Настройте параметры в данных тела сообщения HTTP-запроса.

Язык кода:javascript
копировать
[{"a":"${a}","b":"${b}"}]

Как отправить данные по порядку

Нажмите 【добавить в】=>【логический контроллер】=>【контроллер транзакций】

Сопутствующая информация

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