/** * Returns the parameters to pass to ab * @param ABenchmark $benchmark the benchmark to run * @return string the parameters */ protected function buildAbParameters(ABenchmark $benchmark) { $params = array(); $params[] = "-n " . $this->requests; // the number of requests to make $params[] = "-c " . $this->concurrency; // the number of concurrent requests // last item, the URL $params[] = $benchmark->getUrl(); return implode(" ", $params); }
/** * @param string $url The URL to benchmark * @param string $route The route to benchmark * @param string $params The parameters to pass to the route or URL, these can be a comma separated list of attribute:value * */ public function actionAdd($url = null, $route = null, $params = null) { if ($url === null && $route === null) { throw new CException("Either a URL or a route is required!"); } $model = new ABenchmark(); $model->url = $url; $model->route = $route; if ($route !== null && $params !== null) { $model->params = array(); foreach (explode(",", $params) as $param) { $param = explode(":", $param); $model->params[$param[0]] = $param[1]; } } if ($model->save()) { echo "Benchmark Added\n"; } else { echo "Failed to save benchmark\n"; print_r($model->getErrors()); } }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return ABenchmark the loaded model * @throws CHttpException if the model doesn't exist */ public function loadModel($id) { $model = ABenchmark::model()->findByPk((int) $id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }