stekel/laravel-bench

Apache-Bench的PHP封装,支持Laravel集成。

v2.0.7 2021-12-08 21:50 UTC

This package is auto-updated.

Last update: 2024-09-09 04:09:12 UTC


README

Apache-Bench的PHP封装,支持Laravel集成

要求

  • PHP >= 7.0
  • ApacheBench $ ab

安装

Laravel

使用Composer安装它

composer require stekel/laravel-bench --dev

发布包配置文件

artisan vendor:publish --provider=stekel\LaravelBench\Laravel\Providers\LaravelBenchServiceProvider

用法

从Laravel应用的根目录运行以下命令

php artisan stekel:bench {test}

以下测试可用

  • homepage - 向/发送100个请求

自定义测试

在您的存储库中某处创建一个新测试并添加c

以下测试将执行100个请求(每次10个)针对主页('/')

<?php // App\Benchmarks\Homepage.php

namespace stekel\LaravelBench\Assessments;

use stekel\LaravelBench\Assessment;

class Homepage extends Assessment
{
    /**
     * Path to execute the test against
     *      - If null, create route via slug for execution
     */
    public ?string $path = '/';

    /**
     * Number of requests to send at a time
     */
    public int $concurrency = 10;

    /**
     * Number of total requests to send
     */
    public int $requests = 100;

    /**
     * Slug to use for reference
     */
    public string $slug = 'homepage';
}

以下测试将执行100个请求(每次10个)针对自定义路由('/'performance/large-query'),该路由由测试生成。给定的路由仅对配置文件中列出的环境有效,并将执行任何在route()函数中的代码。

<?php
// App\Benchmarks\LargeQuery.php

namespace App\Benchmarks;

use stekel\LaravelBench\Assessment;

class LargeQuery extends Assessment
{
    public $path = null;
    public $concurrency = 10;
    public $requests = 100;
    public $slug = 'large-query';
    
    public function route() {
        User::limit(1000)->get();
    }
}