Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zentaoatf
提交
288db253
Z
zentaoatf
项目概览
易企天创
/
zentaoatf
8 个月 前同步成功
通知
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 搜索 >>
提交
288db253
编写于
9月 15, 2022
作者:
雨
雨爱无痕
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add run dir script
上级
7ce690fe
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
251 addition
and
5 deletion
+251
-5
test/demo/php/2_webpage_extract.php
test/demo/php/2_webpage_extract.php
+8
-0
test/demo/php/testdir/1_string_match.php
test/demo/php/testdir/1_string_match.php
+15
-0
test/ui_run_test.go
test/ui_run_test.go
+228
-5
未找到文件。
test/demo/php/2_webpage_extract.php
浏览文件 @
288db253
#!/usr/bin/env php
<?php
/**
title=extract content from webpage
timeout=0
cid=2
pid=1
1. Load web page from url http://xxx
2. Retrieve img element zt-logo.png in html
3. Check img exist >> `.*zt-logo.png`
1. Load web page from url http://xxx
2. Retrieve img element zt-logo.png in html
3. Check img exist >> `.*zt-logo.png`
1. Load web page from url http://xxx
2. Retrieve img element zt-logo.png in html
3. Check img exist >> `.*zt-logo.png`
...
...
test/demo/php/testdir/1_string_match.php
0 → 100644
浏览文件 @
288db253
#!/usr/bin/env php
<?php
/**
title=check string matches pattern
cid=1
pid=1
1. exactly match >> ~c:!=2~
2. exactly match >> ~c:!=2~
3. exactly match >> ~c:!=2~
*/
print
(
"2
\n
"
);
\ No newline at end of file
test/ui_run_test.go
浏览文件 @
288db253
...
...
@@ -122,6 +122,119 @@ func RunScript(t provider.T) {
t
.
FailNow
()
}
}
func
RunScriptByRightClick
(
t
provider
.
T
)
{
t
.
ID
(
"5479"
)
t
.
AddParentSuite
(
"执行脚本"
)
pw
,
err
:=
playwright
.
Run
()
if
err
!=
nil
{
t
.
Error
(
err
)
t
.
FailNow
()
}
headless
:=
true
var
slowMo
float64
=
100
runBrowser
,
err
:=
pw
.
Chromium
.
Launch
(
playwright
.
BrowserTypeLaunchOptions
{
Headless
:
&
headless
,
SlowMo
:
&
slowMo
})
if
err
!=
nil
{
t
.
Errorf
(
"Fail to launch the web runBrowser: %v"
,
err
)
t
.
FailNow
()
}
page
,
err
:=
runBrowser
.
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
(
playwright
.
PageClickOptions
{
Button
:
playwright
.
MouseButtonRight
})
if
err
!=
nil
{
t
.
Errorf
(
"Click script fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
page
.
Click
(
".tree-context-menu>>text=执行"
)
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
()
}
element
,
err
:=
page
.
QuerySelector
(
"#log-list>>.msg-span>>:has-text('执行1个用例,耗时')"
)
innerText
,
err
:=
element
.
InnerText
()
if
err
!=
nil
{
t
.
Errorf
(
"Find result fail: %v"
,
err
)
t
.
FailNow
()
}
if
!
strings
.
Contains
(
innerText
,
"1(100.0%) 失败"
)
{
t
.
Errorf
(
"Exec 1_string_match.php 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
!=
"1_string_match.php"
{
t
.
Errorf
(
"Find result in rightPane fail: %v"
,
err
)
t
.
FailNow
()
}
timeElement
,
err
:=
page
.
QuerySelector
(
"#log-list .item .time"
)
if
err
!=
nil
{
t
.
Errorf
(
"Find log time 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 logPane 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
=
runBrowser
.
Close
();
err
!=
nil
{
t
.
Errorf
(
"The runBrowser 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
RunNoInterpreterScript
(
t
provider
.
T
)
{
t
.
ID
(
"5501"
)
t
.
AddParentSuite
(
"执行脚本"
)
...
...
@@ -666,12 +779,12 @@ func RunWorkspace(t provider.T) {
}
headless
:=
true
var
slowMo
float64
=
100
workspace
Browser
,
err
:=
pw
.
Chromium
.
Launch
(
playwright
.
BrowserTypeLaunchOptions
{
Headless
:
&
headless
,
SlowMo
:
&
slowMo
})
run
Browser
,
err
:=
pw
.
Chromium
.
Launch
(
playwright
.
BrowserTypeLaunchOptions
{
Headless
:
&
headless
,
SlowMo
:
&
slowMo
})
if
err
!=
nil
{
t
.
Errorf
(
"Fail to launch the web
workspace
Browser: %v"
,
err
)
t
.
Errorf
(
"Fail to launch the web
run
Browser: %v"
,
err
)
t
.
FailNow
()
}
page
,
err
:=
workspace
Browser
.
NewPage
()
page
,
err
:=
run
Browser
.
NewPage
()
if
err
!=
nil
{
t
.
Errorf
(
"Create the new page fail: %v"
,
err
)
t
.
FailNow
()
...
...
@@ -752,8 +865,116 @@ func RunWorkspace(t provider.T) {
t
.
FailNow
()
}
if
err
=
workspaceBrowser
.
Close
();
err
!=
nil
{
t
.
Errorf
(
"The workspaceBrowser cannot be closed: %v"
,
err
)
if
err
=
runBrowser
.
Close
();
err
!=
nil
{
t
.
Errorf
(
"The runBrowser 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
RunDir
(
t
provider
.
T
)
{
t
.
ID
(
"5480"
)
t
.
AddParentSuite
(
"右键执行脚本"
)
pw
,
err
:=
playwright
.
Run
()
if
err
!=
nil
{
t
.
Error
(
err
)
t
.
FailNow
()
}
headless
:=
true
var
slowMo
float64
=
100
runBrowser
,
err
:=
pw
.
Chromium
.
Launch
(
playwright
.
BrowserTypeLaunchOptions
{
Headless
:
&
headless
,
SlowMo
:
&
slowMo
})
if
err
!=
nil
{
t
.
Errorf
(
"Fail to launch the web runBrowser: %v"
,
err
)
t
.
FailNow
()
}
page
,
err
:=
runBrowser
.
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 workspace fail: %v"
,
err
)
t
.
FailNow
()
}
err
=
page
.
Click
(
".tree-node-children>>.tree-node>>:has-text('testdir')"
,
playwright
.
PageClickOptions
{
Button
:
playwright
.
MouseButtonRight
})
if
err
!=
nil
{
t
.
Errorf
(
"Right click dir 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('执行1个用例,耗时')"
)
if
err
!=
nil
{
t
.
Errorf
(
"Wait exec result fail: %v"
,
err
)
t
.
FailNow
()
}
element
,
err
:=
page
.
QuerySelector
(
"#log-list>>.msg-span>>:has-text('执行1个用例,耗时')"
)
innerText
,
err
:=
element
.
InnerText
()
if
err
!=
nil
{
t
.
Errorf
(
"Find result fail: %v"
,
err
)
t
.
FailNow
()
}
if
!
strings
.
Contains
(
innerText
,
"1(100.0%) 失败"
)
{
t
.
Errorf
(
"Exec 1_string_match.php 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
!=
"1_string_match.php"
{
t
.
Errorf
(
"Find result in rightPane fail: %v"
,
err
)
t
.
FailNow
()
}
timeElement
,
err
:=
page
.
QuerySelector
(
"#log-list .item .time"
)
if
err
!=
nil
{
t
.
Errorf
(
"Find log time 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 logPane 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
=
runBrowser
.
Close
();
err
!=
nil
{
t
.
Errorf
(
"The runBrowser cannot be closed: %v"
,
err
)
t
.
FailNow
()
}
if
err
=
pw
.
Stop
();
err
!=
nil
{
...
...
@@ -764,9 +985,11 @@ func RunWorkspace(t provider.T) {
func
TestUiRun
(
t
*
testing
.
T
)
{
runner
.
Run
(
t
,
"客户端-执行单个脚本"
,
RunScript
)
runner
.
Run
(
t
,
"客户端-右键执行单个脚本"
,
RunScriptByRightClick
)
runner
.
Run
(
t
,
"客户端-忽略执行未设置解析器的脚本"
,
RunNoInterpreterScript
)
runner
.
Run
(
t
,
"客户端-执行选中的脚本文件和文件夹"
,
RunSelectedScripts
)
runner
.
Run
(
t
,
"客户端-执行打开的脚本文件"
,
RunOpenedAndLast
)
runner
.
Run
(
t
,
"客户端-执行所有的脚本文件"
,
RunAll
)
runner
.
Run
(
t
,
"客户端-右键执行工作目录"
,
RunWorkspace
)
runner
.
Run
(
t
,
"客户端-右键执行文件夹"
,
RunDir
)
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录