+ [task#152997,doing,4h] add ui test for story module export

This commit is contained in:
wanshan
2025-11-26 16:17:41 +08:00
parent 7610833cae
commit 84e199a8ea
3 changed files with 120 additions and 1 deletions
+3 -1
View File
@@ -42,7 +42,9 @@ class browsePage extends page
'createdByMeNum' => '//*[@id="featureBar"]/menu/li[4]/a/span[2]',
'reviewByMeNum' => '//*[@id="featureBar"]/menu/li[5]/a/span[2]',
'draftNum' => '//*[@id="featureBar"]/menu/li[6]/a/span[2]',
'moreNum' => '//*[@id="featureBar"]/menu/li[7]/a/span[2]'
'moreNum' => '//*[@id="featureBar"]/menu/li[7]/a/span[2]',
'exportBtn' => "//*[@id='exportBtn']",
'firstStory' => '//*[@id="stories"]/div[2]/div[1]/div/div[1]',
);
$this->dom->xpath = array_merge($this->dom->xpath, $xpath);
}
@@ -0,0 +1,63 @@
<?php
require_once dirname(__FILE__, 6) . '/test/lib/ui.php';
class exportTester extends tester
{
public $form;
public function __construct($productID = 1, $storyType = 'story')
{
parent::__construct();
$this->login();
$params = (object)[
'productID' => $productID,
'branch' => '',
'browseType'=> 'unclosed',
'param' => 0,
'storyType' => $storyType,
'sort' => 'id',
];
$form = $this->initForm('product', 'browse', $params, 'appIframe-product');
$form->wait(1);
$this->form = $form;
}
/**
* 导出全部记录测试。
* @access public
* @return object
*/
public function testExportAll()
{
$this->form->dom->exportBtn->click();
$this->form->wait(1);
$this->form->dom->fileType->picker($this->lang->exportFileTypeList->csv);
$this->form->dom->encode->picker($this->lang->importEncodeList->gbk);
$this->form->dom->exportType->picker($this->lang->exportTypeList->all);
$this->form->dom->btn($this->lang->export)->click();
if($this->response('method') == 'browse') return $this->success('全部记录导出流程测试成功');
return $this->failed('全部记录导出流程测试失败');
}
/**
* 导出选中记录测试。
* @access public
* @return object
*/
public function testExportSelected()
{
$this->form->dom->firstStory->click();
$this->form->wait(1);
$this->form->dom->exportBtn->click();
$this->form->wait(1);
$this->form->dom->fileType->picker($this->lang->exportFileTypeList->html);
$this->form->dom->exportType->picker($this->lang->exportTypeList->selected);
$this->form->dom->btn($this->lang->export)->click();
if($this->response('method') == 'browse') return $this->success('选中记录导出流程测试成功');
return $this->failed('选中记录导出流程测试失败');
}
}
+54
View File
@@ -0,0 +1,54 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 2) . '/lib/ui/export.ui.class.php';
/**
title=开源版m=story&f=export测试
timeout=0
cid=1
- 全部记录导出流程测试
- 最终测试状态 @SUCCESS
- 测试结果 @全部记录导出流程测试成功
- 选中记录导出流程测试
- 最终测试状态 @SUCCESS
- 测试结果 @选中记录导出流程测试成功
*/
// 基本数据准备:创建产品与若干需求(含规格)用于导出测试
$product = zenData('product');
$product->id->range('1');
$product->name->range('产品1');
$product->type->range('normal');
$product->shadow->range('0');
$product->gen(1);
// 创建10条未关闭需求及其规格,供“全部/选中”两类导出测试
$story = zenData('story');
$story->id->range('1-10');
$story->product->range('1');
$story->module->range('0');
$story->title->range('1-10')->prefix('需求');
$story->type->range('story');
$story->status->range('active');
$story->stage->range('projected');
$story->assignedTo->range('[]');
$story->version->range('1');
$story->gen(10);
$storySpec = zenData('storyspec');
$storySpec->story->range('1-10');
$storySpec->version->range('1');
$storySpec->title->range('1-10');
$storySpec->spec->range('1-10')->prefix('软件需求描述');
$storySpec->verify->range('1-10')->prefix('需求验收');
$storySpec->gen(10);
$tester = new exportTester();
r($tester->testExportAll()) && p('status,message') && e('SUCCESS,全部记录导出流程测试成功'); // 全部记录导出流程测试
r($tester->testExportSelected()) && p('status,message') && e('SUCCESS,选中记录导出流程测试成功'); // 选中记录导出流程测试
$tester->closeBrowser();