Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zentaoatf
提交
249aa874
Z
zentaoatf
项目概览
易企天创
/
zentaoatf
9 个月 前同步成功
通知
11
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
3
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zentaoatf
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
3
Issue
3
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
249aa874
编写于
9月 13, 2022
作者:
雨
雨爱无痕
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add test script
上级
b78f0837
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
552 addition
and
7 deletion
+552
-7
test/ui_log_test.go
test/ui_log_test.go
+192
-0
test/ui_product_test.go
test/ui_product_test.go
+96
-0
test/ui_run_test.go
test/ui_run_test.go
+108
-1
test/ui_script_test.go
test/ui_script_test.go
+70
-2
test/ui_workspace_test.go
test/ui_workspace_test.go
+80
-0
ui/src/locales/en-US.ts
ui/src/locales/en-US.ts
+2
-1
ui/src/locales/zh-CN.ts
ui/src/locales/zh-CN.ts
+2
-1
ui/src/views/exec/LogPanel.vue
ui/src/views/exec/LogPanel.vue
+1
-1
ui/src/views/script/WorkDirPanel.vue
ui/src/views/script/WorkDirPanel.vue
+1
-1
未找到文件。
test/ui_log_test.go
0 → 100644
浏览文件 @
249aa874
package
main
import
(
"testing"
"github.com/ozontech/allure-go/pkg/framework/provider"
"github.com/ozontech/allure-go/pkg/framework/runner"
playwright
"github.com/playwright-community/playwright-go"
)
var
logBrowser
playwright
.
Browser
func
CollapseLog
(
t
provider
.
T
)
{
t
.
ID
(
"5502"
)
t
.
AddParentSuite
(
"脚本执行日志"
)
pw
,
err
:=
playwright
.
Run
()
if
err
!=
nil
{
t
.
Error
(
err
)
t
.
FailNow
()
}
headless
:=
true
var
slowMo
float64
=
100
logBrowser
,
err
:=
pw
.
Chromium
.
Launch
(
playwright
.
BrowserTypeLaunchOptions
{
Headless
:
&
headless
,
SlowMo
:
&
slowMo
})
if
err
!=
nil
{
t
.
Errorf
(
"Fail to launch the web logBrowser: %v"
,
err
)
t
.
FailNow
()
}
page
,
err
:=
logBrowser
.
NewPage
()
if
err
!=
nil
{
t
.
Errorf
(
"Create the new page fail: %v"
,
err
)
t
.
FailNow
()
}
if
_
,
err
=
page
.
Goto
(
"http://127.0.0.1:8000/"
,
playwright
.
PageGotoOptions
{
WaitUntil
:
playwright
.
WaitUntilStateDomcontentloaded
});
err
!=
nil
{
t
.
Errorf
(
"The specific URL is missing: %v"
,
err
)
t
.
FailNow
()
}
_
,
err
=
page
.
WaitForSelector
(
".tree-node"
)
if
err
!=
nil
{
t
.
Errorf
(
"Wait tree-node fail: %v"
,
err
)
t
.
FailNow
()
}
locator
,
err
:=
page
.
Locator
(
".tree-node"
,
playwright
.
PageLocatorOptions
{
HasText
:
"单元测试工作目录"
})
c
,
err
:=
locator
.
Count
()
if
err
!=
nil
||
c
==
0
{
t
.
Errorf
(
"Find workspace fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
locator
.
Click
()
if
err
!=
nil
{
t
.
Errorf
(
"Click node fail: %v"
,
err
)
t
.
FailNow
()
}
scriptLocator
,
err
:=
locator
.
Locator
(
"text=1_string_match.php"
)
if
err
!=
nil
{
t
.
Errorf
(
"Find 1_string_match.php fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
scriptLocator
.
Click
()
if
err
!=
nil
{
t
.
Errorf
(
"Click script fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
page
.
Click
(
".tabs-nav-toolbar>>[title=
\"
Run
\"
]"
)
if
err
!=
nil
{
t
.
Errorf
(
"Click run fail: %v"
,
err
)
t
.
FailNow
()
}
_
,
err
=
page
.
WaitForSelector
(
"#log-list>>.msg-span>>:has-text('执行1个用例,耗时')"
)
if
err
!=
nil
{
t
.
Errorf
(
"Wait exec result fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
page
.
Click
(
".btn[title=
\"
展开所有
\"
]"
)
if
err
!=
nil
{
t
.
Errorf
(
"Click expand btn fail: %v"
,
err
)
t
.
FailNow
()
}
locator
,
_
=
page
.
Locator
(
"#log-list>>.show-detail>>:has-text('[Expect]')"
)
count
,
_
:=
locator
.
Count
()
if
count
==
0
{
t
.
Error
(
"Find expanded log fail"
)
t
.
FailNow
()
}
page
.
WaitForTimeout
(
100
)
err
=
page
.
Click
(
".btn[title=
\"
折叠所有
\"
]"
)
if
err
!=
nil
{
t
.
Errorf
(
"Click Collapse btn fail: %v"
,
err
)
t
.
FailNow
()
}
locator
,
_
=
page
.
Locator
(
"#log-list>>.show-detail>>:has-text('[Expect]')"
)
count
,
_
=
locator
.
Count
()
if
count
>
0
{
t
.
Error
(
"Find Collapsed log fail"
)
t
.
FailNow
()
}
if
err
=
logBrowser
.
Close
();
err
!=
nil
{
t
.
Errorf
(
"The logBrowser cannot be closed: %v"
,
err
)
t
.
FailNow
()
}
if
err
=
pw
.
Stop
();
err
!=
nil
{
t
.
Errorf
(
"The playwright cannot be stopped: %v"
,
err
)
t
.
FailNow
()
}
}
func
FullScreenLog
(
t
provider
.
T
)
{
t
.
ID
(
"5502"
)
t
.
AddParentSuite
(
"脚本执行日志"
)
pw
,
err
:=
playwright
.
Run
()
if
err
!=
nil
{
t
.
Error
(
err
)
t
.
FailNow
()
}
headless
:=
true
var
slowMo
float64
=
100
logBrowser
,
err
:=
pw
.
Chromium
.
Launch
(
playwright
.
BrowserTypeLaunchOptions
{
Headless
:
&
headless
,
SlowMo
:
&
slowMo
})
if
err
!=
nil
{
t
.
Errorf
(
"Fail to launch the web logBrowser: %v"
,
err
)
t
.
FailNow
()
}
page
,
err
:=
logBrowser
.
NewPage
()
if
err
!=
nil
{
t
.
Errorf
(
"Create the new page fail: %v"
,
err
)
t
.
FailNow
()
}
if
_
,
err
=
page
.
Goto
(
"http://127.0.0.1:8000/"
,
playwright
.
PageGotoOptions
{
WaitUntil
:
playwright
.
WaitUntilStateDomcontentloaded
});
err
!=
nil
{
t
.
Errorf
(
"The specific URL is missing: %v"
,
err
)
t
.
FailNow
()
}
_
,
err
=
page
.
WaitForSelector
(
".tree-node"
)
if
err
!=
nil
{
t
.
Errorf
(
"Wait tree-node fail: %v"
,
err
)
t
.
FailNow
()
}
locator
,
err
:=
page
.
Locator
(
".tree-node"
,
playwright
.
PageLocatorOptions
{
HasText
:
"单元测试工作目录"
})
c
,
err
:=
locator
.
Count
()
if
err
!=
nil
||
c
==
0
{
t
.
Errorf
(
"Find workspace fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
locator
.
Click
()
if
err
!=
nil
{
t
.
Errorf
(
"Click node fail: %v"
,
err
)
t
.
FailNow
()
}
scriptLocator
,
err
:=
locator
.
Locator
(
"text=1_string_match.php"
)
if
err
!=
nil
{
t
.
Errorf
(
"Find 1_string_match.php fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
scriptLocator
.
Click
()
if
err
!=
nil
{
t
.
Errorf
(
"Click script fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
page
.
Click
(
".tabs-nav-toolbar>>[title=
\"
Run
\"
]"
)
if
err
!=
nil
{
t
.
Errorf
(
"Click run fail: %v"
,
err
)
t
.
FailNow
()
}
_
,
err
=
page
.
WaitForSelector
(
"#log-list>>.msg-span>>:has-text('执行1个用例,耗时')"
)
if
err
!=
nil
{
t
.
Errorf
(
"Wait exec result fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
page
.
Click
(
".btn[title=
\"
向上展开
\"
]"
)
if
err
!=
nil
{
t
.
Errorf
(
"Click Collapse btn fail: %v"
,
err
)
t
.
FailNow
()
}
page
.
WaitForTimeout
(
100
)
isHidden
,
err
:=
page
.
IsHidden
(
"#tabsPane"
)
if
!
isHidden
{
t
.
Errorf
(
"Full Screen fail: %v"
,
err
)
t
.
FailNow
()
}
if
err
=
logBrowser
.
Close
();
err
!=
nil
{
t
.
Errorf
(
"The logBrowser cannot be closed: %v"
,
err
)
t
.
FailNow
()
}
if
err
=
pw
.
Stop
();
err
!=
nil
{
t
.
Errorf
(
"The playwright cannot be stopped: %v"
,
err
)
t
.
FailNow
()
}
}
func
TestUiLog
(
t
*
testing
.
T
)
{
runner
.
Run
(
t
,
"客户端-展开折叠执行日志"
,
CollapseLog
)
runner
.
Run
(
t
,
"客户端-最大化脚本执行日志"
,
FullScreenLog
)
}
test/ui_product_test.go
0 → 100644
浏览文件 @
249aa874
package
main
import
(
"fmt"
"testing"
"github.com/ozontech/allure-go/pkg/framework/provider"
"github.com/ozontech/allure-go/pkg/framework/runner"
playwright
"github.com/playwright-community/playwright-go"
)
var
productBrowser
playwright
.
Browser
func
SwitchProduct
(
t
provider
.
T
)
{
t
.
ID
(
"5496"
)
t
.
AddParentSuite
(
"切换禅道产品"
)
pw
,
err
:=
playwright
.
Run
()
if
err
!=
nil
{
t
.
Error
(
err
)
t
.
FailNow
()
}
headless
:=
true
var
slowMo
float64
=
100
productBrowser
,
err
:=
pw
.
Chromium
.
Launch
(
playwright
.
BrowserTypeLaunchOptions
{
Headless
:
&
headless
,
SlowMo
:
&
slowMo
})
if
err
!=
nil
{
t
.
Errorf
(
"Fail to launch the web productBrowser: %v"
,
err
)
t
.
FailNow
()
}
page
,
err
:=
productBrowser
.
NewPage
()
if
err
!=
nil
{
t
.
Errorf
(
"Create the new page fail: %v"
,
err
)
t
.
FailNow
()
}
if
_
,
err
=
page
.
Goto
(
"http://127.0.0.1:8000/"
,
playwright
.
PageGotoOptions
{
WaitUntil
:
playwright
.
WaitUntilStateDomcontentloaded
});
err
!=
nil
{
t
.
Errorf
(
"The specific URL is missing: %v"
,
err
)
t
.
FailNow
()
}
_
,
err
=
page
.
WaitForSelector
(
".tree-node"
)
if
err
!=
nil
{
t
.
Errorf
(
"Wait tree-node fail: %v"
,
err
)
t
.
FailNow
()
}
locator
,
err
:=
page
.
Locator
(
"#siteMenuToggle"
)
if
err
!=
nil
{
t
.
Errorf
(
"The siteMenuToggle is missing: %v"
,
err
)
t
.
FailNow
()
}
err
=
locator
.
Click
()
if
err
!=
nil
{
t
.
Errorf
(
"Click is fail: %v"
,
err
)
t
.
FailNow
()
}
_
,
err
=
page
.
WaitForSelector
(
"#navbar .list-item"
)
if
err
!=
nil
{
t
.
Errorf
(
"Wait for site list nav fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
page
.
Click
(
".list-item-title>>text=单元测试站点"
)
if
err
!=
nil
{
t
.
Errorf
(
"Click site nav fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
page
.
Click
(
"#productMenuToggle"
)
if
err
!=
nil
{
t
.
Errorf
(
"Click site nav fail: %v"
,
err
)
t
.
FailNow
()
}
_
,
err
=
page
.
WaitForSelector
(
"#navbar .list-item"
)
if
err
!=
nil
{
t
.
Errorf
(
"Wait for product list nav fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
page
.
Click
(
"#navbar .list-item>>text=test"
)
page
.
WaitForTimeout
(
100
)
productName
,
err
:=
page
.
InnerText
(
"#productMenuToggle>>span"
)
fmt
.
Println
(
productName
)
if
productName
!=
"test"
{
t
.
Error
(
"Switch product fail"
)
t
.
FailNow
()
}
if
err
=
productBrowser
.
Close
();
err
!=
nil
{
t
.
Errorf
(
"The productBrowser cannot be closed: %v"
,
err
)
t
.
FailNow
()
}
if
err
=
pw
.
Stop
();
err
!=
nil
{
t
.
Errorf
(
"The playwright cannot be stopped: %v"
,
err
)
t
.
FailNow
()
}
}
func
TestUiProduct
(
t
*
testing
.
T
)
{
runner
.
Run
(
t
,
"客户端-切换禅道产品"
,
SwitchProduct
)
}
test/ui_run_test.go
浏览文件 @
249aa874
...
...
@@ -371,7 +371,7 @@ func RunOpenedAndLast(t provider.T) {
t
.
Errorf
(
"Find log title in logPane fail: %v"
,
err
)
}
resultTitle
,
err
:=
resultTitleElement
.
InnerText
()
if
err
!=
nil
||
resultTitle
!=
"单元测试工作目录(
2
)"
{
if
err
!=
nil
||
resultTitle
!=
"单元测试工作目录(
3
)"
{
t
.
Errorf
(
"Find result in rightPane fail: %v"
,
err
)
}
timeElement
,
err
:=
locator
.
Locator
(
".time>>span"
)
...
...
@@ -1082,6 +1082,112 @@ func RunBugStatistic(t provider.T) {
}
}
func
RunWorkspace
(
t
provider
.
T
)
{
t
.
ID
(
"5482"
)
t
.
AddParentSuite
(
"右键执行脚本"
)
pw
,
err
:=
playwright
.
Run
()
if
err
!=
nil
{
t
.
Error
(
err
)
t
.
FailNow
()
}
headless
:=
true
var
slowMo
float64
=
100
workspaceBrowser
,
err
:=
pw
.
Chromium
.
Launch
(
playwright
.
BrowserTypeLaunchOptions
{
Headless
:
&
headless
,
SlowMo
:
&
slowMo
})
if
err
!=
nil
{
t
.
Errorf
(
"Fail to launch the web workspaceBrowser: %v"
,
err
)
t
.
FailNow
()
}
page
,
err
:=
workspaceBrowser
.
NewPage
()
if
err
!=
nil
{
t
.
Errorf
(
"Create the new page fail: %v"
,
err
)
t
.
FailNow
()
}
if
_
,
err
=
page
.
Goto
(
"http://127.0.0.1:8000/"
,
playwright
.
PageGotoOptions
{
WaitUntil
:
playwright
.
WaitUntilStateDomcontentloaded
});
err
!=
nil
{
t
.
Errorf
(
"The specific URL is missing: %v"
,
err
)
t
.
FailNow
()
}
_
,
err
=
page
.
WaitForSelector
(
".tree-node"
)
if
err
!=
nil
{
t
.
Errorf
(
"Wait tree-node fail: %v"
,
err
)
t
.
FailNow
()
}
locator
,
err
:=
page
.
Locator
(
".tree-node"
,
playwright
.
PageLocatorOptions
{
HasText
:
"单元测试工作目录"
})
c
,
err
:=
locator
.
Count
()
if
err
!=
nil
||
c
==
0
{
t
.
Errorf
(
"Find workspace fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
locator
.
Click
(
playwright
.
PageClickOptions
{
Button
:
playwright
.
MouseButtonRight
})
if
err
!=
nil
{
t
.
Errorf
(
"Right click workspace fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
page
.
Click
(
".tree-context-menu>>text=执行"
)
if
err
!=
nil
{
t
.
Errorf
(
"Click copy fail: %v"
,
err
)
t
.
FailNow
()
}
_
,
err
=
page
.
WaitForSelector
(
"#log-list>>.msg-span>>:has-text('执行3个用例,耗时')"
)
if
err
!=
nil
{
t
.
Errorf
(
"Wait exec workspace result fail: %v"
,
err
)
t
.
FailNow
()
}
locator
,
err
=
page
.
Locator
(
"#log-list>>code:has-text('执行3个用例,耗时')"
)
if
err
!=
nil
{
t
.
Errorf
(
"Find exec workspace log fail: %v"
,
err
)
t
.
FailNow
()
}
innerText
,
err
:=
locator
.
InnerText
()
if
err
!=
nil
{
t
.
Errorf
(
"Find exec workspace result fail: %v"
,
err
)
t
.
FailNow
()
}
if
!
strings
.
Contains
(
innerText
,
"2(66.0%) 通过,1(33.0%) 失败"
)
{
t
.
Errorf
(
"Exec workspace fail: %v"
,
err
)
t
.
FailNow
()
}
resultTitleElement
,
err
:=
page
.
QuerySelector
(
"#rightPane .result-list-item .list-item-title"
)
if
err
!=
nil
{
t
.
Errorf
(
"Find log title in logPane fail: %v"
,
err
)
t
.
FailNow
()
}
resultTitle
,
err
:=
resultTitleElement
.
InnerText
()
if
err
!=
nil
||
resultTitle
!=
"单元测试工作目录(3)"
{
t
.
Errorf
(
"Find result in rightPane fail: %v"
,
err
)
t
.
FailNow
()
}
timeElement
,
err
:=
page
.
Locator
(
"#log-list>>.case-item:has-text('3_http_interface_call')>>.time>>span"
)
if
err
!=
nil
{
t
.
Errorf
(
"Find log time element in logPane fail: %v"
,
err
)
t
.
FailNow
()
}
logTime
,
err
:=
timeElement
.
InnerText
()
if
err
!=
nil
{
t
.
Errorf
(
"Find log time in logPane fail: %v"
,
err
)
t
.
FailNow
()
}
resultTimeElement
,
err
:=
page
.
QuerySelector
(
"#rightPane .result-list-item .list-item-trailing-text"
)
if
err
!=
nil
{
t
.
Errorf
(
"Find log time in rightPane fail: %v"
,
err
)
t
.
FailNow
()
}
resultTime
,
err
:=
resultTimeElement
.
InnerText
()
if
err
!=
nil
||
logTime
[
:
5
]
!=
resultTime
{
t
.
Errorf
(
"Find result in rightPane fail: %v"
,
err
)
t
.
FailNow
()
}
if
err
=
workspaceBrowser
.
Close
();
err
!=
nil
{
t
.
Errorf
(
"The workspaceBrowser cannot be closed: %v"
,
err
)
t
.
FailNow
()
}
if
err
=
pw
.
Stop
();
err
!=
nil
{
t
.
Errorf
(
"The playwright cannot be stopped: %v"
,
err
)
t
.
FailNow
()
}
}
func
TestUiRun
(
t
*
testing
.
T
)
{
runner
.
Run
(
t
,
"客户端-执行单个脚本"
,
RunScript
)
runner
.
Run
(
t
,
"客户端-执行选中的脚本文件和文件夹"
,
RunSelectedScripts
)
...
...
@@ -1092,4 +1198,5 @@ func TestUiRun(t *testing.T) {
runner
.
Run
(
t
,
"客户端-确认执行统计成功数据"
,
RunSuccessStatistic
)
runner
.
Run
(
t
,
"客户端-确认执行统计失败数据"
,
RunFailStatistic
)
runner
.
Run
(
t
,
"客户端-确认执行统计bug数据"
,
RunBugStatistic
)
runner
.
Run
(
t
,
"客户端-右键执行工作目录"
,
RunWorkspace
)
}
test/ui_script_test.go
浏览文件 @
249aa874
...
...
@@ -12,7 +12,7 @@ var scriptBrowser playwright.Browser
func
SaveScript
(
t
provider
.
T
)
{
t
.
ID
(
"5470"
)
t
.
AddParentSuite
(
"
保存
脚本"
)
t
.
AddParentSuite
(
"
禅道站点
脚本"
)
pw
,
err
:=
playwright
.
Run
()
if
err
!=
nil
{
t
.
Error
(
err
)
...
...
@@ -118,6 +118,74 @@ func SaveScript(t provider.T) {
}
}
func
ViewScript
(
t
provider
.
T
)
{
t
.
ID
(
"5469"
)
t
.
AddParentSuite
(
"禅道站点脚本"
)
pw
,
err
:=
playwright
.
Run
()
if
err
!=
nil
{
t
.
Error
(
err
)
t
.
FailNow
()
}
headless
:=
true
var
slowMo
float64
=
100
workspaceBrowser
,
err
:=
pw
.
Chromium
.
Launch
(
playwright
.
BrowserTypeLaunchOptions
{
Headless
:
&
headless
,
SlowMo
:
&
slowMo
})
if
err
!=
nil
{
t
.
Errorf
(
"Fail to launch the web workspaceBrowser: %v"
,
err
)
t
.
FailNow
()
}
page
,
err
:=
workspaceBrowser
.
NewPage
()
if
err
!=
nil
{
t
.
Errorf
(
"Create the new page fail: %v"
,
err
)
t
.
FailNow
()
}
if
_
,
err
=
page
.
Goto
(
"http://127.0.0.1:8000/"
,
playwright
.
PageGotoOptions
{
WaitUntil
:
playwright
.
WaitUntilStateDomcontentloaded
});
err
!=
nil
{
t
.
Errorf
(
"The specific URL is missing: %v"
,
err
)
t
.
FailNow
()
}
_
,
err
=
page
.
WaitForSelector
(
".tree-node"
)
if
err
!=
nil
{
t
.
Errorf
(
"Wait tree-node fail: %v"
,
err
)
t
.
FailNow
()
}
locator
,
err
:=
page
.
Locator
(
".tree-node"
,
playwright
.
PageLocatorOptions
{
HasText
:
"单元测试工作目录"
})
c
,
err
:=
locator
.
Count
()
if
err
!=
nil
||
c
==
0
{
t
.
Errorf
(
"Find workspace fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
locator
.
Click
()
if
err
!=
nil
{
t
.
Errorf
(
"Click node fail: %v"
,
err
)
t
.
FailNow
()
}
scriptLocator
,
err
:=
locator
.
Locator
(
"text=1_string_match.php"
)
if
err
!=
nil
{
t
.
Errorf
(
"Find 1_string_match.php fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
scriptLocator
.
Click
()
if
err
!=
nil
{
t
.
Errorf
(
"Click script fail: %v"
,
err
)
t
.
FailNow
()
}
locator
,
err
=
page
.
Locator
(
".view-line>>text=title=check string matches pattern"
)
if
err
!=
nil
{
t
.
Errorf
(
"Find title fail: %v"
,
err
)
t
.
FailNow
()
}
if
err
=
workspaceBrowser
.
Close
();
err
!=
nil
{
t
.
Errorf
(
"The workspaceBrowser cannot be closed: %v"
,
err
)
t
.
FailNow
()
}
if
err
=
pw
.
Stop
();
err
!=
nil
{
t
.
Errorf
(
"The playwright cannot be stopped: %v"
,
err
)
t
.
FailNow
()
}
}
func
TestUiScript
(
t
*
testing
.
T
)
{
runner
.
Run
(
t
,
"客户端-编辑保存禅道站点脚本"
,
SaveScript
)
// runner.Run(t, "客户端-编辑保存禅道站点脚本", SaveScript)
runner
.
Run
(
t
,
"客户端-显示禅道站点脚本"
,
ViewScript
)
}
test/ui_workspace_test.go
浏览文件 @
249aa874
...
...
@@ -1046,6 +1046,85 @@ func FilterTask(t provider.T) {
t
.
FailNow
()
}
}
func
Collapse
(
t
provider
.
T
)
{
t
.
ID
(
"5472"
)
t
.
AddParentSuite
(
"管理禅道站点下工作目录"
)
pw
,
err
:=
playwright
.
Run
()
if
err
!=
nil
{
t
.
Error
(
err
)
t
.
FailNow
()
}
headless
:=
true
var
slowMo
float64
=
100
workspaceBrowser
,
err
:=
pw
.
Chromium
.
Launch
(
playwright
.
BrowserTypeLaunchOptions
{
Headless
:
&
headless
,
SlowMo
:
&
slowMo
})
if
err
!=
nil
{
t
.
Errorf
(
"Fail to launch the web workspaceBrowser: %v"
,
err
)
t
.
FailNow
()
}
page
,
err
:=
workspaceBrowser
.
NewPage
()
if
err
!=
nil
{
t
.
Errorf
(
"Create the new page fail: %v"
,
err
)
t
.
FailNow
()
}
if
_
,
err
=
page
.
Goto
(
"http://127.0.0.1:8000/"
,
playwright
.
PageGotoOptions
{
WaitUntil
:
playwright
.
WaitUntilStateDomcontentloaded
});
err
!=
nil
{
t
.
Errorf
(
"The specific URL is missing: %v"
,
err
)
t
.
FailNow
()
}
locator
,
err
:=
page
.
Locator
(
"#siteMenuToggle"
)
if
err
!=
nil
{
t
.
Errorf
(
"The siteMenuToggle is missing: %v"
,
err
)
t
.
FailNow
()
}
err
=
locator
.
Click
()
if
err
!=
nil
{
t
.
Errorf
(
"The Click is fail: %v"
,
err
)
t
.
FailNow
()
}
_
,
err
=
page
.
WaitForSelector
(
"#navbar .list-item"
)
if
err
!=
nil
{
t
.
Errorf
(
"Wait for workspace list nav fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
page
.
Click
(
".list-item-title>>text=单元测试站点"
)
if
err
!=
nil
{
t
.
Errorf
(
"The Click workspace nav fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
page
.
Click
(
`#leftPane>>.toolbar>>[title="展开"]`
)
if
err
!=
nil
{
t
.
Errorf
(
"Click expand workspace btn fail: %v"
,
err
)
t
.
FailNow
()
}
page
.
WaitForTimeout
(
100
)
locator
,
_
=
page
.
Locator
(
"#leftPane>>.tree-node-item>>text=1_string_match.php"
)
count
,
_
:=
locator
.
Count
()
if
count
==
0
{
t
.
Error
(
"Expand workspace fail"
)
t
.
FailNow
()
}
err
=
page
.
Click
(
`#leftPane>>.toolbar>>[title="折叠"]`
)
if
err
!=
nil
{
t
.
Errorf
(
"Click Collapse workspace btn fail: %v"
,
err
)
t
.
FailNow
()
}
page
.
WaitForTimeout
(
100
)
locator
,
_
=
page
.
Locator
(
"#leftPane>>.tree-node-item>>text=1_string_match.php"
)
count
,
_
=
locator
.
Count
()
if
count
>
0
{
t
.
Error
(
"Collapse workspace fail"
)
t
.
FailNow
()
}
if
err
=
workspaceBrowser
.
Close
();
err
!=
nil
{
t
.
Errorf
(
"The workspaceBrowser cannot be closed: %v"
,
err
)
t
.
FailNow
()
}
if
err
=
pw
.
Stop
();
err
!=
nil
{
t
.
Errorf
(
"The playwright cannot be stopped: %v"
,
err
)
t
.
FailNow
()
}
}
func
TestWorkspace
(
t
*
testing
.
T
)
{
runner
.
Run
(
t
,
"客户端-从禅道同步部分用例"
,
SyncTwoCaseFromZentao
)
runner
.
Run
(
t
,
"客户端-从禅道同步"
,
SyncFromZentao
)
...
...
@@ -1057,6 +1136,7 @@ func TestWorkspace(t *testing.T) {
runner
.
Run
(
t
,
"客户端-按目录过滤禅道用例脚本"
,
FilterDir
)
runner
.
Run
(
t
,
"客户端-按套件过滤禅道用例脚本"
,
FilterSuite
)
runner
.
Run
(
t
,
"客户端-按测试单过滤禅道用例脚本"
,
FilterTask
)
runner
.
Run
(
t
,
"客户端-显示展开折叠脚本树状结构"
,
Collapse
)
runner
.
Run
(
t
,
"客户端-删除禅道工作目录"
,
DeleteWorkspace
)
runner
.
Run
(
t
,
"客户端-创建禅道工作目录"
,
CreateWorkspace
)
}
ui/src/locales/en-US.ts
浏览文件 @
249aa874
...
...
@@ -202,9 +202,10 @@ export default {
'
skip
'
:
'
Skip
'
,
'
batch
'
:
'
Batch
'
,
'
batch_select
'
:
'
Batch Select
'
,
'
expand
_all
'
:
'
Expand
'
,
'
expand
'
:
'
Expand
'
,
'
collapse
'
:
'
Collapse
'
,
'
collapse_all
'
:
'
Collapse All
'
,
'
expand_all
'
:
'
Expand All
'
,
'
expand_up
'
:
'
Expand Up
'
,
'
more_actions
'
:
'
More Actions
'
,
'
show_checkbox
'
:
'
Show Checkbox
'
,
...
...
ui/src/locales/zh-CN.ts
浏览文件 @
249aa874
...
...
@@ -209,9 +209,10 @@ export default {
'
skip
'
:
'
跳过
'
,
'
batch
'
:
'
批量
'
,
'
batch_select
'
:
'
批量选择
'
,
'
expand
_all
'
:
'
展开
'
,
'
expand
'
:
'
展开
'
,
'
collapse
'
:
'
折叠
'
,
'
collapse_all
'
:
'
折叠所有
'
,
'
expand_all
'
:
'
展开所有
'
,
'
expand_up
'
:
'
向上展开
'
,
'
more_actions
'
:
'
更多操作
'
,
'
show_checkbox
'
:
'
显示选择框
'
,
...
...
ui/src/views/exec/LogPanel.vue
浏览文件 @
249aa874
...
...
@@ -4,7 +4,7 @@
<Button
class=
"rounded pure"
:hint=
"t('clear')"
icon=
"clear"
iconSize=
"1.4em"
@
click=
"bus.emit(settings.eventClearWebSocketMsg);"
/>
<Button
class=
"rounded pure"
:hint=
"
t('collapse
_all')"
<Button
class=
"rounded pure"
:hint=
"
logContentExpand ? t('collapse_all'):t('expand
_all')"
:icon=
"logContentExpand ? 'subtract-square-multiple' : 'add-square-multiple'"
iconSize=
"1.4em"
@
click=
"store.commit('global/setLogContentExpand')"
/>
<Button
class=
"rounded pure"
...
...
ui/src/views/script/WorkDirPanel.vue
浏览文件 @
249aa874
...
...
@@ -45,7 +45,7 @@
/>
<Button
class=
"rounded pure"
:hint=
"t('create_workspace')"
@
click=
"showModal=!showModal"
icon=
"folder-add"
/>
<Button
class=
"rounded pure"
:hint=
"t('batch_select')"
icon=
"select-all-on"
@
click=
"_handleBatchSelectBtnClick"
:active=
"workDirRef?.isCheckable"
/>
<Button
@
click=
"_handleToggleAllBtnClick"
class=
"rounded pure"
:hint=
"workDirRef?.isAllCollapsed ? t('
collapse') : t('expand_all
')"
:icon=
"workDirRef?.isAllCollapsed ? 'add-square-multiple' : 'subtract-square-multiple'"
iconSize=
"1.4em"
/>
<Button
@
click=
"_handleToggleAllBtnClick"
class=
"rounded pure"
:hint=
"workDirRef?.isAllCollapsed ? t('
expand') : t('collapse
')"
:icon=
"workDirRef?.isAllCollapsed ? 'add-square-multiple' : 'subtract-square-multiple'"
iconSize=
"1.4em"
/>
<Button
v-if=
"checkedCaseIds.length > 0"
@
click=
"showBugsModal = !showBugsModal"
class=
"rounded pure"
:hint=
"t('zentao_bug')"
icon=
"bug"
iconSize=
"1.4em"
/>
<!--
<Button
class=
"rounded pure"
:hint=
"t('more_actions')"
icon=
"more-vert"
/>
-->
</
template
>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录