【您来了,感觉还不错的话,记得点个赞哦~】

1.UI测试框架使能:---开启

hdc_std shell param set persist.ace.testmode.enabled 1


本次测试基于api9完成,其他版本需要进一步调测是否可行。

【前提条件】

一、在进行自动化测试之前,需要先执行该命令。

UI测试框架使能命令: hdc shell param set persist.ace.testmode.enabled 1

【必用功能】

二、常用功能特性

1.Driver Ui测试的入口,提供查找控件,检查控件存在性以及注入按键能力。

2.On 用于目标控件特性(文本、id、类型等),Driver根据On描述的控件特性信息来查找控件。

3.Component Driver查找返回的控件对象,提供查询控件属性,滑动查找等触控和检视能力。

4.UiWindow Driver 查找返回的窗口对象,提供获取窗口属性、操作窗口的能力。

引入使用: import {ON,Driver, Component, MatchPattern} from '@ohos.UiTest';

测试用例中使用的常见属性

import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium';

describe:用来定义一个测试套,支持两个参数:测试套名称、测试套函数

it:定义一条测试用例,支持三个参数:用例名称、过滤参数、和用例函数

【测试用例钩子函数】测试用例中钩子函数:

beforeAll

beforeEach

afterEach

afterAll

beforeSpecified

afterItSpecified

【获取当前测试用例信息】

获取测试用例的信息: getDescribeName:

获取当前正在执行测试套的名称 getItName:

获取当前正在执行测试用例的名称。 getItAttribute:

获取当前正在执行的测试用例的级别、粒度、测试类型。


【查找控件】

绝对定位:

1.通过id

let button:Component = await driver.findComponent(ON.id('xxxId'))

2.通过文本查找 其中包括四种匹配方式:

模糊匹配:MatchPattern.CONTAINS

精确查找(默认规则):MatchPattern.EQUALS

从开始匹配:MatchPattern.STARTS_WITH

从结束匹配:MatchPattern.ENDS_WITH

let txt:Component = await driver.findComponent(ON.text('hello',MatchPattern))

3.通过类型查找一类列表:查找的组件结果为列表,可通过数组形式的方式取值,索引方式。

let findComponentArr = await driver.findComponents(ON.type('Button'))
await result[4].click()

【操作事件】

点击 输入 滑动查找,并点击 滑动到顶部 滑动到底部

【获取控件内容】

通过查找的控件,获取控件信息常用命令:

1.获取控件文本 xxx.getText()

2.获取控件Id xxx.getId()

3.获取控件类型 xxx.getType()

4.获取控件使能状态 xxx.isEnabled()

【断言能力】

1.断言组件是否存在:

方式一: expect (component !== null).assertTrue()

方式二: 断言当前界面存在目标控件:

await driver.assertComponentExist(ON.text('hello'))

2.断言字符串是否包含

assertContain()

3.断言两个值是否相等

assertEqual()

4.断言a是否大于b

assertLarger()

5.断言a是否小于b

assertLess()

6.断言变量是否为null

assertNull()

7.断言变量是否是undefined

assertUndefined()

8.断言变量结果是否是false

assertFalse()

【额外可用功能】

截屏:screenCap(path)


补充:

【API】

官方api

1.清空文本框控件的文本信息

await textInput.clearText();

2.findComponents let result = driver.findComponents(ON.type('Image'))

得到的result是数组

【hdc相关命令】

2.启动应用 hdc shell aa start -a

#举个例子 hdc shell aa start -a PlayerAbility -b com.DefaultCompany.Sample

3.强制关闭 hdc shell aa force-stop

#举个例子 hdc shell aa force-stop com.DefaultCompany.sampleBundle