使用JMeter在共享主机上测试图像呈现PHP脚本

时间:2016-06-03 23:12:11

标签: php jmeter php-gd

我正在测试同一脚本的两个版本。每个脚本执行相同的操作,但它们输出结果的方式不同。每个脚本:

  1. 使用 imagecreatefrompng()
  2. 加载本地图像
  3. 使用 imagettftext()
  4. 向图像添加文字

    第一个脚本以这种方式输出最终图像:

    imagepng($img, $cacheFile, $quality);
    imagedestroy($img);
    $fp = fopen($cacheFile, 'rb');
    header("Content-Type: image/png");
    header("Cache-Control: no-cache, must-revalidate"); 
    header("Pragma: no-cache");
    header("Content-Length: " . filesize($cacheFile));
    header('Content-Transfer-Encoding: binary');
    ob_end_clean();
    fpassthru($fp);
    

    第二个脚本:

    header('Content-Type: image/png');
    imagepng($img, null, $quality); 
    imagedestroy($img);
    

    当我直接在浏览器中调用它们时,两个脚本都能正常工作,并且我得到了预期的结果。但是当我使用JMeter对每个脚本进行负载测试时,我经常在每个脚本中得到一个非描述性的500错误。

    error_log 文件(通常在脚本中存在错误时创建)不存在。

    如何解决500错误的原因?有没有办法知道共享主机是否会切断资源,这就是为什么脚本无法执行或者是否有其他原因?如何在重负载期间优化脚本以获得最佳性能?

1 个答案:

答案 0 :(得分:0)

我最终重写为C#并部署到Azure