【Тестирование программного обеспечения】Тестирование производительности
【Тестирование программного обеспечения】Тестирование производительности

1. Что такое тестирование производительности?

1. Концепция тестирования производительности

Тестирование производительность – помощь тестировщика при Тестировании производительностиинструмент,Имитировать систему в различных сценариях,СоответствующийПоказатели эффективностиСоответствует ли он ожиданиям.

2. В чем разница между тестированием производительности и функциональным тестированием?

Тестирование производительности и функциональное тестирование — это два разных типа тестирования программного обеспечения.

Функциональное тестирование: Основное внимание функциональному тестированию насистема Нормально ли она работает в соответствии с функциями, определенными в техническом задании,и соответствовать ожиданиям пользователей。Его цельПроверьте достоверность или правильность программного обеспечения.,Подтверждатьпрограммное обеспечение Способность правильно обрабатывать данные в соответствии с бизнес-логикой в ​​различных входных ситуациях и давать ожидаемые выходные результаты. Функциональное тестирование обычно использует метод тестирования черного ящика,Это толькососредоточиться напрограммное Для обеспечения внешнего поведения тестировщикам не нужно знать детали внутренней реализации.

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

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

3. Какая производительность программного обеспечения является хорошей?

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

В это время производительность программного обеспечения 1 лучше.

4. Какие факторы влияют на производительность программного обеспечения?

отуровень программного обеспеченияПриходите и посмотрите:

  1. Алгоритмы и структуры данных. Выбор правильных алгоритмов и оптимизация структур данных могут улучшить программное обеспечение. обеспечение эффективности исполнения.
  2. Качество кода и оптимизация: оптимизация реализации кода,Сокращение избыточных и неэффективных операций,Улучшить сложность алгоритма,Повысьте эффективность выполнения кода.
  3. Параллельная обработка и управление потоками. Разумно используйте механизмы многопоточности или параллельной обработки, а также в полной мере используйте многоядерные процессоры для улучшения параллелизма.
  4. Кэширование и доступ к данным. Используйте соответствующие стратегии кэширования, предварительную выборку данных и другие технологии, чтобы уменьшить количество обращений к диску или сети и ускорить доступ к данным.
  5. база данныхоптимизация:Разумный дизайнбаза данныхструктура、Индекс и операторы запроса,оптимизация конфигурации базы данных и настройки параметров,улучшатьбаза данных Читай и пишипроизводительность。
  6. Обработка исключений и ошибок. Эффективные механизмы обработки исключений и стратегии обработки ошибок могут повысить стабильность программного обеспечения и производительность.

отаппаратный уровеньПриходите и посмотрите:

  1. Производительность процессора: модель процессора, количество ядер, частота и другие характеристики напрямую влияют на программное обеспечение. обеспечение вычислительной мощности и скорости работы.
  2. Емкость и пропускная способность памяти. Достаточный объем памяти и высокая пропускная способность могут обеспечить лучшую обработку данных и возможности доступа.
  3. Производительность диска. Скорость, емкость, а также производительность чтения и записи диска имеют решающее значение для доступа к данным и производительности хранилища.
  4. Пропускная способность сети и задержка: если программное обеспечение Программное обеспечение зависит от сетевой связи, а пропускная способность и задержка сети влияют на программное обеспечение. обеспечение времени отклика и возможностей одновременной обработки.

отуровень пользователяПриходите и посмотрите:

  1. Количество одновременных пользователей: количество одновременных посещений программного обеспечения «Количество пользователей». Одновременный доступ нескольких пользователей может привести к снижению производительности.
  2. Тип и частота пользовательских запросов. Различные типы и частота пользовательских запросов имеют разную степень влияния на загрузку программного обеспечения.
  3. Производительность пользовательского устройства: производительность устройства, используемая пользователем (например, процессор、Памятьждать)может повлиятьпрограммное обеспечениеизпроизводительностьи скорость реакции。
  4. Модель поведения пользователя: рабочие привычки пользователя、На производительность программного обеспечения влияют как модели использования, так и стили взаимодействия.

2. Зачем проводить тестирование производительности?

Тестирование производительности может помочь нам:

  • Получите показатели системыпроизводительности как Показатели эффективностиизэталон
  • проверятьсистемаиз Показатели Соответствует ли эффективность требованиям (требованиям производительности). нравиться: Способно ли приложение удовлетворить различные требования системы Показатели? эффективности Может ли приложение справиться с ожидаемой пользовательской нагрузкой и иметь ли избыточную емкость. Может ли приложение обрабатывать количество транзакций, необходимое для бизнеса. Устойчиво ли приложение при ожидаемых и неожиданных нагрузках пользователей? Можно ли убедиться, что пользователи действительно используют программное обеспечение? Получите комфорт при использовании программного обеспечения
  • Откройте для себя Узкое по системе место в производительности,Памятьутечкаждатьвопрос
  • система Максимальная производительность при нормальных условиях работы
  • Помогите отделу эксплуатации и технического обслуживания лучше спланировать конфигурацию оборудования.

3. Общие термины, используемые при тестировании производительности, и показатели измерения тестирования производительности.

  1. Параллелизм. Параллелизм означает, что большое количество пользователей одновременно получают доступ к одному и тому же сайту. Количество одновременных пользователей на бизнес-уровне: относится к количеству пользователей, которые одновременно отправляют запросы на сервер. Количество одновременных пользователей на уровне внутреннего сервера: относится к количеству запросов, отправленных на сервер одновременно.
  2. количество пользователей системаколичество пользователи: зарегистрированный пользователь системы онлайнколичество пользователей:Успешно авторизовансистемаколичество пользователей одновременноколичество пользователей:Используйте одновременносистемаизколичество пользователейколичество。 Уведомление:системаколичество пользователей > онлайнколичество пользователей > одновременноколичество пользователей
  3. Время ответа: время, прошедшее с момента отправки запроса до получения ответа.

Если взять приведенный выше рисунок в качестве примера, время отклика делится на: (1) Время ответа пользователя составляет: N1+A1+N2+A2+N3+A3+N4 (2) Время ответа запроса Время между получением сервером запроса и выдачей ответа является временем ответа на запрос. A1+N2+A2+N3+A3

Какие факторы влияют на время отклика программного обеспечения? Производительность базы данных. Пропускная способность сети. Алгоритмы обработки сервера. Логическое пользовательское оборудование и т. д.

  1. время ответа на транзакцию Время ответа транзакции относится к времени, необходимому для полной бизнес-операции (транзакции) от начала до конца.
  2. Количество транзакций в секунду Количество обработанных транзакций/время, потраченное на транзакции Чем выше количество транзакций в секунду, тем естественнее это означает наличие программного обеспечения. обеспечениеизпроизводительностьтем лучше
  3. Объем кликов: количество кликов пользователей.
  4. Рейтинг кликов: количество кликов пользователя/время.
  5. Пропускная способность: объем взаимодействия данных между запросом пользователя и сервером.
  6. Пропускная способность:Пропускная способность/время.Пропускная способность Высшие средствасистемапроизводительностьтем лучше.Напротив Пропускная способность Чем он ниже, темсистемапроизводительность Чем хуже.
  7. Время размышления: Комментарии пользователей к программному обеспечению обеспечение При выполнении операций между каждой операцией существует временной интервал.
  8. Использование ресурсов: использование различных ресурсов.,Содержит процессор,Память,жесткий диск,Сеть и т. д.

Вопрос на собеседовании: На какие показатели вы обращаете внимание при тестировании производительности? Ответ: Все вышеперечисленное

4. Классификация тестов производительности

1. Определение эталонного теста производительности

Целью эталонного тестирования производительности является определение базового уровня производительности системы. Сравнительное тестирование производительности обычно проводится перед развертыванием системы, чтобы оценить производительность системы в стандартной среде и служить эталоном для последующей оптимизации и сравнения производительности. То есть: дайте системе поработать в нормальных условиях и понаблюдайте за показателями работы ПО. Сценарий применения: Программное обеспечение только что запущено, и его необходимо протестировать на производительность.

2. Тест производительности нагрузки

Оцените производительность системы в заранее заданных условиях нагрузки. Нагрузкой может быть количество пользователей, одновременные запросы или объем данных и т. д. Целью является проверка производительности системы в условиях высокой нагрузки и определение максимальной нагрузки и узких мест в производительности, с которыми может справиться система. То есть: убедиться, что программное обеспечение работает в условиях определенного давления, и наблюдать, нет ли точки перегиба в показателях производительности.

