Обработка исключений в BenchmarkDotNet

У меня есть набор HTTP-вызовов для сравнения:

public class HttpExamples
{

    [Benchmark]
    public void GetExampleCom()
    {
        var request = WebRequest.CreateHttp("http://example.com");
        var webResponse = request.GetResponse();
    }

    [Benchmark]
    public void GetExampleComSsl()
    {
        var request = WebRequest.CreateHttp("https://example.com");
        var webResponse = request.GetResponse();
    }
}

Иногда по какой-либо причине один из запросов не будет выполнен. В настоящее время это, кажется, останавливает тестирование, и я бы предпочел, чтобы оно каким-то образом обрабатывало исключение.

Можно ли этого достичь?

Я бы хотел:

  • Устранить сбои из результатов.
  • Флаг, что они произошли

Бонусные очки:

  • Сохраняйте показатели ошибок, чтобы мы могли видеть, как ошибки влияют на результаты.
  • Уметь видеть результаты для разных типов исключений.
  • Сделай "вещь" при неудаче (убери кое что)

0 ответов

Попробуйте добавить конфигурацию вручную, аналогичную конфигурации, упомянутой в https://github.com/dotnet/BenchmarkDotNet/issues/579.

Добавить (JitOptimizationsValidator.DontFailOnError); // РАЗРЕШИТЬ НЕОПТИМИЗИРОВАННЫЕ DLLs

BenchmarkDotNet - это инструмент для микротестирования, он был разработан для очень точных нано- и микротестов с привязкой к процессору. Он может выполнять некоторые тесты HTTP, но даже если вы используете настраиваемую конфигурацию, вы не получите такой же хороший опыт, как с инструментами, разработанными для тестирования HTTP, такими как wrk или bombardier.

Другие вопросы по тегам