diff --git a/zh-cn/application-dev/application-test/arkxtest-guidelines.md b/zh-cn/application-dev/application-test/arkxtest-guidelines.md index 977aafd14bb11b93490f2dce12870f65f0bb1dcd..067cadd7233c3e419f28c6b030eed43827f37909 100644 --- a/zh-cn/application-dev/application-test/arkxtest-guidelines.md +++ b/zh-cn/application-dev/application-test/arkxtest-guidelines.md @@ -554,9 +554,21 @@ hdc shell uitest dumpLayout -p /data/local/tmp/1.json > > 录制过程中,需等待当前操作的识别结果在命令行输出后,再进行下一步操作。 +| 命令 | 配置参数 | 必填 | 描述 | +|-------|--------------|------|-----------------| +| -W | | 否 | 录制过程中是否保存控件信息。true表示保存控件信息,false表示仅记录坐标信息,不使用此选项时设置为true。 | +| -l | | 否 | 在每次作后保存当前布局信息。 | +| -c | | 否 | 是否将录制到的操作事件信息打印到控制台,true 表示打印,不使用此选项时设置为true | + ```bash # 将当前界面操作记录到/data/local/tmp/record.csv,结束录制操作使用Ctrl+C结束录制。 hdc shell uitest uiRecord record +# 录制时仅记录操作对应的坐标,不匹配目标控件。 +hdc shell uitest uiRecord record -W false +# 每次操作后,保存页面布局,文件保存路径:/data/local/tmp/layout_录制启动时间戳_操作序号.json。 +hdc shell uitest uiRecord record -l +# 录制到的操作事件信息不打印到控制台。 +hdc shell uitest uiRecord record -c false # 读取并打印录制数据。 hdc shell uitest uiRecord read ``` @@ -811,6 +823,10 @@ hdc shell uitest start-daemon #### 模拟调整窗口大小能力实例 介绍模拟调整窗口大小能力,并可指定调整的具体方向,具体代码请参考[模拟调整窗口大小能力示例](https://gitee.com/openharmony/applications_app_samples/blob/master/code/Project/Test/uitest/entry/src/ohosTest/ets/test/operationExampleTest/window/ReSizeWindow.test.ets)。 +### 白盒性能测试脚本实例 + +介绍调用PerfTest接口,实现白盒性能测试的能力,具体代码请参考[白盒性能测试示例](https://gitee.com/openharmony/applications_app_samples/blob/master/code/Project/Test/perftest/entry/src/ohosTest/ets/test/PerfTest.test.ets)。 + ## 常见问题 diff --git a/zh-cn/application-dev/reference/apis-test-kit/js-apis-uitest.md b/zh-cn/application-dev/reference/apis-test-kit/js-apis-uitest.md index 33055e07f8194a37275090d4b1931831fb3621cf..08dcffb1c16477355e6b5c5e354d48fc273d4d1d 100644 --- a/zh-cn/application-dev/reference/apis-test-kit/js-apis-uitest.md +++ b/zh-cn/application-dev/reference/apis-test-kit/js-apis-uitest.md @@ -974,6 +974,48 @@ belongingDisplay(displayId: number): On let on:On = ON.belongingDisplay(0); // 使用静态构造器ON创建On对象,指定目标控件所属屏幕ID ``` +### originalText20+ + +originalText(text: string, pattern?: MatchPattern): On + +指定目标控件原始文本属性,支持多种匹配模式,返回On对象自身。 + +> **说明** +> +> 如果控件的无障碍属性[accessibilityLevel](../apis-arkui/arkui-ts/ts-universal-attributes-accessibility.md#accessibilitylevel)设置为'no'或'no-hide-descendants',则无法通过[On.text()](#text9)指定目标控件原始文本属性查找控件,但可以通过调用此接口实现。若控件未设置上述无障碍属性,则此接口与[On.text()](#text9)作用相同。 + +**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 + +**系统能力**:SystemCapability.Test.UiTest + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ----------------------------- | ---- | --------------------------------------------------- | +| text | string | 是 | 指定控件原始文本,用于匹配目标控件原始文本。 | +| pattern | [MatchPattern](#matchpattern) | 否 | 指定的文本匹配模式,默认为[EQUALS](#matchpattern)。 | + +**返回值:** + +| 类型 | 说明 | +| ---------- | ---------------------------------- | +| [On](#on9) | 返回指定目标控件文本属性的On对象。 | + +**错误码:** + +以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17000007 | Parameter verification failed.| + +**示例:** + +```ts +import { On, ON } from '@kit.TestKit'; +let on:On = ON.originalText('123'); // 使用静态构造器ON创建On对象,指定目标控件的originalText属性。 +``` + ## Component9+ UiTest框架在API9中,Component类代表了UI界面上的一个控件,提供控件属性获取,控件点击,滑动查找,文本注入等API。 @@ -2128,6 +2170,46 @@ async function demo() { } ``` +### getOriginalText20+ + +getOriginalText(): Promise\ + +获取控件对象的原始文本信息,使用Promise异步回调。 + +> **说明** +> +> 如果控件的无障碍属性[accessibilityLevel](../apis-arkui/arkui-ts/ts-universal-attributes-accessibility.md#accessibilityLevel)设置为'no'或'no-hide-descendants',则无法通过[Component.getText()](#gettext9)获取控件的原始文本,但可以通过调用此接口实现。若控件未设置上述无障碍属性,则此接口与[Component.getText()](#gettext9)作用相同。 + +**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 + +**系统能力**:SystemCapability.Test.UiTest + +**返回值:** + +| 类型 | 说明 | +| ---------------- | --------------------------------- | +| Promise\ | Promise对象,返回控件的原始文本信息。 | + +**错误码:** + +以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------------------- | +| 17000002 | The async function is not called with await. | +| 17000004 | The window or component is invisible or destroyed. | + +**示例:** + +```ts +import { Component, Driver, ON } from '@kit.TestKit'; +async function demo() { + let driver: Driver = Driver.create(); + let button: Component = await driver.findComponent(ON.type('Button')); + let text = await button.getOriginalText(); +} +``` + ## Driver9+ Driver类为uitest测试框架的总入口,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等能力。 @@ -4194,6 +4276,51 @@ async function demo() { } ``` +### mouseLongClick20+ + +mouseLongClick(p: Point, btnId: MouseButton, key1?: number, key2?: number, duration?: number): Promise + +在指定坐标点注入鼠标长按动作,支持同时按下对应键盘组合键,支持指定长按时长,使用Promise异步回调。例如,Key值为2072时,按下ctrl并进行鼠标长按动作。 + +**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 + +**系统能力**:SystemCapability.Test.UiTest + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------- | ---- | ------------------------------ | +| p | [Point](#point9) | 是 | 鼠标长按的坐标。 | +| btnId | [MouseButton](#mousebutton10) | 是 | 按下的鼠标按钮。 | +| key1 | number | 否 | 指定的第一个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | +| key2 | number | 否 | 指定的第二个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | +| duration | number | 否 | 长按持续的时间,取值范围为大于等于1500的整数,默认值为1500,单位:ms。 | + +**返回值:** + +| 类型 | 说明 | +|----------------|-----------------| +| Promise\ | Promise对象。无返回结果的Promise对象。 | + +**错误码:** + +以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17000002 | The async function is not called with await. | +| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| + +**示例:** + +```ts +import { Driver,MouseButton } from '@kit.TestKit'; +async function demo() { + let driver:Driver = Driver.create(); + await driver.mouseLongClick({x:248, y:194}, MouseButton.MOUSE_BUTTON_LEFT, 2072, 0, 2000); +} +``` + ### mouseMoveWithTrack11+ mouseMoveWithTrack(from: Point, to: Point, speed?: number): Promise\ @@ -4286,6 +4413,55 @@ async function demo() { } ``` +### mouseDrag20+ + +mouseDrag(from: Point, to: Point, speed?: number, duration?: number): Promise + +鼠标按住鼠标左键从起始坐标点拖拽至终点坐标点,支持指定拖拽速度和拖拽前长按时间,使用Promise异步回调。 + +> **说明** +> +> 该接口仅在手机、平板、PC/2in1设备上生效。 + +**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 + +**系统能力**:SystemCapability.Test.UiTest + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ---------------- | ---- |--------------------------------------------------------| +| from | [Point](#point9) | 是 | 起始点坐标。 | +| to | [Point](#point9) | 是 | 终点坐标。 | +| speed | number | 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。 | +| duration | number | 否 | 拖拽前长按持续的时间,取值范围为大于等于1500的整数,默认值为1500,单位:ms。 | + +**返回值:** + +| 类型 | 说明 | +|----------------|-----------------| +| Promise\ | Promise对象。无返回结果的Promise对象。 | + +**错误码:** + +以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17000002 | The async function is not called with await. | +| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| + +**示例:** + +```ts +import { Driver } from '@kit.TestKit'; + +async function demo() { + let driver: Driver = Driver.create(); + await driver.mouseDrag({x:100, y:100},{x:200, y:200}, 600, 2000); +} +``` + ### inputText11+ inputText(p: Point, text: string): Promise\ @@ -5145,6 +5321,10 @@ split(): Promise\ 将窗口模式切换成分屏模式,使用Promise异步回调。适用于支持切换分屏模式的窗口。 +> **说明** +> +> 该接口仅在平板、PC/2in1设备上生效。 + **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 **系统能力**:SystemCapability.Test.UiTest @@ -5182,6 +5362,10 @@ maximize(): Promise\ 将窗口最大化,使用Promise异步回调。适用于支持窗口最大化操作的窗口。 +> **说明** +> +> 该接口仅在平板、PC/2in1设备上生效。 + **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 **系统能力**:SystemCapability.Test.UiTest @@ -5219,6 +5403,10 @@ minimize(): Promise\ 将窗口最小化,使用Promise异步回调。适用于支持窗口最小化操作的窗口。 +> **说明** +> +> 该接口仅在平板、PC/2in1设备上生效。 + **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 **系统能力**:SystemCapability.Test.UiTest @@ -5256,6 +5444,10 @@ resume(): Promise\ 将窗口恢复到之前的窗口模式,使用Promise异步回调。 +> **说明** +> +> 该接口仅在平板、PC/2in1设备上生效。 + **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 **系统能力**:SystemCapability.Test.UiTest @@ -5293,6 +5485,10 @@ close(): Promise\ 将窗口关闭,使用Promise异步回调。 +> **说明** +> +> 该接口仅在平板、PC/2in1设备上生效。 + **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 **系统能力**:SystemCapability.Test.UiTest