You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2022/06/22 14:35:03 UTC

[incubator-devlake] branch main updated: refactor(tapd): add e2e for task

This is an automated email from the ASF dual-hosted git repository.

abeizn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/main by this push:
     new 2a557b77 refactor(tapd): add e2e for task
2a557b77 is described below

commit 2a557b77c99aa45709cff30b3a58b8860920db00
Author: Yingchu Chen <yi...@merico.dev>
AuthorDate: Wed Jun 22 16:07:43 2022 +0800

    refactor(tapd): add e2e for task
---
 plugins/tapd/e2e/bugs_test.go                      | 23 ++++++
 .../snapshot_tables/_tool_tapd_bug_statuses.csv    | 23 +++++-
 .../tapd/e2e/snapshot_tables/_tool_tapd_bugs.csv   | 42 +++++------
 .../snapshot_tables/_tool_tapd_iteration_tasks.csv |  1 +
 .../snapshot_tables/_tool_tapd_story_statuses.csv  | 44 ++++++------
 .../e2e/snapshot_tables/_tool_tapd_task_labels.csv |  1 +
 .../tapd/e2e/snapshot_tables/_tool_tapd_tasks.csv  | 16 +++++
 .../snapshot_tables/_tool_tapd_workspace_tasks.csv | 16 +++++
 .../e2e/snapshot_tables/_tool_tapd_workspaces.csv  | 11 +++
 .../tapd/e2e/snapshot_tables/board_issues_task.csv | 16 +++++
 .../tapd/e2e/snapshot_tables/issue_labels_task.csv |  1 +
 plugins/tapd/e2e/snapshot_tables/issues_bug.csv    | 18 ++---
 plugins/tapd/e2e/snapshot_tables/issues_task.csv   | 16 +++++
 .../e2e/snapshot_tables/sprint_issues_task.csv     | 16 +++++
 plugins/tapd/e2e/stories_test.go                   | 20 ++++++
 plugins/tapd/e2e/story_and_bug_status_test.go      |  6 +-
 .../tapd/e2e/{stories_test.go => tasks_test.go}    | 84 +++++++++-------------
 plugins/tapd/tasks/bug_converter.go                |  2 +-
 plugins/tapd/tasks/task_converter.go               | 19 +++--
 19 files changed, 258 insertions(+), 117 deletions(-)

diff --git a/plugins/tapd/e2e/bugs_test.go b/plugins/tapd/e2e/bugs_test.go
index 6a436490..291d9942 100644
--- a/plugins/tapd/e2e/bugs_test.go
+++ b/plugins/tapd/e2e/bugs_test.go
@@ -40,6 +40,29 @@ func TestTapdBugDataFlow(t *testing.T) {
 			WorkspaceId:  991,
 		},
 	}
+
+	// bug status
+	// import raw data table
+	dataflowTester.ImportCsvIntoRawTable("./raw_tables/_raw_tapd_api_bug_status.csv",
+		"_raw_tapd_api_bug_status")
+
+	// verify extraction
+	dataflowTester.FlushTabler(&models.TapdBugStatus{})
+	dataflowTester.Subtask(tasks.ExtractBugStatusMeta, taskData)
+	dataflowTester.VerifyTable(
+		models.TapdBugStatus{},
+		fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdBugStatus{}.TableName()),
+		[]string{"connection_id", "workspace_id", "english_name"},
+		[]string{
+			"chinese_name",
+			"is_last_step",
+			"_raw_data_params",
+			"_raw_data_table",
+			"_raw_data_id",
+			"_raw_data_remark",
+		},
+	)
+
 	// import raw data table
 	dataflowTester.ImportCsvIntoRawTable("./raw_tables/_raw_tapd_api_bugs.csv",
 		"_raw_tapd_api_bugs")
diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_statuses.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_statuses.csv
index d8963a2e..bf39da68 100644
--- a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_statuses.csv
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_statuses.csv
@@ -1 +1,22 @@
-connection_id,workspace_id,english_name,chinese_name,is_last_step,created_at,updated_at,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+connection_id,workspace_id,english_name,chinese_name,is_last_step,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,991,developing,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,planning,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,rejected,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,resolved,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_10,test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_11,test111test111test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_12,test111test111test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_13,test111test111test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_14,test111test111test111test111test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_15,test111test111test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_16,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_17,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_18,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_2,test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_3,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_4,test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_5,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_6,test111test111test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_7,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_8,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
+1,991,status_9,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bug_status,20,
diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bugs.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bugs.csv
index bdb59336..bb83a983 100644
--- a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bugs.csv
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bugs.csv
@@ -1,21 +1,21 @@
-connection_id,id,epic_key,title,description,workspace_id,created,modified,status,cc,begin,due,priority,iteration_id,source,module,release_id,created_from,feature,created_at,updated_at,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark,severity,reporter,resolved,closed,lastmodify,auditer,de,fixer,version_test,version_report,version_close,version_fix,baseline_find,baseline_join,baseline_close,baseline_test,sourcephase,te,current_owner,resolution,originphase,confirmer,participat [...]
-1,11991001001025,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11<a href=""http://insurance.hexun.com/index-0212.html"" target=""_blank"">http://insurance.hexun.com/index-0212.html</a>test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11< [...]
-1,11991001001030,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11<a href=""http://insurance.hexun.com/insurclass/"" target=""_blank"">http://insurance.hexun.com/insurclass/</ [...]
-1,11991001001031,,,<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11<br  /></div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11 [...]
-1,11991001001032,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11<a href=""http://insurance.hexun.com/bxjgdt/index.html"" target=""_blank"">http://insurance.hexun.com/bxjgdt/index.html</a>test-11 [...]
-1,11991001001417,,,<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11 [...]
-1,11991001001418,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-1 [...]
-1,11991001001420,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>3test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test- [...]
-1,11991001001422,,,"<div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11 [...]
-1,11991001001423,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test [...]
-1,11991001001425,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-1 [...]
-1,11991001001426,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-1 [...]
-1,11991001001447,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-1 [...]
-1,11991001001448,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-1 [...]
-1,11991001001450,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-1 [...]
-1,11991001001451,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-1 [...]
-1,11991001001710,,,<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11<br  /></div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11 [...]
-1,11991001001711,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11...test-11<br  /></div><div><br  /></div><div> [...]
-1,11991001001737,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>3test-11test-11test-11test-11test-11test-11test-11test-11</div><div>4test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  [...]
-1,11991001001739,,,"<div>操作步骤:</div><div>1、进入活动报名导航页</div><div>2、查看活动详情区域展示</div><div><br  /></div><div>预期结果:</div><div>活动详情区域展示正常</div><div><br  /></div><div>实际结果:</div><div>活动详情文字文字段落中多处地方异常添加了空格</div><div><br  /></div><div>备注:</div><div><img src=""/tfl/captures/2020-03/tapd_991_base64_1584516756_60.png"" width=""600"" style=""width: 600px;""  /><div><br  /></div></div>",991,2020-03-18T07:32:55.000+00:00,2020-03-26T09:02:37.000+00:00,,,,,medium,11991001000099,,PC端-区块链-三级页面,0,,,2022-06- [...]
-1,11991001001740,,,<div>操作步骤:</div><div>1、进入活动报名导航页</div><div>2、在专家展示区域点击专家头像或名字</div><div>3、查看页面跳转</div><div><br  /></div><div>预期结果:</div><div>页面跳转正常,跳转后地址正常</div><div><br  /></div><div>实际结果:</div><div>页面跳转正常,跳转后地址为区块链首页,应跳转到专家介绍页</div>,991,2020-03-18T07:37:43.000+00:00,2020-03-25T02:38:34.000+00:00,,,,,medium,11991001000099,,PC端-区块链-三级页面,0,,,2022-06-22T07:49:24.891+00:00,2022-06-22T07:49:24.891+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1290,,n [...]
+connection_id,id,epic_key,title,description,workspace_id,created,modified,status,cc,begin,due,priority,iteration_id,source,module,release_id,created_from,feature,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark,severity,reporter,resolved,closed,lastmodify,auditer,de,fixer,version_test,version_report,version_close,version_fix,baseline_find,baseline_join,baseline_close,baseline_test,sourcephase,te,current_owner,resolution,originphase,confirmer,participator,closer,platform,os, [...]
+1,11991001001025,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11<a href=""http://insurance.hexun.com/index-0212.html"" target=""_blank"">http://insurance.hexun.com/index-0212.html</a>test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11< [...]
+1,11991001001030,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11<a href=""http://insurance.hexun.com/insurclass/"" target=""_blank"">http://insurance.hexun.com/insurclass/</ [...]
+1,11991001001031,,,<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11<br  /></div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11 [...]
+1,11991001001032,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11<a href=""http://insurance.hexun.com/bxjgdt/index.html"" target=""_blank"">http://insurance.hexun.com/bxjgdt/index.html</a>test-11 [...]
+1,11991001001417,,,<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11 [...]
+1,11991001001418,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-1 [...]
+1,11991001001420,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>3test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test- [...]
+1,11991001001422,,,"<div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11 [...]
+1,11991001001423,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test [...]
+1,11991001001425,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-1 [...]
+1,11991001001426,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-1 [...]
+1,11991001001447,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-1 [...]
+1,11991001001448,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-1 [...]
+1,11991001001450,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-1 [...]
+1,11991001001451,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-1 [...]
+1,11991001001710,,,<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11<br  /></div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11 [...]
+1,11991001001711,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11...test-11<br  /></div><div><br  /></div><div> [...]
+1,11991001001737,,,"<div>test-11test-11test-11test-11test-11</div><div>1test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>2test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11</div><div>3test-11test-11test-11test-11test-11test-11test-11test-11</div><div>4test-11test-11test-11test-11test-11test-11test-11</div><div><br  /></div><div>test-11test-11test-11test-11test-11</div><div>test-11test-11test-11test-11test-11test-11</div><div><br  [...]
+1,11991001001739,,,"<div>操作步骤:</div><div>1、进入活动报名导航页</div><div>2、查看活动详情区域展示</div><div><br  /></div><div>预期结果:</div><div>活动详情区域展示正常</div><div><br  /></div><div>实际结果:</div><div>活动详情文字文字段落中多处地方异常添加了空格</div><div><br  /></div><div>备注:</div><div><img src=""/tfl/captures/2020-03/tapd_991_base64_1584516756_60.png"" width=""600"" style=""width: 600px;""  /><div><br  /></div></div>",991,2020-03-18T07:32:55.000+00:00,2020-03-26T09:02:37.000+00:00,,,,,medium,11991001000099,,PC端-区块链-三级页面,0,,,"{""Conn [...]
+1,11991001001740,,,<div>操作步骤:</div><div>1、进入活动报名导航页</div><div>2、在专家展示区域点击专家头像或名字</div><div>3、查看页面跳转</div><div><br  /></div><div>预期结果:</div><div>页面跳转正常,跳转后地址正常</div><div><br  /></div><div>实际结果:</div><div>页面跳转正常,跳转后地址为区块链首页,应跳转到专家介绍页</div>,991,2020-03-18T07:37:43.000+00:00,2020-03-25T02:38:34.000+00:00,test111test111test111,,,,medium,11991001000099,,PC端-区块链-三级页面,0,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1290,,normal,郝骁宵,,2020-03-24T08:44:24.000+00:0 [...]
diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_iteration_tasks.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_iteration_tasks.csv
new file mode 100644
index 00000000..a5f0574b
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_iteration_tasks.csv
@@ -0,0 +1 @@
+connection_id,workspace_id,iteration_id,task_id,resolution_date,task_created_date,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_statuses.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_statuses.csv
index bc13625d..8e0e67c1 100644
--- a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_statuses.csv
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_statuses.csv
@@ -1,22 +1,22 @@
-connection_id,workspace_id,english_name,chinese_name,is_last_step,created_at,updated_at,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-1,991,developing,test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,planning,test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,rejected,test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,resolved,test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_10,test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_11,test111test111test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_12,test111test111test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_13,test111test111test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_14,test111test111test111test111test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_15,test111test111test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_16,test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_17,test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_18,test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_2,test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_3,test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_4,test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_5,test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_6,test111test111test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_7,test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_8,test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
-1,991,status_9,test111test111test111,0,2022-06-22T03:57:39.864+00:00,2022-06-22T03:57:39.864+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+connection_id,workspace_id,english_name,chinese_name,is_last_step,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,991,developing,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,planning,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,rejected,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,resolved,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_10,test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_11,test111test111test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_12,test111test111test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_13,test111test111test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_14,test111test111test111test111test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_15,test111test111test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_16,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_17,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_18,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_2,test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_3,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_4,test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_5,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_6,test111test111test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_7,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_8,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
+1,991,status_9,test111test111test111,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_story_status,20,
diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_task_labels.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_task_labels.csv
new file mode 100644
index 00000000..17d9d4d5
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_task_labels.csv
@@ -0,0 +1 @@
+label_name,task_id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_tasks.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_tasks.csv
new file mode 100644
index 00000000..65938c4e
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_tasks.csv
@@ -0,0 +1,16 @@
+connection_id,id,name,description,workspace_id,creator,created,modified,status,owner,cc,begin,due,priority,iteration_id,completed,effort,effort_completed,exceed,remain,std_status,std_type,type,story_id,progress,has_attachment,url,attachment_count,follower,created_from,predecessor_count,successor_count,release_id,label,new_story_id,custom_field_one,custom_field_two,custom_field_three,custom_field_four,custom_field_five,custom_field6,custom_field7,custom_field8,custom_field9,custom_field10 [...]
+1,11991001015107,test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11,2020-11-03T09:52:00.000+00:00,2022-06-01T11:53:30.000+00:00,done,test-11test-11,,2020-11-02T16:00:00.000+00:00,2020-11-02T16:00:00.000+00:00,,0,2020-11-03T09:53:39.000+00:00,9,9,0,0,DONE,TASK,TASK,11991001001301,100,,https://www.tapd.cn/991/prong/stories/view/11991001015107,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_ta [...]
+1,11991001015121,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11;,2020-11-03T10:39:57.000+00:00,2020-11-03T10:40:17.000+00:00,done,test-11test-11,,2020-11-02T16:00:00.000+00:00,2020-11-02T16:00:00.000+00:00,,0,2020-11-03T10:40:17.000+00:00,9,9,0,0,DONE,TASK,TASK,0,100,,https://www.tapd.cn/991/prong/stories/view/11991001015121,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991} [...]
+1,11991001015142,test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11test-11,2020-11-03T10:58:43.000+00:00,2022-06-01T11:53:30.000+00:00,done,test-11test-11test-11,,2020-11-02T16:00:00.000+00:00,2020-11-02T16:00:00.000+00:00,,0,2020-11-03T11:00:18.000+00:00,9,9,0,0,DONE,TASK,TASK,11991001001301,100,,https://www.tapd.cn/991/prong/stories/view/11991001015142,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"" [...]
+1,11991001015184,test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11,2020-11-04T09:12:11.000+00:00,2022-06-01T11:53:30.000+00:00,done,test-11test-11,,2020-11-03T16:00:00.000+00:00,2020-11-03T16:00:00.000+00:00,,0,2020-11-04T09:14:22.000+00:00,9,9,0,0,DONE,TASK,TASK,11991001001301,100,,https://www.tapd.cn/991/prong/stories/view/11991001015184,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_ta [...]
+1,11991001015203,test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11test-11,2020-11-04T10:38:10.000+00:00,2022-06-01T11:53:30.000+00:00,done,test-11test-11test-11,,2020-11-03T16:00:00.000+00:00,2020-11-03T16:00:00.000+00:00,,0,2020-11-04T10:38:54.000+00:00,9,9,0,0,DONE,TASK,TASK,11991001001301,100,,https://www.tapd.cn/991/prong/stories/view/11991001015203,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"" [...]
+1,11991001015207,pctest-11test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11,2020-11-04T10:43:02.000+00:00,2020-11-10T11:01:47.000+00:00,done,test-11test-11,test-11test-11;,2020-11-03T16:00:00.000+00:00,2020-11-09T16:00:00.000+00:00,,0,2020-11-10T11:01:47.000+00:00,27,27,0,0,DONE,TASK,TASK,0,100,,https://www.tapd.cn/991/prong/stories/view/11991001015207,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"": [...]
+1,11991001015253,test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11,2020-11-05T08:49:42.000+00:00,2022-06-01T11:53:30.000+00:00,done,test-11test-11,,2020-11-04T16:00:00.000+00:00,2020-11-04T16:00:00.000+00:00,,0,2020-11-05T08:50:55.000+00:00,9,9,0,0,DONE,TASK,TASK,11991001001301,100,,https://www.tapd.cn/991/prong/stories/view/11991001015253,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_ta [...]
+1,11991001015307,Mtest-11test-11test-11test-11test-11,,991,test-11test-11,2020-11-05T11:12:13.000+00:00,2020-11-06T11:03:43.000+00:00,done,test-11test-11,,2020-11-04T16:00:00.000+00:00,2020-11-05T16:00:00.000+00:00,,0,2020-11-06T11:03:43.000+00:00,19,18,-1,0,DONE,TASK,TASK,0,100,,https://www.tapd.cn/991/prong/stories/view/11991001015307,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4346,
+1,11991001015309,test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11test-11,2020-11-05T11:14:41.000+00:00,2022-06-01T11:53:30.000+00:00,done,test-11test-11test-11,,2020-11-04T16:00:00.000+00:00,2020-11-04T16:00:00.000+00:00,,0,2020-11-05T11:16:00.000+00:00,9,9,0,0,DONE,TASK,TASK,11991001001301,100,,https://www.tapd.cn/991/prong/stories/view/11991001015309,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"" [...]
+1,11991001015340,test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11,2020-11-06T09:10:44.000+00:00,2022-06-01T11:53:30.000+00:00,done,test-11test-11,,2020-11-05T16:00:00.000+00:00,2020-11-05T16:00:00.000+00:00,,0,2020-11-06T09:12:19.000+00:00,9,9,0,0,DONE,TASK,TASK,11991001001301,100,,https://www.tapd.cn/991/prong/stories/view/11991001015340,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_ta [...]
+1,11991001015361,test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11test-11,2020-11-06T10:49:54.000+00:00,2022-06-01T11:53:30.000+00:00,done,test-11test-11test-11,,2020-11-05T16:00:00.000+00:00,2020-11-05T16:00:00.000+00:00,,0,2020-11-06T10:50:31.000+00:00,9,9,0,0,DONE,TASK,TASK,11991001001301,100,,https://www.tapd.cn/991/prong/stories/view/11991001015361,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"" [...]
+1,11991001015431,test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11test-11,2020-11-09T04:45:27.000+00:00,2022-06-01T11:53:30.000+00:00,done,test-11test-11test-11,,2020-11-08T16:00:00.000+00:00,2020-11-08T16:00:00.000+00:00,,0,2020-11-09T04:46:54.000+00:00,3,3,0,0,DONE,TASK,TASK,11991001001301,100,,https://www.tapd.cn/991/prong/stories/view/11991001015431,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"" [...]
+1,11991001015441,test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11,2020-11-09T09:14:15.000+00:00,2022-06-01T11:53:30.000+00:00,done,test-11test-11,,2020-11-08T16:00:00.000+00:00,2020-11-08T16:00:00.000+00:00,,0,2020-11-09T09:16:32.000+00:00,9,9,0,0,DONE,TASK,TASK,11991001001301,100,,https://www.tapd.cn/991/prong/stories/view/11991001015441,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_ta [...]
+1,11991001015452,Mtest-11test-11test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11,2020-11-09T10:22:28.000+00:00,2020-11-11T10:47:24.000+00:00,done,test-11test-11,,2020-11-08T16:00:00.000+00:00,2020-11-10T16:00:00.000+00:00,,0,2020-11-11T10:47:24.000+00:00,27,27,0,0,DONE,TASK,TASK,0,100,,https://www.tapd.cn/991/prong/stories/view/11991001015452,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_ra [...]
+1,11991001015583,test-11test-11test-11test-11test-11test-11test-11,,991,test-11test-11test-11,2020-11-10T03:45:34.000+00:00,2022-06-01T11:53:30.000+00:00,done,test-11test-11test-11,,2020-11-09T16:00:00.000+00:00,2020-11-09T16:00:00.000+00:00,,0,2020-11-10T03:47:30.000+00:00,3,3,0,0,DONE,TASK,TASK,11991001001301,100,,https://www.tapd.cn/991/prong/stories/view/11991001015583,0,,,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"" [...]
diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_workspace_tasks.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_workspace_tasks.csv
new file mode 100644
index 00000000..19faa5b0
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_workspace_tasks.csv
@@ -0,0 +1,16 @@
+connection_id,workspace_id,task_id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,991,11991001015107,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4339,
+1,991,11991001015121,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4340,
+1,991,11991001015142,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4341,
+1,991,11991001015184,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4342,
+1,991,11991001015203,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4343,
+1,991,11991001015207,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4344,
+1,991,11991001015253,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4345,
+1,991,11991001015307,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4346,
+1,991,11991001015309,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4347,
+1,991,11991001015340,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4348,
+1,991,11991001015361,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4349,
+1,991,11991001015431,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4350,
+1,991,11991001015441,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4351,
+1,991,11991001015452,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4352,
+1,991,11991001015583,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4353,
diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_workspaces.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_workspaces.csv
new file mode 100644
index 00000000..8bcf4b3d
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_workspaces.csv
@@ -0,0 +1,11 @@
+connection_id,id,name,pretty_name,category,status,description,begin_date,end_date,external_on,parent_id,creator,created,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,90,abc0,90,,closed,test-11test-11test-11test-11test-11test-11test-11test-11,,,,40907,huadd (huadd@abeizn.com),2020-01-03T02:47:15.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_companies,10,
+1,91,abc2,91,,normal,test-11test-11,,,,40908,feiwang (feiwang@abeizn.com),2019-12-12T07:45:04.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_companies,2,
+1,92,abc3,92,,normal,test-11test-11test-11test-11test-11test-11test-11,,,,40908,huadd (huadd@abeizn.com),2019-12-13T08:58:09.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_companies,3,
+1,93,abc4,93,,normal,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,,,,40908,huadd (huadd@abeizn.com),2019-12-23T03:08:30.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_companies,4,
+1,94,abc5,94,,normal,test-11test-11,,,,40908,chenzj (chenzj@abeizn.com),2019-12-26T10:18:28.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_companies,5,
+1,95,abc6,95,,closed,,,,,99,chenzj (chenzj@abeizn.com),2019-12-27T01:20:23.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_companies,6,
+1,96,abc7,96,,normal,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,,,,40908,huadd (huadd@abeizn.com),2020-01-03T00:59:08.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_companies,7,
+1,97,abc8,97,,normal,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,,,,40908,huadd (huadd@abeizn.com),2020-01-03T01:47:24.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_companies,8,
+1,98,abc9,98,,normal,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,,,,40907,huadd (huadd@abeizn.com),2020-01-03T01:52:45.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_companies,9,
+1,99,abc1,99,,normal,,,,,1,test-11test-11 (machang@abeizn.com),2019-11-29T07:55:53.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_companies,1,
diff --git a/plugins/tapd/e2e/snapshot_tables/board_issues_task.csv b/plugins/tapd/e2e/snapshot_tables/board_issues_task.csv
new file mode 100644
index 00000000..2f872622
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/board_issues_task.csv
@@ -0,0 +1,16 @@
+board_id,issue_id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015107,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4339,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015121,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4340,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015142,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4341,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015184,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4342,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015203,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4343,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015207,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4344,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015253,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4345,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015307,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4346,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015309,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4347,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015340,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4348,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015361,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4349,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015431,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4350,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015441,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4351,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015452,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4352,
+tapd:TapdWorkspace:991,tapd:TapdIssue:1:11991001015583,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4353,
diff --git a/plugins/tapd/e2e/snapshot_tables/issue_labels_task.csv b/plugins/tapd/e2e/snapshot_tables/issue_labels_task.csv
new file mode 100644
index 00000000..890ab741
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/issue_labels_task.csv
@@ -0,0 +1 @@
+issue_id,label_name,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
diff --git a/plugins/tapd/e2e/snapshot_tables/issues_bug.csv b/plugins/tapd/e2e/snapshot_tables/issues_bug.csv
index 1282f25e..1fb263b7 100644
--- a/plugins/tapd/e2e/snapshot_tables/issues_bug.csv
+++ b/plugins/tapd/e2e/snapshot_tables/issues_bug.csv
@@ -3,19 +3,19 @@ tapd:TapdIssue:1:11991001001025,"{""ConnectionId"":1,""CompanyId"":99,""Workspac
 tapd:TapdIssue:1:11991001001030,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1272,,https://www.tapd.cn/991/prong/stories/view/11991001001030,11991001001030,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11.,tapd:TapdUser:1:991:,,normal,,,test-11test-11.
 tapd:TapdIssue:1:11991001001031,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1273,,https://www.tapd.cn/991/prong/stories/view/11991001001031,11991001001031,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11.,tapd:TapdUser:1:991:,,normal,,,test-11test-11.
 tapd:TapdIssue:1:11991001001032,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1274,,https://www.tapd.cn/991/prong/stories/view/11991001001032,11991001001032,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11.,tapd:TapdUser:1:991:,,normal,,,test-11test-11.
