diff --git a/module/testcase/config/action.php b/module/testcase/config/action.php index a9874ff0c7..003b99b767 100644 --- a/module/testcase/config/action.php +++ b/module/testcase/config/action.php @@ -18,6 +18,7 @@ $config->testcase->actionList['runCase']['notLoadModel'] = true; $config->testcase->actionList['runCase']['data-toggle'] = 'modal'; $config->testcase->actionList['runCase']['data-size'] = 'lg'; $config->testcase->actionList['runCase']['notInModal'] = true; +$config->testcase->actionList['runCase']['class'] = 'testtask-runCase-btn'; $config->testcase->actionList['ztfRun']['icon'] = 'play'; $config->testcase->actionList['ztfRun']['text'] = $lang->testtask->runCase; @@ -35,6 +36,7 @@ $config->testcase->actionList['runResult']['url'] = array('module' => 't $config->testcase->actionList['runResult']['data-toggle'] = 'modal'; $config->testcase->actionList['runResult']['data-size'] = 'lg'; $config->testcase->actionList['runResult']['notInModal'] = true; +$config->testcase->actionList['runResult']['class'] = 'testtask-results-btn'; $config->testcase->actionList['edit']['icon'] = 'edit'; $config->testcase->actionList['edit']['text'] = $lang->testcase->edit; diff --git a/module/testcase/model.php b/module/testcase/model.php index 10d91faac6..01a18e3393 100755 --- a/module/testcase/model.php +++ b/module/testcase/model.php @@ -127,6 +127,8 @@ class testcaseModel extends model */ public function getExecutionCases(string $browseType = 'all', int $executionID = 0, int $productID = 0, int|string $branchID = 0, int $moduleID = 0, int $paramID = 0, string $orderBy = 'id_desc', object $pager = null): array { + if(common::isTutorialMode()) return $this->loadModel('tutorial')->getCases(); + if($browseType == 'needconfirm') { return $this->dao->select('distinct t1.*, t2.*')->from(TABLE_PROJECTCASE)->alias('t1') @@ -170,6 +172,8 @@ class testcaseModel extends model */ public function getById(int $caseID, int $version = 0): object|bool { + if(common::isTutorialMode()) return $this->loadModel('tutorial')->getCase(); + $case = $this->dao->findById($caseID)->from(TABLE_CASE)->fetch(); if(!$case) return false; diff --git a/module/testtask/model.php b/module/testtask/model.php index a451049cb5..2bb21af88c 100755 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -1450,6 +1450,8 @@ class testtaskModel extends model */ public function getResults(int $runID, int $caseID = 0, string $status = 'all', string $type = 'all', int $deployID = 0): array { + if(common::isTutorialMode()) return $this->loadModel('tutorial')->getResults(); + $results = $this->dao->select('*')->from(TABLE_TESTRESULT) ->beginIF($runID > 0)->where('run')->eq($runID)->fi() ->beginIF($runID <= 0)->where('`case`')->eq($caseID)->fi() diff --git a/module/testtask/zen.php b/module/testtask/zen.php index bf0d84a6b1..6f7641547d 100644 --- a/module/testtask/zen.php +++ b/module/testtask/zen.php @@ -488,6 +488,8 @@ class testtaskZen extends testtask */ protected function getProducts(): array { + if(commonModel::isTutorialMode()) return $this->loadModel('tutorial')->getProductPairs(); + /* 如果是在非弹窗页面的项目或执行应用下打开的测试单,则获取当前项目或执行对应的产品。*/ /* If the testtask is opened under a project or execution application on a non-pop-up page, get the current project or execution corresponding product. */ $tab = $this->app->tab; diff --git a/module/tutorial/config/scrumProjectManage.php b/module/tutorial/config/scrumProjectManage.php index da9444e206..0ce7e4abb4 100644 --- a/module/tutorial/config/scrumProjectManage.php +++ b/module/tutorial/config/scrumProjectManage.php @@ -380,4 +380,107 @@ $scrumProjectManage->tasks['manageTask']['steps'][] = array( 'desc' => $lang->tutorial->scrumProjectManage->manageTask->step24->desc ); +$scrumProjectManage->tasks['manageTest'] = array(); +$scrumProjectManage->tasks['manageTest']['name'] = 'manageTest'; +$scrumProjectManage->tasks['manageTest']['title'] = $lang->tutorial->scrumProjectManage->manageTest->title; +$scrumProjectManage->tasks['manageTest']['startUrl'] = array('execution', 'task', 'executionID=3'); +$scrumProjectManage->tasks['manageTest']['steps'] = array(); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'clickNavbar', + 'target' => 'qa', + 'page' => 'execution-task', + 'app' => 'execution', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step1->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step1->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'clickMainNavbar', + 'target' => 'testcase', + 'page' => 'execution-bug', + 'url' => array('execution', 'bug', 'executionID=3'), + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step2->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step2->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'click', + 'target' => '#actionBar a', + 'page' => 'execution-testcase', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step3->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step3->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'form', + 'page' => 'testcase-create', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step4->name +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'saveForm', + 'page' => 'testcase-create', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step5->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step5->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'click', + 'target' => 'div.dtable div[data-col="actions"][data-row="1"] a.testtask-runCase-btn', + 'page' => 'execution-testcase', + 'url' => array('execution', 'testcase', 'executionID=3'), + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step6->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step6->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'form', + 'page' => 'execution-testcase', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step7->name +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'saveForm', + 'page' => 'execution-testcase', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step8->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step8->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'click', + 'target' => 'div.dtable div[data-col="actions"][data-row="1"] a.testtask-results-btn', + 'page' => 'execution-testcase', + 'url' => array('execution', 'testcase', 'executionID=3'), + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step9->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step9->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'form', + 'page' => 'execution-testcase', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step10->name +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'saveForm', + 'target' => 'div.resultSteps button.to-bug-button', + 'page' => 'execution-testcase', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step11->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step11->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'form', + 'page' => 'bug-create', + 'url' => array('bug', 'create', 'productID=1'), + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step12->name +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'saveForm', + 'page' => 'bug-create', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step13->name +); + $config->tutorial->guides[$scrumProjectManage->name] = $scrumProjectManage; diff --git a/module/tutorial/lang/zh-cn.php b/module/tutorial/lang/zh-cn.php index 961d6fea7b..a4a348f15b 100644 --- a/module/tutorial/lang/zh-cn.php +++ b/module/tutorial/lang/zh-cn.php @@ -271,3 +271,53 @@ $lang->tutorial->scrumProjectManage->manageTask->step23->desc = '在这里可以 $lang->tutorial->scrumProjectManage->manageTask->step24 = new stdClass(); $lang->tutorial->scrumProjectManage->manageTask->step24->name = '保存关联的需求'; $lang->tutorial->scrumProjectManage->manageTask->step24->desc = '您可以将完成的需求关联在当前版本中'; + +$lang->tutorial->scrumProjectManage->manageTest = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->title = '测试管理'; + +$lang->tutorial->scrumProjectManage->manageTest->step1 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step1->name = '点击测试'; +$lang->tutorial->scrumProjectManage->manageTest->step1->desc = '可以在这里进行测试管理'; + +$lang->tutorial->scrumProjectManage->manageTest->step2 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step2->name = '点击用例'; +$lang->tutorial->scrumProjectManage->manageTest->step2->desc = '在这里可以查看用例'; + +$lang->tutorial->scrumProjectManage->manageTest->step3 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step3->name = '点击创建用例'; +$lang->tutorial->scrumProjectManage->manageTest->step3->desc = '在这里可以创建用例'; + +$lang->tutorial->scrumProjectManage->manageTest->step4 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step4->name = '填写表单'; + +$lang->tutorial->scrumProjectManage->manageTest->step5 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step5->name = '保存表单'; +$lang->tutorial->scrumProjectManage->manageTest->step5->desc = '保存后进入用例列表'; + +$lang->tutorial->scrumProjectManage->manageTest->step6 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step6->name = '点击执行'; +$lang->tutorial->scrumProjectManage->manageTest->step6->desc = '点击执行可以执行用例'; + +$lang->tutorial->scrumProjectManage->manageTest->step7 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step7->name = '填写表单'; + +$lang->tutorial->scrumProjectManage->manageTest->step8 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step8->name = '保存表单'; +$lang->tutorial->scrumProjectManage->manageTest->step8->desc = '保存后返回用例列表'; + +$lang->tutorial->scrumProjectManage->manageTest->step9 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step9->name = '点击结果'; +$lang->tutorial->scrumProjectManage->manageTest->step9->desc = '点击这里可以查看用例执行结果'; + +$lang->tutorial->scrumProjectManage->manageTest->step10 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step10->name = '选择步骤'; + +$lang->tutorial->scrumProjectManage->manageTest->step11 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step11->name = '点击转bug'; +$lang->tutorial->scrumProjectManage->manageTest->step11->desc = '可以将未通过的执行结果转Bug处理'; + +$lang->tutorial->scrumProjectManage->manageTest->step12 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step12->name = '填写表单'; + +$lang->tutorial->scrumProjectManage->manageTest->step13 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step13->name = '保存表单'; diff --git a/module/tutorial/model.php b/module/tutorial/model.php index c34edcef9e..e39fc39954 100644 --- a/module/tutorial/model.php +++ b/module/tutorial/model.php @@ -630,4 +630,170 @@ class tutorialModel extends model $builds[$build->id] = $build; return $builds; } + + /** + * 获取新手模式用例。 + * Get Cases. + * + * @access public + * @return string + */ + public function getCase(): object + { + $case = new stdClass(); + $case->project = 2; + $case->product = 1; + $case->case = 1; + $case->count = 1; + $case->version = 1; + $case->order = 0; + $case->id = 1; + $case->execution = 3; + $case->branch = 0; + $case->lib = 0; + $case->module = 0; + $case->path = 0; + $case->story = 0; + $case->storyVersion = 1; + $case->title = 'Test case'; + $case->precondition = ''; + $case->keywords = ''; + $case->pri = 3; + $case->type = 'feature'; + $case->auto = 'no'; + $case->frame = ''; + $case->stage = 'unittest'; + $case->howRun = ''; + $case->script = ''; + $case->scriptedBy = ''; + $case->scriptedDate = ''; + $case->scriptStatus = ''; + $case->scriptLocation = ''; + $case->status = 'normal'; + $case->subStatus = ''; + $case->color = ''; + $case->frequency = 1; + $case->openedBy = ''; + $case->openedDate = ''; + $case->reviewedBy = ''; + $case->reviewedDate = ''; + $case->lastEditedBy = ''; + $case->lastEditedDate = ''; + $case->linkCase = ''; + $case->fromBug = 0; + $case->fromCaseID = 0; + $case->fromCaseVersion = 1; + $case->deleted = 0; + $case->lastRunner = ''; + $case->lastRunDate = ''; + $case->lastRunResult = 'fail'; + $case->scene = 0; + $case->sort = 0; + $case->bugs = 1; + $case->results = 1; + $case->caseFails = 1; + $case->stepNumber = 1; + $case->needconfirm = ''; + + $step1 = new stdClass(); + $step1->name = 1; + $step1->id = 1; + $step1->step = 'Test step1'; + $step1->desc = 'Test step1'; + $step1->expect = ''; + $step1->type = 'step'; + $step1->parent = 0; + $step1->grade = 1; + + $step2 = new stdClass(); + $step2->name = 2; + $step2->id = 2; + $step2->step = 'Test step2'; + $step2->desc = 'Test step2'; + $step2->expect = ''; + $step2->type = 'step'; + $step2->parent = 0; + $step2->grade = 1; + $case->steps = array($step1, $step2); + + return $case; + } + + /** + * 获取新手模式用例。 + * Get Cases. + * + * @access public + * @return string + */ + public function getCases(): array + { + $case = $this->getCase(); + $cases = array(); + $cases[$case->id] = $case; + return $cases; + } + + /** + * 获取新手模式用例执行结果。 + * Get results. + * + * @access public + * @return string + */ + public function getResults(): array + { + $result = new stdClass(); + + $result->id = 1; + $result->run = 0; + $result->case = 1; + $result->version = 1; + $result->job = 0; + $result->compile = 0; + $result->caseResult = 'fail'; + $result->stepResults = array( + 1 => array( + 'id' => 1, + 'parent' => 0, + 'case' => 1, + 'version' => 1, + 'type' => 'step', + 'desc' => 'Test step1', + 'expect' => '', + 'name' => 1, + 'grade' => 1, + 'result' => 'fail', + 'real' => '', + 'files' => array() + ), + 2 => array( + 'id' => 2, + 'parent' => 0, + 'case' => 1, + 'version' => 1, + 'type' => 'step', + 'desc' => 'Test step2', + 'expect' => '', + 'name' => 2, + 'grade' => 1, + 'result' => 'pass', + 'real' => '', + 'files' => array() + ) + ); + + $result->ZTFResult = ''; + $result->node = 0; + $result->lastRunner = $this->app->user->account; + $result->date = helper::now(); + $result->duration = 0; + $result->xml = ''; + $result->deploy = 0; + $result->build = 0; + $result->task = 0; + $result->nodeName = ''; + $result->files = array(); + return array(1 => $result); + } }