提交 801c2031 编写于 作者: X xuchenghua09

更新使用指导文档

Signed-off-by: Nxuchenghua09 <xuchenghua09@huawei.com>
上级 9bfd5485
# 测试框架使用指导 # 测试框架使用指导
## 概述 ## 概述
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.
先完成此消息的编辑!
想要评论请 注册