Uma biblioteca .NET para transformar métodos C# em benchmarks reproduzíveis, com aquecimento automático, estatísticas e relatórios de resultados.
ionelmc/pytest-benchmark
Plugin do pytest que oferece uma fixture de benchmark para medir o tempo de funções Python em suítes de testes do pytest.
- Estrelas
- 1,459
- Forks
- 140
- Issues abertas
- 125
- Último commit
- há 7 dias
O que é?
pytest-benchmark adiciona uma fixture de benchmark ao pytest. Ao passar uma função para a fixture, ela é executada repetidamente, com as execuções agrupadas em rodadas calibradas de acordo com o timer escolhido; os resultados são exibidos no resumo do pytest.
A fixture aceita argumentos posicionais ou nomeados, e o modo pedantic permite controlar explicitamente as funções de setup, o número de iterações e o número de rodadas. É possível comparar os resultados com os de execuções anteriores, e o plugin pode gerar histogramas da distribuição dos tempos.
Como se integra ao pytest, os benchmarks são escritos como funções de teste comuns e executados com o comando pytest de sempre. O plugin mede funções individuais; portanto, para medir um bloco maior de código, é preciso encapsulá-lo em uma função.
Recursos principais
- 01Oferece uma fixture de benchmark que mede o tempo de execução de uma função dentro de um teste do pytest.
- 02Agrupa as medições em rodadas calibradas de acordo com o timer escolhido.
- 03Oferece um modo pedantic para personalizar setup, iterações e rodadas.
- 04Permite comparar os resultados com os de execuções anteriores do benchmark.
- 05Pode gerar histogramas dos resultados de tempo.
Casos de uso
- Acompanhar regressões de desempenho em funções Python entre commits.
- Comparar duas implementações da mesma função em uma suíte de testes.
- Medir caminhos críticos de uma biblioteca mantendo os benchmarks no fluxo de trabalho já existente com pytest.
Início rápido
- 1
Instale o plugin pelo PyPI
pip install pytest-benchmark
Antes de usar
- Ele faz benchmarks apenas de funções individuais; para medir programas inteiros ou blocos de código, é necessário usar uma função wrapper.
Tópicos
Perguntas frequentes
- O que é pytest-benchmark?
- Plugin do pytest que oferece uma fixture de benchmark para medir o tempo de funções Python em suítes de testes do pytest. pytest-benchmark adiciona uma fixture de benchmark ao pytest. Ao passar uma função para a fixture, ela é executada repetidamente, com as execuções agrupadas em rodadas calibradas de acordo com o timer escolhido; os resultados são exibidos no resumo do pytest.
- pytest-benchmark é gratuito? Qual é a licença?
- pytest-benchmark é open source sob a licença BSD-2-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
- pytest-benchmark ainda é mantido?
- Manutenção ativa. O último commit de pytest-benchmark foi em 1 de nov. de 2026.
- Para que posso usar pytest-benchmark?
- Acompanhar regressões de desempenho em funções Python entre commits. Comparar duas implementações da mesma função em uma suíte de testes. Medir caminhos críticos de uma biblioteca mantendo os benchmarks no fluxo de trabalho já existente com pytest.
- Como instalar pytest-benchmark?
- Instale o plugin pelo PyPI: pip install pytest-benchmark
- Onde consigo pytest-benchmark?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ionelmc/pytest-benchmark
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Profiler linha a linha para Python que mostra quanto tempo cada linha do código-fonte de uma função decorada leva para executar.
Aplicativo Java de código aberto para testar carga e medir o desempenho de aplicações web e outros serviços.
Ferramenta multiplataforma de linha de comando para benchmark e teste de carga HTTP(S), escrita em Go e baseada em fasthttp para processar muitas requisições.
Ferramenta de linha de comando para benchmark e testes de carga de serviços gRPC, com concorrência, limites de taxa e formatos de saída configuráveis.
Framework de macrobenchmark para Elasticsearch que configura clusters, executa rodadas de benchmark e compara resultados.