Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
三久
DolphinScheduler
提交
197accc6
DolphinScheduler
项目概览
三久
/
DolphinScheduler
与 Fork 源项目一致
Fork自
apache / DolphinScheduler
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
197accc6
编写于
3月 22, 2022
作者:
X
xiangzihao
提交者:
GitHub
3月 22, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Feature][e2e] Suggest e2e test adapt M1 chip (#9077)
上级
852597c9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
50 addition
and
22 deletion
+50
-22
dolphinscheduler-e2e/dolphinscheduler-e2e-case/src/test/java/org/apache/dolphinscheduler/e2e/pages/project/workflow/WorkflowRunDialog.java
...heduler/e2e/pages/project/workflow/WorkflowRunDialog.java
+4
-0
dolphinscheduler-e2e/dolphinscheduler-e2e-core/src/main/java/org/apache/dolphinscheduler/e2e/core/DolphinSchedulerExtension.java
.../dolphinscheduler/e2e/core/DolphinSchedulerExtension.java
+46
-22
未找到文件。
dolphinscheduler-e2e/dolphinscheduler-e2e-case/src/test/java/org/apache/dolphinscheduler/e2e/pages/project/workflow/WorkflowRunDialog.java
浏览文件 @
197accc6
...
...
@@ -24,6 +24,8 @@ import org.openqa.selenium.support.FindBy;
import
org.openqa.selenium.support.PageFactory
;
import
lombok.Getter
;
import
org.openqa.selenium.support.ui.ExpectedConditions
;
import
org.openqa.selenium.support.ui.WebDriverWait
;
@Getter
public
final
class
WorkflowRunDialog
{
...
...
@@ -39,6 +41,8 @@ public final class WorkflowRunDialog {
}
public
WorkflowDefinitionTab
submit
()
{
new
WebDriverWait
(
parent
().
driver
(),
5
).
until
(
ExpectedConditions
.
elementToBeClickable
(
buttonSubmit
()));
buttonSubmit
().
click
();
return
parent
();
...
...
dolphinscheduler-e2e/dolphinscheduler-e2e-core/src/main/java/org/apache/dolphinscheduler/e2e/core/DolphinSchedulerExtension.java
浏览文件 @
197accc6
...
...
@@ -59,13 +59,14 @@ import com.google.common.base.Strings;
import
com.google.common.net.HostAndPort
;
import
lombok.extern.slf4j.Slf4j
;
import
org.testcontainers.utility.DockerImageName
;
@Slf4j
final
class
DolphinSchedulerExtension
implements
BeforeAllCallback
,
AfterAllCallback
,
BeforeEachCallback
{
final
class
DolphinSchedulerExtension
implements
BeforeAllCallback
,
AfterAllCallback
,
BeforeEachCallback
{
private
final
boolean
LOCAL_MODE
=
Objects
.
equals
(
System
.
getProperty
(
"local"
),
"true"
);
private
final
boolean
M1_CHIP_FLAG
=
Objects
.
equals
(
System
.
getProperty
(
"m1_chip"
),
"true"
);
private
RemoteWebDriver
driver
;
private
DockerComposeContainer
<?>
compose
;
private
BrowserWebDriverContainer
<?>
browser
;
...
...
@@ -73,36 +74,24 @@ final class DolphinSchedulerExtension
private
HostAndPort
address
;
private
String
rootPath
;
private
Path
record
;
@Override
@SuppressWarnings
(
"UnstableApiUsage"
)
public
void
beforeAll
(
ExtensionContext
context
)
throws
IOException
{
Awaitility
.
setDefaultTimeout
(
Duration
.
ofSeconds
(
60
));
Awaitility
.
setDefaultPollInterval
(
Duration
.
ofSeconds
(
10
));
setRecordPath
();
if
(
LOCAL_MODE
)
{
runInLocal
();
}
else
{
runInDockerContainer
(
context
);
}
final
Path
record
;
if
(!
Strings
.
isNullOrEmpty
(
System
.
getenv
(
"RECORDING_PATH"
)))
{
record
=
Paths
.
get
(
System
.
getenv
(
"RECORDING_PATH"
));
if
(!
record
.
toFile
().
exists
())
{
if
(!
record
.
toFile
().
mkdir
())
{
throw
new
IOException
(
"Failed to create recording directory: "
+
record
.
toAbsolutePath
());
}
}
}
else
{
record
=
Files
.
createTempDirectory
(
"record-"
);
}
setBrowserContainerByOsName
();
browser
=
new
BrowserWebDriverContainer
<>()
.
withCapabilities
(
new
ChromeOptions
())
.
withCreateContainerCmdModifier
(
cmd
->
cmd
.
withUser
(
"root"
))
.
withFileSystemBind
(
Constants
.
HOST_CHROME_DOWNLOAD_PATH
.
toFile
().
getAbsolutePath
(),
Constants
.
SELENIUM_CONTAINER_CHROME_DOWNLOAD_PATH
)
.
withRecordingMode
(
RECORD_ALL
,
record
.
toFile
(),
MP4
);
if
(
network
!=
null
)
{
browser
.
withNetwork
(
network
);
}
...
...
@@ -128,8 +117,8 @@ final class DolphinSchedulerExtension
}
private
void
runInLocal
()
{
Testcontainers
.
exposeHostPorts
(
8888
);
address
=
HostAndPort
.
fromParts
(
"host.testcontainers.internal"
,
8888
);
Testcontainers
.
exposeHostPorts
(
3000
);
address
=
HostAndPort
.
fromParts
(
"host.testcontainers.internal"
,
3000
);
rootPath
=
"/"
;
}
...
...
@@ -159,6 +148,41 @@ final class DolphinSchedulerExtension
rootPath
=
"/dolphinscheduler/ui/"
;
}
private
void
setBrowserContainerByOsName
()
{
DockerImageName
imageName
;
if
(
LOCAL_MODE
&&
M1_CHIP_FLAG
)
{
imageName
=
DockerImageName
.
parse
(
"seleniarm/standalone-chromium:4.1.2-20220227"
)
.
asCompatibleSubstituteFor
(
"selenium/standalone-chrome"
);
browser
=
new
BrowserWebDriverContainer
<>(
imageName
)
.
withCapabilities
(
new
ChromeOptions
())
.
withCreateContainerCmdModifier
(
cmd
->
cmd
.
withUser
(
"root"
))
.
withFileSystemBind
(
Constants
.
HOST_CHROME_DOWNLOAD_PATH
.
toFile
().
getAbsolutePath
(),
Constants
.
SELENIUM_CONTAINER_CHROME_DOWNLOAD_PATH
);
}
else
{
browser
=
new
BrowserWebDriverContainer
<>()
.
withCapabilities
(
new
ChromeOptions
())
.
withCreateContainerCmdModifier
(
cmd
->
cmd
.
withUser
(
"root"
))
.
withFileSystemBind
(
Constants
.
HOST_CHROME_DOWNLOAD_PATH
.
toFile
().
getAbsolutePath
(),
Constants
.
SELENIUM_CONTAINER_CHROME_DOWNLOAD_PATH
)
.
withRecordingMode
(
RECORD_ALL
,
record
.
toFile
(),
MP4
);
}
}
private
void
setRecordPath
()
throws
IOException
{
if
(!
Strings
.
isNullOrEmpty
(
System
.
getenv
(
"RECORDING_PATH"
)))
{
record
=
Paths
.
get
(
System
.
getenv
(
"RECORDING_PATH"
));
if
(!
record
.
toFile
().
exists
())
{
if
(!
record
.
toFile
().
mkdir
())
{
throw
new
IOException
(
"Failed to create recording directory: "
+
record
.
toAbsolutePath
());
}
}
}
else
{
record
=
Files
.
createTempDirectory
(
"record-"
);
}
}
@Override
public
void
afterAll
(
ExtensionContext
context
)
{
browser
.
afterTest
(
new
TestDescription
(
context
),
Optional
.
empty
());
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录