-tapd:TapdIssue:1:11991001001417,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1275,,https://www.tapd.cn/991/prong/stories/view/11991001001417,11991001001417,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
-tapd:TapdIssue:1:11991001001418,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1276,,https://www.tapd.cn/991/prong/stories/view/11991001001418,11991001001418,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
+tapd:TapdIssue:1:11991001001417,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1275,,https://www.tapd.cn/991/prong/stories/view/11991001001417,11991001001417,,,,BUG,IN_PROGRESS,test111test111test111,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
+tapd:TapdIssue:1:11991001001418,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1276,,https://www.tapd.cn/991/prong/stories/view/11991001001418,11991001001418,,,,BUG,IN_PROGRESS,test111test111test111,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
 tapd:TapdIssue:1:11991001001420,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1277,,https://www.tapd.cn/991/prong/stories/view/11991001001420,11991001001420,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:,,normal,,,test-11test-11test-11
-tapd:TapdIssue:1:11991001001422,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1278,,https://www.tapd.cn/991/prong/stories/view/11991001001422,11991001001422,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
-tapd:TapdIssue:1:11991001001423,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1279,,https://www.tapd.cn/991/prong/stories/view/11991001001423,11991001001423,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
+tapd:TapdIssue:1:11991001001422,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1278,,https://www.tapd.cn/991/prong/stories/view/11991001001422,11991001001422,,,,BUG,IN_PROGRESS,test111test111test111,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
+tapd:TapdIssue:1:11991001001423,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1279,,https://www.tapd.cn/991/prong/stories/view/11991001001423,11991001001423,,,,BUG,IN_PROGRESS,test111test111test111,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
 tapd:TapdIssue:1:11991001001425,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1280,,https://www.tapd.cn/991/prong/stories/view/11991001001425,11991001001425,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:,,normal,,,test-11test-11test-11
