Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
801c2031
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
801c2031
编写于
4月 25, 2022
作者:
X
xuchenghua09
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新使用指导文档
Signed-off-by:
N
xuchenghua09
<
xuchenghua09@huawei.com
>
上级
9bfd5485
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
177 addition
and
138 deletion
+177
-138
zh-cn/application-dev/ability/ability-delegator.md
zh-cn/application-dev/ability/ability-delegator.md
+177
-138
未找到文件。
zh-cn/application-dev/ability/ability-delegator.md
浏览文件 @
801c2031
# 测试框架使用指导
# 测试框架使用指导
## 概述
## 概述
Delegator测试框架是OpenHarmony提供的一套开发者应用自测试框架,旨在为开发者提供针对应用的自测试环境。开发者可以通过delegator类启动对应Ability,并通过Delegator类提供的能力对Ability进行生命周期切换和监听,同时支持shellCMD输入和测试结果打印显示等功能。
Delegator测试框架是OpenHarmony提供的一套开发者应用自测试框架,旨在为开发者提供针对应用的自测试环境。开发者可以通过delegator类启动对应Ability,并通过Delegator类提供的能力对Ability进行生命周期切换和监听,同时支持shellCMD输入和测试结果打印显示等功能。
## 约束与限制
## 约束与限制
测试框架相关接口只能在测试hap包中使用,只有通过
`aa test`
命令或者IDE启动测试环境后相关接口才能生效。
测试框架相关接口只能在测试hap包中使用,只有通过
`aa test`
命令或者IDE启动测试环境后相关接口才能生效。
## 测试框架启动
## 测试框架启动
测试框架启动有两种方式:
测试框架启动有两种方式:
-
方式一:通过
`aa test`
命令启动。
-
方式一:通过
`aa test`
命令启动。
-
方式二:通过IDE启动。
-
方式二:通过IDE启动。
### aa test启动
### aa test启动
开发者可通过
`aa test`
命令启动启动测试框架,开发者可以自行指定使用的runner以及runner所在hap包的package name/module name,具体命令示例如下:
开发者可通过
`aa test`
命令启动启动测试框架,开发者可以自行指定使用的runner以及runner所在hap包的package name/module name,具体命令示例如下:
**FA模型:**
**FA模型:**
```
javascript
```
javascript
aa
test
-
p
com
.
example
.
myapplicationfaets
-
s
unittest
OpenHarmonyTestRunner
-
s
class
ActsAbilityTest
-
w
20
aa
test
-
b
BundleName
-
p
com
.
example
.
myapplicationfaets
-
s
unittest
OpenHarmonyTestRunner
-
s
class
ActsAbilityTest
-
w
20
```
```
**Stage模型:**
**Stage模型:**
```
javascript
```
javascript
aa
test
-
m
com
.
example
.
myapplicationfaets
-
s
unittest
OpenHarmonyTestRunner
-
s
class
ActsAbilityTest
-
w
20
aa
test
-
b
BundleName
-
m
com
.
example
.
myapplicationfaets
-
s
unittest
OpenHarmonyTestRunner
-
s
class
ActsAbilityTest
-
w
20
```
```
| 参数 | 是否必选 | 参数说明 |
| 参数 | 是否必选 | 参数说明 |
| --------------- | -------- | ------------------------------------------------------------ |
| --------------- | -------- | ------------------------------------------------------------ |
| -p | 是 | TestRunner所在hap包的package name,FA模型使用。 |
| -b | 是 | TestRunner所在hap包的bundle name。 |
| -m | 是 | TestRunner所在hap包的module name,stage模型使用。 |
| -p | 是 | TestRunner所在hap包的package name,FA模型使用。 |
| -s unittest | 是 | 启用的TestRunner名称,TestRunner名称和文件名需要保持一致。 |
| -m | 是 | TestRunner所在hap包的module name,Stage模型使用。 |
| -w | 否 | 测试用例超时时间,单位为秒,如果未指定,测试框架会一直等待测试代码调用finishTest才退出。 |
| -s unittest | 是 | 启用的TestRunner名称,TestRunner名称和文件名需要保持一致。 |
| -s
<key><value>
| 否 | 支持以key-value的方式输入任何参数,输入的参数可通过AbilityDelegatorArgs.parameters以key-value的方式获取。示例:-s classname myTest,key为classname,value为myTest。 |
| -w | 否 | 测试用例超时时间,单位为秒,如果未指定或指定小于等于0的整数,测试框架会一直等待测试代码调用finishTest才退出。 |
| -s
\<
key>
\<
value> | 否 | 支持以key-value的方式输入任何参数,输入的参数可通过AbilityDelegatorArgs.parameters以key-value的方式获取。示例:-s classname myTest,key为"-s classname",value为"myTest"。 |
### IDE启动
| -D | 否 | 以Debug模式启动被测试应用。 |
| -h | 否 | 输出帮助信息。 |
IDE启动相关介绍见
[
IDE指导网址
](
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-openharmony-test-framework-0000001263160453#section1034420367508
)
。
### IDE启动
## TestRunner介绍
IDE启动相关介绍见
[
IDE指导网址
](
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-openharmony-test-framework-0000001263160453#section1034420367508
)
。
TestRunner是测试框架测试流程入口类,当测试流程启动时,系统会调用TestRunner内相关接口,开发者需要派生该类,并重写onPrepare、onRun方法。IDE在创建应用模板时会初始化一个默认TestRunner,并在onRun方法启动默认的TestAbility。开发者也可以修改TestAbility测试代码内容,也可以修改默认的TestRunner内onPrepare、onRun方法,自行实现测试代码。具体详细内容请参考TestRunnerAPI接口说明
[
TestRunner
](
../reference/apis/js-apis-testRunner.md
)
。
## TestRunner介绍
## AbilityMonitor介绍
TestRunner是测试框架测试流程入口类,当测试流程启动时,系统会调用TestRunner内相关接口,开发者需要派生该类,并重写onPrepare、onRun方法。IDE在创建应用模板时会初始化一个默认TestRunner,并在onRun方法启动默认的TestAbility。开发者也可以修改TestAbility测试代码内容,也可以修改默认的TestRunner内onPrepare、onRun方法,自行实现测试代码。具体详细内容请参考TestRunnerAPI接口说明
[
TestRunner
](
../reference/apis/js-apis-testRunner.md
)
。
AbilityMonitor是测试框架提供用来绑定并监听Ability类,开发者可以使用AbilityMonitor绑定Ability,并将AbilityMonitor添加到监听列表。绑定后Ability的创建、生命周期变化等会触发AbilityMonitor内相关回调函数,开发者可以在对应回调函数内进行测试验证。具体详细内容请参考AbilityMonitor API接口说明
[
AbilityMonitor
](
../reference/apis/js-apis-application-abilityMonitor.md
)
。
## AbilityDelegatorRegistry介绍
**示例**
AbilityDelegatorRegistry是测试框架提供的AbilityDelegator仓库类,开发者可以使用AbilityDelegatorRegistry获取AbilityDelegator实例以及执行此次测试时传入和生成的相关参数AbilityDelegatorArgs。开发者可以使用AbilityDelegator调用测试框架提供的函数集进行测试验证。具体详细内容请参考AbilityDelegatorRegistry API接口说明
[
AbilityDelegatorRegistry
](
../reference/apis/js-apis-abilityDelegatorRegistry.md
)
。
```
javascript
import
AbilityDelegatorRegistry
from
'
@ohos.application.abilityDelegatorRegistry
'
## AbilityDelegatorArgs介绍
function
onAbilityCreateCallback
()
{
AbilityDelegatorArgs是测试框架提供的测试参数类,开发者可以使用AbilityDelegatorArgs获取执行此次测试时传入和生成的相关参数。具体详细内容请参考AbilityDelegatorArgs API接口说明
[
AbilityDelegatorArgs
](
../reference/apis/js-apis-application-abilityDelegatorArgs.md
)
。
console
.
info
(
"
onAbilityCreateCallback
"
);
}
## AbilityMonitor介绍
var
monitor
=
{
AbilityMonitor是测试框架提供用来绑定并监听Ability类,开发者可以使用AbilityMonitor绑定Ability,并将AbilityMonitor添加到监听列表。绑定后Ability的创建、生命周期变化等会触发AbilityMonitor内相关回调函数,开发者可以在对应回调函数内进行测试验证。具体详细内容请参考AbilityMonitor API接口说明
[
AbilityMonitor
](
../reference/apis/js-apis-application-abilityMonitor.md
)
。
abilityName
:
"
abilityname
"
,
onAbilityCreate
:
onAbilityCreateCallback
**示例**
}
```
javascript
var
abilityDelegator
=
AbilityDelegatorRegistry
.
getAbilityDelegator
();
import
AbilityDelegatorRegistry
from
'
@ohos.application.abilityDelegatorRegistry
'
abilityDelegator
.
addAbilityMonitor
(
monitor
).
then
((
void
)
=>
{
console
.
info
(
"
addAbilityMonitor promise
"
);
function
onAbilityCreateCallback
(
data
)
{
});
console
.
info
(
"
onAbilityCreateCallback
"
);
```
}
## AbilityDelegator介绍
var
monitor
=
{
abilityName
:
"
abilityname
"
,
AbilityDelegator是测试框架主要功能类,提供了启动Ability、获取Ability示例、调度Ability生命周期、对Ability生命周期进行监听、打印测试结果等功能。
onAbilityCreate
:
onAbilityCreateCallback
}
**导入模块**
var
abilityDelegator
=
AbilityDelegatorRegistry
.
getAbilityDelegator
();
```
javascript
abilityDelegator
.
addAbilityMonitor
(
monitor
).
then
(()
=>
{
import
AbilityDelegatorRegistry
from
'
@ohos.application.abilityDelegatorRegistry
'
console
.
info
(
"
addAbilityMonitor promise
"
);
```
});
```
```
javascript
var
abilityDelegator
=
AbilityDelegatorRegistry
.
getAbilityDelegator
()
## AbilityDelegator介绍
```
AbilityDelegator是测试框架主要功能类,提供了启动Ability、获取Ability示例、调度Ability生命周期、对Ability生命周期进行监听、打印测试结果等功能。
### 启动Ability并监听Ability状态变化
**导入模块**
配合AbilityMonitor使用,可以实现对Ability启动、Ability实例获取、监听状态变化功能。
```
javascript
**示例:**
import
AbilityDelegatorRegistry
from
'
@ohos.application.abilityDelegatorRegistry
'
```
```
javascript
var
abilityDelegator
;
```
javascript
var
ability
;
var
abilityDelegator
=
AbilityDelegatorRegistry
.
getAbilityDelegator
()
var
timeout
=
100
;
```
function
onAbilityCreateCallback
()
{
### 启动Ability并监听Ability状态变化
console
.
info
(
"
onAbilityCreateCallback
"
);
}
配合AbilityMonitor使用,可以实现对Ability启动、Ability实例获取、监听状态变化功能。
var
monitor
=
{
**示例:**
abilityName
:
"
abilityname
"
,
onAbilityCreate
:
onAbilityCreateCallback
```
javascript
}
var
abilityDelegator
;
var
ability
;
abilityDelegator
=
AbilityDelegatorRegistry
.
getAbilityDelegator
();
var
timeout
=
100
;
abilityDelegator
.
waitAbilityMonitor
(
monitor
,
timeout
,
(
err
,
data
)
=>
{
ability
=
data
;
function
onAbilityCreateCallback
(
data
)
{
console
.
info
(
"
waitAbilityMonitor callback
"
);
console
.
info
(
"
onAbilityCreateCallback
"
);
});
}
var
want
=
{
var
monitor
=
{
bundleName
:
"
bundleName
"
,
abilityName
:
"
abilityname
"
,
abilityName
:
"
abilityName
"
onAbilityCreate
:
onAbilityCreateCallback
};
}
abilityDelegator
=
AbilityDelegatorRegistry
.
getAbilityDelegator
();
abilityDelegator
=
AbilityDelegatorRegistry
.
getAbilityDelegator
();
abilityDelegator
.
startAbility
(
want
,
(
err
,
data
)
=>
{
abilityDelegator
.
waitAbilityMonitor
(
monitor
,
timeout
,
(
err
,
data
)
=>
{
console
.
info
(
"
startAbility callback
"
);
ability
=
data
;
});
console
.
info
(
"
waitAbilityMonitor callback
"
);
```
});
### 调度Ability生命周期
var
want
=
{
bundleName
:
"
bundleName
"
,
AbilityDelegator提供对Ability生命周期进行显示调度,支持Foreground、Background,配合AbilityMonitor中对Ability生命周期监听方法,可以完整的测试Ability生命周期变化。具体详细内容请参考AbilityDelegator API接口说明
[
AbilityDelegator
](
../reference/apis/js-apis-application-abilityDelegator.md
)
。
abilityName
:
"
abilityName
"
};
### 执行shellCMD命令
abilityDelegator
.
startAbility
(
want
,
(
err
,
data
)
=>
{
console
.
info
(
"
startAbility callback
"
);
AbilityDelegator提供执行shellCMD命令功能,开发者可以在测试代码中执行shell命令,该功能仅在测试环境中生效,非测试环境该接口调用无效果。
});
**示例:**
```
```
javascript
### 调度Ability生命周期
var
abilityDelegator
;
var
cmd
=
"
cmd
"
;
AbilityDelegator提供对Ability生命周期进行显示调度的能力,支持Foreground、Background,配合AbilityMonitor中对Ability生命周期监听方法,可以完整的测试Ability生命周期变化。具体详细内容请参考AbilityDelegator API接口说明
[
AbilityDelegator
](
../reference/apis/js-apis-application-abilityDelegator.md
)
。
abilityDelegator
=
AbilityDelegatorRegistry
.
getAbilityDelegator
();
abilityDelegator
.
executeShellCommand
(
cmd
,
(
err
,
data
)
=>
{
### 执行shellCMD命令
console
.
info
(
"
executeShellCommand callback
"
);
});
AbilityDelegator提供执行shellCMD命令功能,开发者可以在测试代码中执行shell命令,该功能仅在测试环境中生效,非测试环境该接口调用无效果。
**示例:**
```
javascript
var
abilityDelegator
;
var
cmd
=
"
cmd
"
;
abilityDelegator
=
AbilityDelegatorRegistry
.
getAbilityDelegator
();
abilityDelegator
.
executeShellCommand
(
cmd
,
(
err
,
data
)
=>
{
console
.
info
(
"
executeShellCommand callback
"
);
});
```
### 打印日志信息
AbilityDelegator提供打印日志信息功能,开发者可以在测试代码中输出过程日志信息到终端控制台。
**示例:**
```
javascript
var
abilityDelegator
;
var
msg
=
"
msg
"
;
abilityDelegator
=
AbilityDelegatorRegistry
.
getAbilityDelegator
();
abilityDelegator
.
print
(
msg
,
(
err
)
=>
{
console
.
info
(
"
print callback
"
);
});
```
### 结束测试并打印日志信息
AbilityDelegator提供主动结束测试的功能,开发者可以在测试代码中主动结束测试过程并输出日志码及信息到终端控制台。
**示例:**
```
javascript
var
abilityDelegator
;
var
msg
=
"
msg
"
;
abilityDelegator
=
AbilityDelegatorRegistry
.
getAbilityDelegator
();
abilityDelegator
.
finishTest
(
msg
,
0
,
(
err
)
=>
{
console
.
info
(
"
finishTest callback
"
);
});
```
```
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录