/** * 执行测试 * @param Examination $examination * @return bool */ function executeExamination(Examination $examination) { //触发测试开始事件 $this->dispatcher->dispatch(self::EVENT_EXAMINATION_EXECUTE, new Event(self::EVENT_EXAMINATION_EXECUTE, $this, ['examination' => $examination])); //请求api try { $response = $this->requestApi($examination->getApi()); } catch (\Exception $e) { //如果接口请求的过程中出现异常,则终止测试过程 $examination->executed(Examination::STATUS_INTERRUPT); $examination->getReport()->write('exception', $e); return false; } $examination->getReport()->write('response', $response); //提取捕获参数 $this->extractArguments($examination, $response); //执行断言 $this->runAssertions($examination, $response); //触发测试结束事件 $this->dispatcher->dispatch(self::EVENT_EXAMINATION_EXECUTED, new Event(self::EVENT_EXAMINATION_EXECUTED, $this, ['examination' => $examination])); }