-tapd:TapdIssue:1:11991001001426,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1281,,https://www.tapd.cn/991/prong/stories/view/11991001001426,11991001001426,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
+tapd:TapdIssue:1:11991001001426,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1281,,https://www.tapd.cn/991/prong/stories/view/11991001001426,11991001001426,,,,BUG,IN_PROGRESS,test111test111test111,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
 tapd:TapdIssue:1:11991001001447,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1282,,https://www.tapd.cn/991/prong/stories/view/11991001001447,11991001001447,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:,,normal,,,test-11test-11test-11
-tapd:TapdIssue:1:11991001001448,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1283,,https://www.tapd.cn/991/prong/stories/view/11991001001448,11991001001448,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
+tapd:TapdIssue:1:11991001001448,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1283,,https://www.tapd.cn/991/prong/stories/view/11991001001448,11991001001448,,,,BUG,IN_PROGRESS,test111test111test111,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
 tapd:TapdIssue:1:11991001001450,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1284,,https://www.tapd.cn/991/prong/stories/view/11991001001450,11991001001450,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:,,normal,,,test-11test-11test-11
 tapd:TapdIssue:1:11991001001451,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1285,,https://www.tapd.cn/991/prong/stories/view/11991001001451,11991001001451,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:,,normal,,,test-11test-11test-11