3. Испытание производительности под давлением

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

4. Проверка надежности

Проверьте надежность и стабильность системы при длительной работе или высокой нагрузке. Оцените, могут ли в вашей системе возникать сбои, ошибки или утечки ресурсов, непрерывно запуская ее, увеличивая нагрузку или моделируя сбои. То есть: убедитесь, что система работает в течение непрерывного периода времени, и в течение этого периода времени наблюдайте за различными элементами системы. Например, эффективность программы — это нормально? обеспечение,Давайте продолжим работу в течение дня,Проработал неделю без проблем—>в месяц—>четверть—>один год.

Резюме: По сравнению с бутылкой минеральной воды, она выглядит так, как показано на рисунке ниже:

5. Процесс выполнения теста производительности

Просмотрите процесс функционального тестирования следующим образом: Анализ требований → план тестирования → проектирование теста → выполнение теста → оценка теста (отчет о тестировании) → онлайн. Подобно функциональному тестированию, процесс выполнения тестирования производительности: Анализ требований → План тестирования → Выберите инструмент тестирования производительности → Напишите сценарий теста производительности → Выполните сценарий теста производительности → Создайте отчет о тестировании производительности.

Тестирование производительностисередина Появился Не так, как ожидалосьизситуация называетсяУзкое место в производительности. существовать Тестирование производительностисередина,Узкое появилось место в производительности,исправление разработкиизпроцесс называетсяоптимизация. Всегда существуют узкие места в производительности, и мы можем постоянно оптимизировать и улучшать их.

Пример: На примере нашего блога процесс выполнения тестирования производительности выглядит следующим образом:

  1. анализ потребностей:Познакомьтесь с блогомсистемаиз Потребности пользователя и ожидаемая нагрузка,Уточнить цели и потребности Тестирования производительности,Например ответвремя、Пропускная способностьждатьиндекс。
  2. Определить сценарий тестирования:По данным блогасистемаизпотребности бизнеса,Разработка сценариев тестирования,Включая вход пользователя, просмотр списка блогов, публикацию блога, удаление и другие операции.,и определить при различных условиях нагрузкиизмоделированиеколичество объем пользователей и частота запросов.
  3. Создайте тестовую среду:Настройка аналогична производственной средеизтестсреда,В том числе сервер, база данных、Настройки и конфигурация таких компонентов, как кэш. Убедитесь, что тестовая среда может поддерживать ожидаемую нагрузку и объем данных.
  4. Разработайте план тестирования:Разработать подробныеизтестплан,Включить тестовые примеры、Данные испытаний и график испытаний. Уточните входные данные для каждого сценария тестирования.、Операционные шаги и ожидаемый результат.
  5. Выберите инструмент тестирования производительности:LoadRunner
  6. Написание сценария тестирования производительности
  7. Подготовьте тестовые данные:Подготовьтесь соответствующим образомизтестданные,Включая сообщения в блогах, информацию о пользователях и т. д.,для моделирования реальных сценариев использования.
  8. Выполнить сценарий теста производительности
  9. Сбор данных о производительности:собирать Тестирование Данные, генерируемые в ходе производительности, включая логи, Показатели записи эффективности и т. д. для последующего анализа и оценки.
  10. Анализируйте результаты испытаний:в соответствии ссобиратьприезжатьизпроизводительностьданные,руководитьпроизводительностьанализировать,Определить Узкое место в производительности, потенциальные проблемы и слабые места системы.,И вносить предложения по оптимизации.
  11. Написать отчет о тестировании:Подвести итог Тестирование Результаты и анализ производительности, Написать отчет о тестировании,включая процесс тестирования、Результаты испытаний、вопросы производительности и предложения по оптимизации и многое другое.
  12. оптимизация и улучшения:в соответствии стест Отчетсерединаизпроизводительностьвопросы иоптимизацияпредположение,оптимизация и доработка системы блога,как кодоптимизация、база данных Тюнинг、Корректировка конфигурации сервера и т.д.
  13. Проверьте еще раз:существоватьоптимизация и улучшенияназад,сноваруководить Тестирование производительности,Проверьте эффект оптимизации,Убедитесь, что производительность при фактической нагрузке может соответствовать требованиям.
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