AutomatedTestCaseSingleModule.class.php 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <?php
  2. /**
  3. * @name eolinker ams open source,eolinker开源版本
  4. * @link https://www.eolinker.com/
  5. * @package eolinker
  6. * @author www.eolinker.com 广州银云信息科技有限公司 ©2015-2018
  7. * eoLinker是目前全球领先、国内最大的在线API接口管理平台,提供自动生成API文档、API自动化测试、Mock测试、团队协作等功能,旨在解决由于前后端分离导致的开发效率低下问题。
  8. * 如在使用的过程中有任何问题,欢迎加入用户讨论群进行反馈,我们将会以最快的速度,最好的服务态度为您解决问题。
  9. *
  10. * eoLinker AMS开源版的开源协议遵循Apache License 2.0,如需获取最新的eolinker开源版以及相关资讯,请访问:https://www.eolinker.com/#/os/download
  11. *
  12. * 官方网站:https://www.eolinker.com/
  13. * 官方博客以及社区:http://blog.eolinker.com/
  14. * 使用教程以及帮助:http://help.eolinker.com/
  15. * 商务合作邮箱:market@eolinker.com
  16. * 用户讨论QQ群:284421832
  17. */
  18. class AutomatedTestCaseSingleModule
  19. {
  20. public function getUserType(&$conn_id)
  21. {
  22. $dao = new AutomatedTestCaseSingleDao();
  23. if (!($project_id = $dao->checkSingleTestCasePermission($conn_id, $_SESSION['userID']))) {
  24. return -1;
  25. }
  26. $auth_dao = new AuthorizationDao();
  27. $result = $auth_dao->getProjectUserType($_SESSION['userID'], $project_id);
  28. if ($result === FALSE) {
  29. return -1;
  30. }
  31. return $result;
  32. }
  33. /**
  34. * 新增用例单例
  35. * @param $user_id
  36. * @param $case_id
  37. * @param $case_data
  38. * @param $case_code
  39. * @param $status_code
  40. * @param $match_type
  41. * @param $match_rule
  42. * @param $api_name
  43. * @param $api_uri
  44. * @param $api_request_type
  45. * @param $order_number
  46. * @return bool
  47. */
  48. public function addSingleTestCase(&$user_id, &$case_id, &$case_data, &$case_code, &$status_code, &$match_type, &$match_rule, &$api_name, &$api_uri, &$api_request_type, &$order_number)
  49. {
  50. $test_case_dao = new AutomatedTestCaseDao();
  51. if (!($project_id = $test_case_dao->checkTestCasePermission($case_id, $user_id))) {
  52. return FALSE;
  53. }
  54. $dao = new AutomatedTestCaseSingleDao();
  55. $result = $dao->addSingleTestCase($case_id, $case_data, $case_code, $status_code, $match_type, $match_rule, $api_name, $api_uri, $api_request_type, $order_number);
  56. if ($result) {
  57. // 刷新项目更新时间
  58. $project_dao = new ProjectDao();
  59. $project_dao->updateProjectUpdateTime($project_id);
  60. //获取用例信息
  61. $case_dao = new AutomatedTestCaseDao();
  62. $case_name = $case_dao->getTestCaseName($case_id);
  63. // 将操作写入日志
  64. $log_dao = new ProjectLogDao();
  65. $log_dao->addOperationLog($project_id, $user_id, ProjectLogDao::$OP_TARGET_AUTOMATED_TEST_CASE, $case_id, ProjectLogDao::$OP_TYPE_UPDATE, "修改自动化测试用例:'{$case_name}'", date("Y-m-d H:i:s", time()));
  66. return $result;
  67. } else
  68. return FALSE;
  69. }
  70. /**
  71. * 修改用例单例
  72. * @param $user_id
  73. * @param $case_id
  74. * @param $conn_id
  75. * @param $case_data
  76. * @param $case_code
  77. * @param $status_code
  78. * @param $match_type
  79. * @param $match_rule
  80. * @param $api_name
  81. * @param $api_uri
  82. * @param $api_request_type
  83. * @return bool
  84. */
  85. public function editSingleTestCase(&$user_id, &$case_id, &$conn_id, &$case_data, &$case_code, &$status_code, &$match_type, &$match_rule, &$api_name, &$api_uri, &$api_request_type)
  86. {
  87. $dao = new AutomatedTestCaseSingleDao();
  88. if (!($project_id = $dao->checkSingleTestCasePermission($conn_id, $user_id))) {
  89. return FALSE;
  90. }
  91. $result = $dao->editSingleTestCase($case_id, $conn_id, $case_data, $case_code, $status_code, $match_type, $match_rule, $api_name, $api_uri, $api_request_type);
  92. if ($result) {
  93. // 刷新项目更新时间
  94. $project_dao = new ProjectDao();
  95. $project_dao->updateProjectUpdateTime($project_id);
  96. //获取用例信息
  97. $case_dao = new AutomatedTestCaseDao();
  98. $case_name = $case_dao->getTestCaseName($case_id);
  99. // 将操作写入日志
  100. $log_dao = new ProjectLogDao();
  101. $log_dao->addOperationLog($project_id, $user_id, ProjectLogDao::$OP_TARGET_AUTOMATED_TEST_CASE, $case_id, ProjectLogDao::$OP_TYPE_UPDATE, "修改自动化测试用例:'{$case_name}'", date("Y-m-d H:i:s", time()));
  102. return TRUE;
  103. } else
  104. return FALSE;
  105. }
  106. /**
  107. * 获取用例单例列表
  108. * @param $project_id
  109. * @param $case_id
  110. * @param $user_id
  111. * @return mixed
  112. */
  113. public function getSingleTestCaseList(&$project_id, &$case_id, &$user_id)
  114. {
  115. $dao = new AutomatedTestCaseSingleDao();
  116. if ($case_id) {
  117. $test_case_dao = new AutomatedTestCaseDao();
  118. if (!$test_case_dao->checkTestCasePermission($case_id, $user_id)) {
  119. return FALSE;
  120. }
  121. return $dao->getSingleTestCaseList($case_id);
  122. } else {
  123. $project_dao = new ProjectDao();
  124. if (!$project_dao->checkProjectPermission($project_id, $user_id)) {
  125. return FALSE;
  126. }
  127. return $dao->getAllSingleTestCaseList($project_id);
  128. }
  129. }
  130. /**
  131. * 获取用例单例详情
  132. * @param $conn_id
  133. * @param $user_id
  134. * @return mixed
  135. */
  136. public function getSingleTestCaseInfo(&$conn_id, &$user_id)
  137. {
  138. $dao = new AutomatedTestCaseSingleDao();
  139. if (!($project_id = $dao->checkSingleTestCasePermission($conn_id, $user_id))) {
  140. return FALSE;
  141. }
  142. return $dao->getSingleTestCaseInfo($project_id, $conn_id);
  143. }
  144. /**
  145. * 删除测试用例
  146. * @param $project_id
  147. * @param $user_id
  148. * @param $conn_ids
  149. * @return bool
  150. */
  151. public function deleteSingleTestCase(&$project_id, &$user_id, &$conn_ids)
  152. {
  153. $project_dao = new ProjectDao();
  154. if (!$project_dao->checkProjectPermission($project_id, $user_id)) {
  155. return FALSE;
  156. }
  157. $dao = new AutomatedTestCaseSingleDao();
  158. $case_name = $dao->getTestCastName($conn_ids);
  159. $case_id = $dao->getCaseIDByConnID($conn_ids);
  160. $result = $dao->deleteSingleTestCase($conn_ids, $project_id);
  161. if ($result) {
  162. // 刷新项目更新时间
  163. $project_dao->updateProjectUpdateTime($project_id);
  164. // 将操作写入日志
  165. $log_dao = new ProjectLogDao();
  166. $log_dao->addOperationLog($project_id, $user_id, ProjectLogDao::$OP_TARGET_AUTOMATED_TEST_CASE, $case_id, ProjectLogDao::$OP_TYPE_UPDATE, "修改自动化测试用例:'{$case_name}'", date("Y-m-d H:i:s", time()));
  167. return TRUE;
  168. } else
  169. return FALSE;
  170. }
  171. /**
  172. * 获取所有接口列表
  173. * @param $project_id
  174. * @param $user_id
  175. * @return bool
  176. */
  177. public function getApiList(&$project_id, &$user_id)
  178. {
  179. $project_dao = new ProjectDao();
  180. if (!$project_dao->checkProjectPermission($project_id, $user_id)) {
  181. return FALSE;
  182. }
  183. $dao = new AutomatedTestCaseSingleDao();
  184. return $dao->getApiList($project_id);
  185. }
  186. }