php - 对代码性能进行单元测试时出现问题

标签 php laravel laravel-5 laravel-5.2 laravel-5.1

我正在测试我的代码,以检查如果我们认为 100 个用户同时提交了他们的注册,它会如何表现!!!

我的代码在 PHP Laravel 5.2 中,下面是 JQuery Ajax。

for (i = 0; i < 100; i++) {
    var 
     data={'Role' : "Role"+i},
     request = $.ajax({
        url:                'http://localhost:1234/Practise/public/api/SaveRoleApi',
        type:               "POST",
        data:               JSON.stringify(data),
        contentType:        "application/json; charset=utf-8",
        async:  true,
        success: function(d){ console.log(d); }
     });
}

在 100 条记录中,我没有成功提交超过 88 条记录。

我正在使用 MySQL 数据库。

如果我的上述代码将按顺序添加记录...是否有任何方法可以测试来自一台计算机的 1000 个并发请求?

最佳答案

使用 JavaScript 尝试从一个浏览器发出多个请求来创建所有连接并不是一个好主意,您确实没有很好地测试并发性。

考虑使用实际的负载测试工具,如 JMeter(我绝对推荐这个),或者至少在批处理脚本中并行 curl 请求。

for n in {1..1000}; do
    for i in `eval echo {$n..$((n+999))}`; do
            echo "club $i..."
            curl -X POST -H "Content-Type: application/json" -d '{"param1":"xyz","param2":"xyz"}' -s "http://localhost:1234/Practise/public/api/SaveRoleApi" >> log.txt
    done &
    wait
done

关于php - 对代码性能进行单元测试时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39279687/

相关文章:

javascript - 其他 JavaScript 文件中 ob_start php 中定义的 PhpStorm JavaScript 方法

php - 将 mysql 查询转换为 oracle 查询

mysql - 外键格式不正确

MySql JSON 模式

php - Laravel Eloquent : route model binding not working with multi word table name

laravel - 如何在 Laravel 中使用 Eloquent 从子表中获取值?

php - 自定义 Laravel FormRequest autorize 方法验证

php - 通过在 URL 中添加唯一 ID 使个人资料页面唯一。但如何呢?

php - 两张 table 并排

php - Symfony2 创建和持久化实体关系