-tapd:TapdIssue:1:11991001001710,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1286,,https://www.tapd.cn/991/prong/stories/view/11991001001710,11991001001710,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
-tapd:TapdIssue:1:11991001001711,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1287,,https://www.tapd.cn/991/prong/stories/view/11991001001711,11991001001711,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
+tapd:TapdIssue:1:11991001001710,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1286,,https://www.tapd.cn/991/prong/stories/view/11991001001710,11991001001710,,,,BUG,IN_PROGRESS,test111test111test111,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
+tapd:TapdIssue:1:11991001001711,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1287,,https://www.tapd.cn/991/prong/stories/view/11991001001711,11991001001711,,,,BUG,IN_PROGRESS,test111test111test111,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,normal,,,test-11test-11test-11
 tapd:TapdIssue:1:11991001001737,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1288,,https://www.tapd.cn/991/prong/stories/view/11991001001737,11991001001737,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:,,normal,,,test-11test-11test-11
 tapd:TapdIssue:1:11991001001739,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1289,,https://www.tapd.cn/991/prong/stories/view/11991001001739,11991001001739,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:郝骁宵,tapd:TapdUser:1:991:,,normal,,,郝骁宵
-tapd:TapdIssue:1:11991001001740,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1290,,https://www.tapd.cn/991/prong/stories/view/11991001001740,11991001001740,,,,BUG,IN_PROGRESS,,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:郝骁宵,tapd:TapdUser:1:991:郝骁宵,郝骁宵,normal,,,郝骁宵
+tapd:TapdIssue:1:11991001001740,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_bugs,1290,,https://www.tapd.cn/991/prong/stories/view/11991001001740,11991001001740,,,,BUG,IN_PROGRESS,test111test111test111,0,,,,0,tapd:TapdIssue:1:0,medium,0,0,0,tapd:TapdUser:1:991:郝骁宵,tapd:TapdUser:1:991:郝骁宵,郝骁宵,normal,,,郝骁宵
diff --git a/plugins/tapd/e2e/snapshot_tables/issues_task.csv b/plugins/tapd/e2e/snapshot_tables/issues_task.csv
new file mode 100644
index 00000000..eb9e9194
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/issues_task.csv
@@ -0,0 +1,16 @@
+id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark,url,issue_key,title,description,epic_key,type,status,original_status,story_point,resolution_date,created_date,updated_date,lead_time_minutes,parent_issue_id,priority,original_estimate_minutes,time_spent_minutes,time_remaining_minutes,creator_id,assignee_id,assignee_name,severity,component,icon_url,creator_name
+tapd:TapdIssue:1:11991001015107,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4339,,https://www.tapd.cn/991/prong/stories/view/11991001015107,11991001015107,test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-03T09:53:39.000+00:00,2020-11-03T09:52:00.000+00:00,2022-06-01T11:53:30.000+00:00,1,tapd:TapdIssue:1:11991001001301,,0,0,0,tapd:TapdUser:1:991:test-11test-11,tapd:TapdUser:1:991:test-11test-11,test-11test-11,,,,test-11test-11
+tapd:TapdIssue:1:11991001015121,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4340,,https://www.tapd.cn/991/prong/stories/view/11991001015121,11991001015121,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-03T10:40:17.000+00:00,2020-11-03T10:39:57.000+00:00,2020-11-03T10:40:17.000+00:00,0,tapd:TapdIssue:1:0,,0,0,0,tapd:TapdUser:1:991:test-11test-11;,tapd:TapdUser:1:991:test-11test-11,test-11test-11,,,,test [...]
+tapd:TapdIssue:1:11991001015142,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4341,,https://www.tapd.cn/991/prong/stories/view/11991001015142,11991001015142,test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-03T11:00:18.000+00:00,2020-11-03T10:58:43.000+00:00,2022-06-01T11:53:30.000+00:00,1,tapd:TapdIssue:1:11991001001301,,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11tes [...]
+tapd:TapdIssue:1:11991001015184,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4342,,https://www.tapd.cn/991/prong/stories/view/11991001015184,11991001015184,test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-04T09:14:22.000+00:00,2020-11-04T09:12:11.000+00:00,2022-06-01T11:53:30.000+00:00,2,tapd:TapdIssue:1:11991001001301,,0,0,0,tapd:TapdUser:1:991:test-11test-11,tapd:TapdUser:1:991:test-11test-11,test-11test-11,,,,test-11test-11
+tapd:TapdIssue:1:11991001015203,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4343,,https://www.tapd.cn/991/prong/stories/view/11991001015203,11991001015203,test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-04T10:38:54.000+00:00,2020-11-04T10:38:10.000+00:00,2022-06-01T11:53:30.000+00:00,0,tapd:TapdIssue:1:11991001001301,,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11tes [...]
+tapd:TapdIssue:1:11991001015207,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4344,,https://www.tapd.cn/991/prong/stories/view/11991001015207,11991001015207,pctest-11test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-10T11:01:47.000+00:00,2020-11-04T10:43:02.000+00:00,2020-11-10T11:01:47.000+00:00,8658,tapd:TapdIssue:1:0,,0,0,0,tapd:TapdUser:1:991:test-11test-11,tapd:TapdUser:1:991:test-11test-11,test-11test-11,,,,test-11test-11
+tapd:TapdIssue:1:11991001015253,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4345,,https://www.tapd.cn/991/prong/stories/view/11991001015253,11991001015253,test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-05T08:50:55.000+00:00,2020-11-05T08:49:42.000+00:00,2022-06-01T11:53:30.000+00:00,1,tapd:TapdIssue:1:11991001001301,,0,0,0,tapd:TapdUser:1:991:test-11test-11,tapd:TapdUser:1:991:test-11test-11,test-11test-11,,,,test-11test-11
+tapd:TapdIssue:1:11991001015307,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4346,,https://www.tapd.cn/991/prong/stories/view/11991001015307,11991001015307,Mtest-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-06T11:03:43.000+00:00,2020-11-05T11:12:13.000+00:00,2020-11-06T11:03:43.000+00:00,1431,tapd:TapdIssue:1:0,,0,0,0,tapd:TapdUser:1:991:test-11test-11,tapd:TapdUser:1:991:test-11test-11,test-11test-11,,,,test-11test-11
+tapd:TapdIssue:1:11991001015309,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4347,,https://www.tapd.cn/991/prong/stories/view/11991001015309,11991001015309,test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-05T11:16:00.000+00:00,2020-11-05T11:14:41.000+00:00,2022-06-01T11:53:30.000+00:00,1,tapd:TapdIssue:1:11991001001301,,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11tes [...]
+tapd:TapdIssue:1:11991001015340,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4348,,https://www.tapd.cn/991/prong/stories/view/11991001015340,11991001015340,test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-06T09:12:19.000+00:00,2020-11-06T09:10:44.000+00:00,2022-06-01T11:53:30.000+00:00,1,tapd:TapdIssue:1:11991001001301,,0,0,0,tapd:TapdUser:1:991:test-11test-11,tapd:TapdUser:1:991:test-11test-11,test-11test-11,,,,test-11test-11
+tapd:TapdIssue:1:11991001015361,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4349,,https://www.tapd.cn/991/prong/stories/view/11991001015361,11991001015361,test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-06T10:50:31.000+00:00,2020-11-06T10:49:54.000+00:00,2022-06-01T11:53:30.000+00:00,0,tapd:TapdIssue:1:11991001001301,,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11tes [...]
+tapd:TapdIssue:1:11991001015431,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4350,,https://www.tapd.cn/991/prong/stories/view/11991001015431,11991001015431,test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-09T04:46:54.000+00:00,2020-11-09T04:45:27.000+00:00,2022-06-01T11:53:30.000+00:00,1,tapd:TapdIssue:1:11991001001301,,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11tes [...]
+tapd:TapdIssue:1:11991001015441,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4351,,https://www.tapd.cn/991/prong/stories/view/11991001015441,11991001015441,test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-09T09:16:32.000+00:00,2020-11-09T09:14:15.000+00:00,2022-06-01T11:53:30.000+00:00,2,tapd:TapdIssue:1:11991001001301,,0,0,0,tapd:TapdUser:1:991:test-11test-11,tapd:TapdUser:1:991:test-11test-11,test-11test-11,,,,test-11test-11
+tapd:TapdIssue:1:11991001015452,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4352,,https://www.tapd.cn/991/prong/stories/view/11991001015452,11991001015452,Mtest-11test-11test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-11T10:47:24.000+00:00,2020-11-09T10:22:28.000+00:00,2020-11-11T10:47:24.000+00:00,2904,tapd:TapdIssue:1:0,,0,0,0,tapd:TapdUser:1:991:test-11test-11,tapd:TapdUser:1:991:test-11test-11,test-11test-11,,,,test-11test-11
+tapd:TapdIssue:1:11991001015583,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4353,,https://www.tapd.cn/991/prong/stories/view/11991001015583,11991001015583,test-11test-11test-11test-11test-11test-11test-11,,,TASK,DONE,done,0,2020-11-10T03:47:30.000+00:00,2020-11-10T03:45:34.000+00:00,2022-06-01T11:53:30.000+00:00,1,tapd:TapdIssue:1:11991001001301,,0,0,0,tapd:TapdUser:1:991:test-11test-11test-11,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11tes [...]
diff --git a/plugins/tapd/e2e/snapshot_tables/sprint_issues_task.csv b/plugins/tapd/e2e/snapshot_tables/sprint_issues_task.csv
new file mode 100644
index 00000000..fd1ee4ee
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/sprint_issues_task.csv
@@ -0,0 +1,16 @@
+issue_id,sprint_id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+tapd:TapdIssue:1:11991001015107,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4339,
+tapd:TapdIssue:1:11991001015121,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4340,
+tapd:TapdIssue:1:11991001015142,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4341,
+tapd:TapdIssue:1:11991001015184,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4342,
+tapd:TapdIssue:1:11991001015203,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4343,
+tapd:TapdIssue:1:11991001015207,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4344,
+tapd:TapdIssue:1:11991001015253,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4345,
+tapd:TapdIssue:1:11991001015307,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4346,
+tapd:TapdIssue:1:11991001015309,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4347,
+tapd:TapdIssue:1:11991001015340,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4348,
+tapd:TapdIssue:1:11991001015361,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4349,
+tapd:TapdIssue:1:11991001015431,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4350,
+tapd:TapdIssue:1:11991001015441,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4351,
+tapd:TapdIssue:1:11991001015452,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4352,
+tapd:TapdIssue:1:11991001015583,tapd:TapdIteration:1:0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceId"":991}",_raw_tapd_api_tasks,4353,
diff --git a/plugins/tapd/e2e/stories_test.go b/plugins/tapd/e2e/stories_test.go
index 7e3f092a..defe147d 100644
--- a/plugins/tapd/e2e/stories_test.go
+++ b/plugins/tapd/e2e/stories_test.go
@@ -40,6 +40,26 @@ func TestTapdStoryDataFlow(t *testing.T) {
 			WorkspaceId:  991,
 		},
 	}
