【Тестирование программного обеспечения】Тестирование производительности
【Тестирование программного обеспечения】Тестирование производительности
1. Что такое тестирование производительности?
1. Концепция тестирования производительности
Тестирование производительность – помощь тестировщика при Тестировании производительностиинструмент,Имитировать систему в различных сценариях,СоответствующийПоказатели эффективностиСоответствует ли он ожиданиям.
2. В чем разница между тестированием производительности и функциональным тестированием?
Тестирование производительности и функциональное тестирование — это два разных типа тестирования программного обеспечения.
Функциональное тестирование:
Основное внимание функциональному тестированию насистема Нормально ли она работает в соответствии с функциями, определенными в техническом задании,и соответствовать ожиданиям пользователей。Его цельПроверьте достоверность или правильность программного обеспечения.,Подтверждатьпрограммное обеспечение Способность правильно обрабатывать данные в соответствии с бизнес-логикой в различных входных ситуациях и давать ожидаемые выходные результаты. Функциональное тестирование обычно использует метод тестирования черного ящика,Это толькососредоточиться напрограммное Для обеспечения внешнего поведения тестировщикам не нужно знать детали внутренней реализации.
Тест производительности:
Тестирование производительностиосновнойсосредоточиться наПроизводительность и отзывчивость системы при различных нагрузках и стрессах.Он моделирует реальные сценарии использования или конкретные условия нагрузки.,Оцениватьсистемаиз Показатели эффективности,Например, время ответа, пропускная способность, количество пользователей и т. д. Цель Тестирования производительности — оценить эффективность, надежность и масштабируемость системы.,Убедитесь, что система может стабильно работать при ожидаемой нагрузке.
Метод испытания:
Функциональное тестирование обычно используетМетод тестирования черного ящика,Тестировщики проводят тестирование на основе спецификаций требований или потребностей пользователей.,проверятьпрограммное обеспечение. Соблюдаются ли конкретные функциональные требования.
Тестирование производительности Обычно используетсяМетод тестирования белого ящика,Тестировщикам необходимо понимать внутренние механизмы и архитектуру системы.,и использовать Тестирование инструмент производительности для моделирования нагрузки и показатели Мониторинг и анализ эффективности.
3. Какая производительность программного обеспечения является хорошей?
Хорошая производительность программного обеспечения означает, что оно может эффективно, стабильно, безопасно и надежно удовлетворять потребности бизнеса и обеспечивать удобство работы пользователей. Например, есть два программного обеспечения:
В это время производительность программного обеспечения 1 лучше.
4. Какие факторы влияют на производительность программного обеспечения?
отуровень программного обеспеченияПриходите и посмотрите:
Алгоритмы и структуры данных. Выбор правильных алгоритмов и оптимизация структур данных могут улучшить программное обеспечение. обеспечение эффективности исполнения.
Качество кода и оптимизация: оптимизация реализации кода,Сокращение избыточных и неэффективных операций,Улучшить сложность алгоритма,Повысьте эффективность выполнения кода.
Параллельная обработка и управление потоками. Разумно используйте механизмы многопоточности или параллельной обработки, а также в полной мере используйте многоядерные процессоры для улучшения параллелизма.
Кэширование и доступ к данным. Используйте соответствующие стратегии кэширования, предварительную выборку данных и другие технологии, чтобы уменьшить количество обращений к диску или сети и ускорить доступ к данным.
база данныхоптимизация:Разумный дизайнбаза данныхструктура、Индекс и операторы запроса,оптимизация конфигурации базы данных и настройки параметров,улучшатьбаза данных Читай и пишипроизводительность。
Обработка исключений и ошибок. Эффективные механизмы обработки исключений и стратегии обработки ошибок могут повысить стабильность программного обеспечения и производительность.
отаппаратный уровеньПриходите и посмотрите:
Производительность процессора: модель процессора, количество ядер, частота и другие характеристики напрямую влияют на программное обеспечение. обеспечение вычислительной мощности и скорости работы.
Емкость и пропускная способность памяти. Достаточный объем памяти и высокая пропускная способность могут обеспечить лучшую обработку данных и возможности доступа.
Производительность диска. Скорость, емкость, а также производительность чтения и записи диска имеют решающее значение для доступа к данным и производительности хранилища.
Пропускная способность сети и задержка: если программное обеспечение Программное обеспечение зависит от сетевой связи, а пропускная способность и задержка сети влияют на программное обеспечение. обеспечение времени отклика и возможностей одновременной обработки.
отуровень пользователяПриходите и посмотрите:
Количество одновременных пользователей: количество одновременных посещений программного обеспечения «Количество пользователей». Одновременный доступ нескольких пользователей может привести к снижению производительности.
Тип и частота пользовательских запросов. Различные типы и частота пользовательских запросов имеют разную степень влияния на загрузку программного обеспечения.
Производительность пользовательского устройства: производительность устройства, используемая пользователем (например, процессор、Памятьждать)может повлиятьпрограммное обеспечениеизпроизводительностьи скорость реакции。
Модель поведения пользователя: рабочие привычки пользователя、На производительность программного обеспечения влияют как модели использования, так и стили взаимодействия.
2. Зачем проводить тестирование производительности?
Тестирование производительности может помочь нам:
Получите показатели системыпроизводительности как Показатели эффективностиизэталон
проверятьсистемаиз Показатели Соответствует ли эффективность требованиям (требованиям производительности). нравиться:
Способно ли приложение удовлетворить различные требования системы Показатели? эффективности
Может ли приложение справиться с ожидаемой пользовательской нагрузкой и иметь ли избыточную емкость.
Может ли приложение обрабатывать количество транзакций, необходимое для бизнеса.
Устойчиво ли приложение при ожидаемых и неожиданных нагрузках пользователей?
Можно ли убедиться, что пользователи действительно используют программное обеспечение? Получите комфорт при использовании программного обеспечения
Откройте для себя Узкое по системе место в производительности,Памятьутечкаждатьвопрос
система Максимальная производительность при нормальных условиях работы
Помогите отделу эксплуатации и технического обслуживания лучше спланировать конфигурацию оборудования.
3. Общие термины, используемые при тестировании производительности, и показатели измерения тестирования производительности.
Параллелизм. Параллелизм означает, что большое количество пользователей одновременно получают доступ к одному и тому же сайту.
Количество одновременных пользователей на бизнес-уровне: относится к количеству пользователей, которые одновременно отправляют запросы на сервер.
Количество одновременных пользователей на уровне внутреннего сервера: относится к количеству запросов, отправленных на сервер одновременно.
Время ответа: время, прошедшее с момента отправки запроса до получения ответа.
Если взять приведенный выше рисунок в качестве примера, время отклика делится на:
(1) Время ответа пользователя составляет:
N1+A1+N2+A2+N3+A3+N4
(2) Время ответа запроса
Время между получением сервером запроса и выдачей ответа является временем ответа на запрос.
A1+N2+A2+N3+A3
Какие факторы влияют на время отклика программного обеспечения?
Производительность базы данных. Пропускная способность сети. Алгоритмы обработки сервера. Логическое пользовательское оборудование и т. д.
время ответа на транзакцию
Время ответа транзакции относится к времени, необходимому для полной бизнес-операции (транзакции) от начала до конца.
Количество транзакций в секунду
Количество обработанных транзакций/время, потраченное на транзакции
Чем выше количество транзакций в секунду, тем естественнее это означает наличие программного обеспечения. обеспечениеизпроизводительностьтем лучше
Объем кликов: количество кликов пользователей.
Рейтинг кликов: количество кликов пользователя/время.
Пропускная способность: объем взаимодействия данных между запросом пользователя и сервером.
Пропускная способность:Пропускная способность/время.Пропускная способность Высшие средствасистемапроизводительностьтем лучше.Напротив Пропускная способность Чем он ниже, темсистемапроизводительность Чем хуже.
Время размышления: Комментарии пользователей к программному обеспечению обеспечение При выполнении операций между каждой операцией существует временной интервал.
Использование ресурсов: использование различных ресурсов.,Содержит процессор,Память,жесткий диск,Сеть и т. д.
Вопрос на собеседовании: На какие показатели вы обращаете внимание при тестировании производительности?
Ответ: Все вышеперечисленное
4. Классификация тестов производительности
1. Определение эталонного теста производительности
Целью эталонного тестирования производительности является определение базового уровня производительности системы. Сравнительное тестирование производительности обычно проводится перед развертыванием системы, чтобы оценить производительность системы в стандартной среде и служить эталоном для последующей оптимизации и сравнения производительности.
То есть: дайте системе поработать в нормальных условиях и понаблюдайте за показателями работы ПО.
Сценарий применения: Программное обеспечение только что запущено, и его необходимо протестировать на производительность.
2. Тест производительности нагрузки
Оцените производительность системы в заранее заданных условиях нагрузки. Нагрузкой может быть количество пользователей, одновременные запросы или объем данных и т. д. Целью является проверка производительности системы в условиях высокой нагрузки и определение максимальной нагрузки и узких мест в производительности, с которыми может справиться система.
То есть: убедиться, что программное обеспечение работает в условиях определенного давления, и наблюдать, нет ли точки перегиба в показателях производительности.
3. Испытание производительности под давлением
Оцените стабильность и надежность системы, увеличивая нагрузку до достижения или превышения ожидаемых пределов системы. Стресс-тестирование обычно длится в течение определенного периода времени, чтобы проверить, может ли система оставаться стабильной после длительной работы.
То есть: когда система находится в состоянии насыщения, наблюдайте за тестом производительности системы.
Стресс-тестирование производительности часто приводит к сбою системы
4. Проверка надежности
Проверьте надежность и стабильность системы при длительной работе или высокой нагрузке. Оцените, могут ли в вашей системе возникать сбои, ошибки или утечки ресурсов, непрерывно запуская ее, увеличивая нагрузку или моделируя сбои.
То есть: убедитесь, что система работает в течение непрерывного периода времени, и в течение этого периода времени наблюдайте за различными элементами системы. Например, эффективность программы — это нормально? обеспечение,Давайте продолжим работу в течение дня,Проработал неделю без проблем—>в месяц—>четверть—>один год.
Резюме: По сравнению с бутылкой минеральной воды, она выглядит так, как показано на рисунке ниже:
5. Процесс выполнения теста производительности
Просмотрите процесс функционального тестирования следующим образом:
Анализ требований → план тестирования → проектирование теста → выполнение теста → оценка теста (отчет о тестировании) → онлайн.
Подобно функциональному тестированию, процесс выполнения тестирования производительности:
Анализ требований → План тестирования → Выберите инструмент тестирования производительности → Напишите сценарий теста производительности → Выполните сценарий теста производительности → Создайте отчет о тестировании производительности.
Тестирование производительностисередина Появился Не так, как ожидалосьизситуация называетсяУзкое место в производительности.
существовать Тестирование производительностисередина,Узкое появилось место в производительности,исправление разработкиизпроцесс называетсяоптимизация.
Всегда существуют узкие места в производительности, и мы можем постоянно оптимизировать и улучшать их.
Пример:
На примере нашего блога процесс выполнения тестирования производительности выглядит следующим образом:
анализ потребностей:Познакомьтесь с блогомсистемаиз Потребности пользователя и ожидаемая нагрузка,Уточнить цели и потребности Тестирования производительности,Например ответвремя、Пропускная способностьждатьиндекс。
Определить сценарий тестирования:По данным блогасистемаизпотребности бизнеса,Разработка сценариев тестирования,Включая вход пользователя, просмотр списка блогов, публикацию блога, удаление и другие операции.,и определить при различных условиях нагрузкиизмоделированиеколичество объем пользователей и частота запросов.
Создайте тестовую среду:Настройка аналогична производственной средеизтестсреда,В том числе сервер, база данных、Настройки и конфигурация таких компонентов, как кэш. Убедитесь, что тестовая среда может поддерживать ожидаемую нагрузку и объем данных.
Разработайте план тестирования:Разработать подробныеизтестплан,Включить тестовые примеры、Данные испытаний и график испытаний. Уточните входные данные для каждого сценария тестирования.、Операционные шаги и ожидаемый результат.
Подготовьте тестовые данные:Подготовьтесь соответствующим образомизтестданные,Включая сообщения в блогах, информацию о пользователях и т. д.,для моделирования реальных сценариев использования.
Выполнить сценарий теста производительности
Сбор данных о производительности:собирать Тестирование Данные, генерируемые в ходе производительности, включая логи, Показатели записи эффективности и т. д. для последующего анализа и оценки.
Анализируйте результаты испытаний:в соответствии ссобиратьприезжатьизпроизводительностьданные,руководитьпроизводительностьанализировать,Определить Узкое место в производительности, потенциальные проблемы и слабые места системы.,И вносить предложения по оптимизации.
Написать отчет о тестировании:Подвести итог Тестирование Результаты и анализ производительности, Написать отчет о тестировании,включая процесс тестирования、Результаты испытаний、вопросы производительности и предложения по оптимизации и многое другое.
оптимизация и улучшения:в соответствии стест Отчетсерединаизпроизводительностьвопросы иоптимизацияпредположение,оптимизация и доработка системы блога,как кодоптимизация、база данных Тюнинг、Корректировка конфигурации сервера и т.д.
Проверьте еще раз:существоватьоптимизация и улучшенияназад,сноваруководить Тестирование производительности,Проверьте эффект оптимизации,Убедитесь, что производительность при фактической нагрузке может соответствовать требованиям.