+	dataflowTester.ImportCsvIntoRawTable("./raw_tables/_raw_tapd_api_story_status.csv",
+		"_raw_tapd_api_story_status")
+
+	// verify extraction
+	dataflowTester.FlushTabler(&models.TapdStoryStatus{})
+	dataflowTester.Subtask(tasks.ExtractStoryStatusMeta, taskData)
+	dataflowTester.VerifyTable(
+		models.TapdStoryStatus{},
+		fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdStoryStatus{}.TableName()),
+		[]string{"connection_id", "workspace_id", "english_name"},
+		[]string{
+			"chinese_name",
+			"is_last_step",
+			"_raw_data_params",
+			"_raw_data_table",
+			"_raw_data_id",
+			"_raw_data_remark",
+		},
+	)
+
 	// import raw data table
 	dataflowTester.ImportCsvIntoRawTable("./raw_tables/_raw_tapd_api_stories.csv",
 		"_raw_tapd_api_stories")
diff --git a/plugins/tapd/e2e/story_and_bug_status_test.go b/plugins/tapd/e2e/story_and_bug_status_test.go
index efddcaff..ee4b6944 100644
--- a/plugins/tapd/e2e/story_and_bug_status_test.go
+++ b/plugins/tapd/e2e/story_and_bug_status_test.go
@@ -54,8 +54,6 @@ func TestTapdStoryAndBugStatusDataFlow(t *testing.T) {
 		[]string{
 			"chinese_name",
 			"is_last_step",
-			"created_at",
-			"updated_at",
 			"_raw_data_params",
 			"_raw_data_table",
 			"_raw_data_id",
@@ -70,7 +68,7 @@ func TestTapdStoryAndBugStatusDataFlow(t *testing.T) {
 
 	// verify extraction
 	dataflowTester.FlushTabler(&models.TapdBugStatus{})
-	dataflowTester.Subtask(tasks.ExtractStoryStatusMeta, taskData)
+	dataflowTester.Subtask(tasks.ExtractBugStatusMeta, taskData)
 	dataflowTester.VerifyTable(
 		models.TapdBugStatus{},
 		fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdBugStatus{}.TableName()),
@@ -78,8 +76,6 @@ func TestTapdStoryAndBugStatusDataFlow(t *testing.T) {
 		[]string{
 			"chinese_name",
 			"is_last_step",
-			"created_at",
-			"updated_at",
 			"_raw_data_params",
 			"_raw_data_table",
 			"_raw_data_id",
diff --git a/plugins/tapd/e2e/stories_test.go b/plugins/tapd/e2e/tasks_test.go
similarity index 76%
copy from plugins/tapd/e2e/stories_test.go
copy to plugins/tapd/e2e/tasks_test.go
index 7e3f092a..443bfdcf 100644
--- a/plugins/tapd/e2e/stories_test.go
+++ b/plugins/tapd/e2e/tasks_test.go
@@ -28,7 +28,7 @@ import (
 	"github.com/apache/incubator-devlake/plugins/tapd/tasks"
 )
 
-func TestTapdStoryDataFlow(t *testing.T) {
+func TestTapdTaskDataFlow(t *testing.T) {
 
 	var tapd impl.Tapd
 	dataflowTester := e2ehelper.NewDataFlowTester(t, "tapd", tapd)
@@ -41,21 +41,20 @@ func TestTapdStoryDataFlow(t *testing.T) {
 		},
 	}
 	// import raw data table
-	dataflowTester.ImportCsvIntoRawTable("./raw_tables/_raw_tapd_api_stories.csv",
-		"_raw_tapd_api_stories")
+	dataflowTester.ImportCsvIntoRawTable("./raw_tables/_raw_tapd_api_tasks.csv",
+		"_raw_tapd_api_tasks")
 
 	// verify extraction
-	dataflowTester.FlushTabler(&models.TapdStory{})
-	dataflowTester.FlushTabler(&models.TapdWorkSpaceStory{})
-	dataflowTester.FlushTabler(&models.TapdIterationStory{})
-	dataflowTester.FlushTabler(&models.TapdStoryLabel{})
-	dataflowTester.Subtask(tasks.ExtractStoryMeta, taskData)
+	dataflowTester.FlushTabler(&models.TapdTask{})
+	dataflowTester.FlushTabler(&models.TapdWorkSpaceTask{})
+	dataflowTester.FlushTabler(&models.TapdIterationTask{})
+	dataflowTester.FlushTabler(&models.TapdTaskLabel{})
+	dataflowTester.Subtask(tasks.ExtractTaskMeta, taskData)
 	dataflowTester.VerifyTable(
-		models.TapdStory{},
-		fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdStory{}.TableName()),
+		models.TapdTask{},
+		fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdTask{}.TableName()),
 		[]string{"connection_id", "id"},
 		[]string{
-			"workitem_type_id",
 			"name",
 			"description",
 			"workspace_id",
@@ -67,45 +66,28 @@ func TestTapdStoryDataFlow(t *testing.T) {
 			"cc",
 			"begin",
 			"due",
-			"size",
 			"priority",
-			"developer",
 			"iteration_id",
-			"test_focus",
-			"type",
-			"source",
-			"module",
-			"version",
 			"completed",
-			"category_id",
-			"path",
-			"parent_id",
-			"children_id",
-			"ancestor_id",
-			"business_value",
 			"effort",
 			"effort_completed",
 			"exceed",
 			"remain",
-			"release_id",
-			"confidential",
-			"templated_id",
-			"created_from",
-			"feature",
 			"std_status",
 			"std_type",
+			"type",
+			"story_id",
+			"progress",
+			"has_attachment",
 			"url",
 			"attachment_count",
-			"has_attachment",
-			"bug_id",
 			"follower",
-			"sync_type",
+			"created_from",
 			"predecessor_count",
-			"is_archived",
-			"modifier",
-			"progress_manual",
 			"successor_count",
+			"release_id",
 			"label",
+			"new_story_id",
 			"custom_field_one",
 			"custom_field_two",
 			"custom_field_three",
@@ -163,12 +145,12 @@ func TestTapdStoryDataFlow(t *testing.T) {
 		},
 	)
 	dataflowTester.VerifyTable(
-		models.TapdWorkSpaceStory{},
-		fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdWorkSpaceStory{}.TableName()),
+		models.TapdWorkSpaceTask{},
+		fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdWorkSpaceTask{}.TableName()),
 		[]string{
 			"connection_id",
 			"workspace_id",
-			"story_id",
+			"task_id",
 		},
 		[]string{
 			"_raw_data_params",
@@ -178,17 +160,17 @@ func TestTapdStoryDataFlow(t *testing.T) {
 		},
 	)
 	dataflowTester.VerifyTable(
-		models.TapdIterationStory{},
-		fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdIterationStory{}.TableName()),
+		models.TapdIterationTask{},
+		fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdIterationTask{}.TableName()),
 		[]string{
 			"connection_id",
 			"workspace_id",
 			"iteration_id",
-			"story_id",
+			"task_id",
 		},
 		[]string{
 			"resolution_date",
-			"story_created_date",
+			"task_created_date",
 			"_raw_data_params",
 			"_raw_data_table",
 			"_raw_data_id",
@@ -196,11 +178,11 @@ func TestTapdStoryDataFlow(t *testing.T) {
 		},
 	)
 	dataflowTester.VerifyTable(
-		models.TapdStoryLabel{},
-		fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdStoryLabel{}.TableName()),
+		models.TapdTaskLabel{},
+		fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdTaskLabel{}.TableName()),
 		[]string{
 			"label_name",
-			"story_id",
+			"task_id",
 		},
 		[]string{
 			"_raw_data_params",
@@ -214,10 +196,10 @@ func TestTapdStoryDataFlow(t *testing.T) {
 	dataflowTester.FlushTabler(&ticket.BoardIssue{})
 	dataflowTester.FlushTabler(&ticket.SprintIssue{})
 	dataflowTester.FlushTabler(&ticket.IssueLabel{})
-	dataflowTester.Subtask(tasks.ConvertStoryMeta, taskData)
+	dataflowTester.Subtask(tasks.ConvertTaskMeta, taskData)
 	dataflowTester.VerifyTable(
 		ticket.Issue{},
-		fmt.Sprintf("./snapshot_tables/%s_story.csv", ticket.Issue{}.TableName()),
+		fmt.Sprintf("./snapshot_tables/%s_task.csv", ticket.Issue{}.TableName()),
 		[]string{"id"},
 		[]string{
 			"_raw_data_params",
@@ -253,7 +235,7 @@ func TestTapdStoryDataFlow(t *testing.T) {
 	)
 	dataflowTester.VerifyTable(
 		ticket.BoardIssue{},
-		fmt.Sprintf("./snapshot_tables/%s_story.csv", ticket.BoardIssue{}.TableName()),
+		fmt.Sprintf("./snapshot_tables/%s_task.csv", ticket.BoardIssue{}.TableName()),
 		[]string{
 			"board_id",
 			"issue_id",
@@ -267,7 +249,7 @@ func TestTapdStoryDataFlow(t *testing.T) {
 	)
 	dataflowTester.VerifyTable(
 		ticket.SprintIssue{},
-		fmt.Sprintf("./snapshot_tables/%s_story.csv", ticket.SprintIssue{}.TableName()),
+		fmt.Sprintf("./snapshot_tables/%s_task.csv", ticket.SprintIssue{}.TableName()),
 		[]string{
 			"issue_id",
 			"sprint_id",
@@ -279,10 +261,10 @@ func TestTapdStoryDataFlow(t *testing.T) {
 			"_raw_data_remark",
 		},
 	)
-	dataflowTester.Subtask(tasks.ConvertStoryLabelsMeta, taskData)
+	dataflowTester.Subtask(tasks.ConvertTaskLabelsMeta, taskData)
 	dataflowTester.VerifyTable(
 		ticket.IssueLabel{},
-		fmt.Sprintf("./snapshot_tables/%s_story.csv", ticket.IssueLabel{}.TableName()),
+		fmt.Sprintf("./snapshot_tables/%s_task.csv", ticket.IssueLabel{}.TableName()),
 		[]string{
 			"issue_id",
 			"label_name",
diff --git a/plugins/tapd/tasks/bug_converter.go b/plugins/tapd/tasks/bug_converter.go
index 23413ee1..b075d607 100644
--- a/plugins/tapd/tasks/bug_converter.go
+++ b/plugins/tapd/tasks/bug_converter.go
@@ -80,7 +80,7 @@ func ConvertBug(taskCtx core.SubTaskContext) error {
 				OriginalStatus: toolL.Status,
 			}
 			if domainL.ResolutionDate != nil && domainL.CreatedDate != nil {
-				domainL.LeadTimeMinutes = uint(int64(domainL.ResolutionDate.Minute() - domainL.CreatedDate.Minute()))
+				domainL.LeadTimeMinutes = uint(domainL.ResolutionDate.Sub(*domainL.CreatedDate).Minutes())
 			}
 			results := make([]interface{}, 0, 2)
 			boardIssue := &ticket.BoardIssue{
diff --git a/plugins/tapd/tasks/task_converter.go b/plugins/tapd/tasks/task_converter.go
index b599fdec..a0e8b27a 100644
--- a/plugins/tapd/tasks/task_converter.go
+++ b/plugins/tapd/tasks/task_converter.go
@@ -18,6 +18,7 @@ limitations under the License.
 package tasks
 
 import (
+	"github.com/apache/incubator-devlake/models/domainlayer/didgen"
 	"reflect"
 	"strconv"
 	"time"
@@ -47,6 +48,10 @@ func ConvertTask(taskCtx core.SubTaskContext) error {
 		return err
 	}
 	defer cursor.Close()
+	issueIdGen := didgen.NewDomainIdGenerator(&models.TapdIssue{})
+	userIdGen := didgen.NewDomainIdGenerator(&models.TapdUser{})
+	workspaceIdGen := didgen.NewDomainIdGenerator(&models.TapdWorkspace{})
+	iterIdGen := didgen.NewDomainIdGenerator(&models.TapdIteration{})
 	converter, err := helper.NewDataConverter(helper.DataConverterArgs{
 		RawDataSubTaskArgs: *rawDataSubTaskArgs,
 		InputRowType:       reflect.TypeOf(models.TapdTask{}),
@@ -55,7 +60,7 @@ func ConvertTask(taskCtx core.SubTaskContext) error {
 			toolL := inputRow.(*models.TapdTask)
 			domainL := &ticket.Issue{
 				DomainEntity: domainlayer.DomainEntity{
-					Id: IssueIdGen.Generate(toolL.ConnectionId, toolL.Id),
+					Id: issueIdGen.Generate(toolL.ConnectionId, toolL.Id),
 				},
 				Url:            toolL.Url,
 				IssueKey:       strconv.FormatUint(toolL.Id, 10),
@@ -67,23 +72,23 @@ func ConvertTask(taskCtx core.SubTaskContext) error {
 				ResolutionDate: (*time.Time)(toolL.Completed),
 				CreatedDate:    (*time.Time)(toolL.Created),
 				UpdatedDate:    (*time.Time)(toolL.Modified),
-				ParentIssueId:  IssueIdGen.Generate(toolL.ConnectionId, toolL.StoryId),
+				ParentIssueId:  issueIdGen.Generate(toolL.ConnectionId, toolL.StoryId),
 				Priority:       toolL.Priority,
-				CreatorId:      UserIdGen.Generate(data.Options.ConnectionId, toolL.WorkspaceId, toolL.Creator),
+				CreatorId:      userIdGen.Generate(data.Options.ConnectionId, toolL.WorkspaceId, toolL.Creator),
 				CreatorName:    toolL.Creator,
-				AssigneeId:     UserIdGen.Generate(data.Options.ConnectionId, toolL.WorkspaceId, toolL.Owner),
+				AssigneeId:     userIdGen.Generate(data.Options.ConnectionId, toolL.WorkspaceId, toolL.Owner),
 				AssigneeName:   toolL.Owner,
 			}
 			if domainL.ResolutionDate != nil && domainL.CreatedDate != nil {
-				domainL.LeadTimeMinutes = uint(int64(domainL.ResolutionDate.Minute() - domainL.CreatedDate.Minute()))
+				domainL.LeadTimeMinutes = uint(domainL.ResolutionDate.Sub(*domainL.CreatedDate).Minutes())
 			}
 			results := make([]interface{}, 0, 2)
 			boardIssue := &ticket.BoardIssue{
-				BoardId: WorkspaceIdGen.Generate(toolL.WorkspaceId),
+				BoardId: workspaceIdGen.Generate(toolL.WorkspaceId),
 				IssueId: domainL.Id,
 			}
 			sprintIssue := &ticket.SprintIssue{
-				SprintId: IterIdGen.Generate(data.Options.ConnectionId, toolL.IterationId),
+				SprintId: iterIdGen.Generate(data.Options.ConnectionId, toolL.IterationId),
 				IssueId:  domainL.Id,
 			}
 			results = append(results, domainL, boardIssue, sprintIssue)