Python 版本 API

BaseCase

BaseCase是所有测试Case的基类,继承该基类需要自己实现run方法。

run(context)

​Case逻辑入口。

参数

参数 必选 类型 说明
context CaseContext对象 仅需要继承,执行时会自动传入CaseContext对象
start()

​创建BaseCase实例对象后,调用对象的start方法运行Case。

Logger

​Logger模块为用户提供了格式化的log输出。

from mini_game_test_case_py.lib import Logger
Logger.info("test")
Logger.warn("test")
Logger.error("test")
CaseContext

​CaseContext对象会通过run方法传入,是自动化框架的核心工具类。

find_path(path)

通过Path搜索目标节点。

参数

参数 必选 类型 说明
path String 目标节点对应的Path路径

返回

NodeSelector实例对象

find_img(img_path)

​通过图片搜索元素。

参数

参数 必选 类型 说明
img_path String 目标图片对项目根目录的相对路径

返回

ImgSelector实例对象

select(kwargs)

​通过条件选择后代节点,从根节点开始。

参数

参数 必选 类型 说明
kwargs dict/function 选择节点的条件,可传入匿名函数判断

kwargs例子:

ns = c.select({"k1":"v1","k2":"v2"})
#传入匿名函数,匿名函数的唯一参数为实际节点n对象,其包含节点内的各种属性。可以在匿名函数中对节点属性做条件判断,然后返回true/false来表示节点是否符合要求。
ns = c.select(lambada n : n.get("className","") == "k1")

返回

NodeSelector实例对象

child(kwargs)

​通过条件选择子节点,从根节点开始。

参数

参数 必选 类型 说明
kwargs dict/function 选择节点的条件,可传入匿名函数判断

kwargs例子:

ns = c.child({"k1":"v1","k2":"v2"})
#传入匿名函数,匿名函数的唯一参数为实际节点n对象,其包含节点内的各种属性。可以在匿名函数中对节点属性做条件判断,然后返回true/false来表示节点是否符合要求。
ns = c.child(lambada n : n.get("className","") == "k1")

返回

NodeSelector实例对象

tap(x, y, is_per = true)

​点击目标坐标。

参数

参数 必选 类型 说明
x float 横坐标
y float 纵坐标
is_per bool 传入坐标是否为百分比,默认true

例子:

# 如果is_per为true,则传入x,y为0到1之间的浮点数,代表百分比坐标
c.tap(0.5, 0.5, true)
c.tap(180.5, 360.5, false)

返回

无​

swipe(x1, y1, x2, y2, is_per = true)

​由起点坐标到终点坐标滑动。

参数

参数 必选 类型 说明
x1 float 起点横坐标
y1 float 起点纵坐标
x2 float 终点横坐标
y2 float 终点纵坐标
is_per bool 传入坐标是否为百分比,默认true

例子:

# 如果is_per为true,则传入x,y为0到1之间的浮点数,代表百分比坐标
c.swipe(0.5, 0.5, 0.6, 0.6, true)
c.swipe(180, 360, 240, 360 , false)

返回

无​

sleep(ms)

​等待。

参数

参数 必选 类型 说明
ms int 等待毫秒数

例子:

# 等待2s
c.sleep(2000)

返回

wait_for_node(path, interval = 1000, num = 3)

​等待节点出现,间隔默认为1000ms,检验3次。

参数

参数 必选 类型 说明
path string 节点选择Path
interval int 每次检查间隔时间
num int 检查次数

例子:

#等待a节点出现,超时时间为3s
a = "{a}>{b}>{c[index=3]}"
c.wait_for_node(a, 1000, 3)

返回

NodeSelector实例对象

snapshot()

​截屏。

参数

例子:

//imgPath为截图文件的绝对路径
imgPath = c.snapshot()

返回

截图文件的绝对路径

NodeSelector

​NodeSelector对象是选择节点得到的结果对象,可触发包含节点的事件,同时可以以其自身为基础进行进一步筛选。

​如果没有搜索到对应节点,会返回一个内容为空的NodeSelector对象,即包含节点数为0,is_empty()返回true。

tap()

点击节点。如果包含节点为空或多个的节点,调用tap会出现错误。

参数

例子:

ns.tap()

返回

无​

swipe(x, y, is_per = true)

​以该节点为起点,目标坐标为终点滑动。如果包含节点为空或有多个的节点,调用会出现错误。

参数

参数 必选 类型 说明
x float 终点横坐标
y float 终点纵坐标
is_per bool 传入坐标是否为百分比,默认true

例子:

# 如果is_per为true,则传入x,y为0到1之间的浮点数,代表百分比坐标
ns.swipe(0.5, 0.5)
ns.swipe(180.5, 360.5, false)

返回

select(kwargs)

​通过条件选择后代节点。

参数

参数 必选 类型 说明
kwargs dict/function 选择节点的条件,可传入匿名函数判断

kwargs例子:

ns = ns.select({"k1":"v1","k2":"v2"})
#传入匿名函数,匿名函数的唯一参数为实际节点n对象,其包含节点内的各种属性。可以在匿名函数中对节点属性做条件判断,然后返回true/false来表示节点是否符合要求。
ns = ns.select(lambada n : n.get("className","") == "k1")

返回

NodeSelector实例对象

child(kwargs)

​通过条件选择子节点。

参数

参数 必选 类型 说明
kwargs dict/function 选择节点的条件,可传入匿名函数判断

例子:

ns = ns.child({"k1":"v1","k2":"v2"})
#传入匿名函数,匿名函数的唯一参数为实际节点n对象,其包含节点内的各种属性。可以在匿名函数中对节点属性做条件判断,然后返回true/false来表示节点是否符合要求。
ns = ns.child(lambada n : n.get("className","") == "k1")

返回

NodeSelector实例对象

is_empty()

​当前NodeSelector对象包含的节点数是否为0,即是包含节点。

参数

例子:

if(!ns.is_empty()){
 pass
}

返回

bool

len()

​返回当前ns对象包含的节点数。

参数

例子:

num = ns.len()

返回

int

ImgSelector

​ImgSelector 对象是图片匹配的结果对象。

​如果没有搜索到对应图像,会返回一个内容为空的ImgSelector对象,is_empty()返回true。 ​

tap()

​点击图像,如果对空is对象调用会产生error。

参数

例子:

is.tap()

返回

无​

swipe(x, y, is_per = true)

​以该节点为起点,目标坐标为终点滑动。如果对空is对象调用会产生error。

参数

参数 必选 类型 说明
x float 终点横坐标
y float 终点纵坐标
is_per bool 传入坐标是否为百分比,默认true

例子:

# 如果is_per为true,则传入x,y为0到1之间的浮点数,代表百分比坐标
is.swipe(0.5, 0.5)
is.swipe(180.5, 360.5, false)

返回

is_empty()

当前ImgSelector对象是否为空。

参数

例子:

if(!is.is_empty()){
 pass
}

返回

bool

Asserts
Asserts 包含测试Case节点相关的断言方法
assert_nodeselector_exists(ns)

断言当前ns存在,如果不存在会产生error,终止测试。使用前需要import Asserts。

参数

参数 必选 类型 说明
ns NodeSelector 断言存在的节点

例子:

from mini_game_test_case_py.lib import Asserts
ns = c.find_path("{{a}>{b}>{c[index=3]}}")
Asserts.assert_nodeselector_exists(ns)

返回

assert_nodeselector_not_exists(ns)

断言当前ns不存在,如果存在会产生error,终止测试。使用前需要import Asserts。

参数

参数 必选 类型 说明
ns NodeSelector 断言不存在的节点

例子:

from mini_game_test_case_py.lib import Asserts
ns = c.find_path("{{a}>{b}>{c[index=3]}}")
Asserts.assert_nodeselector_not_exists(ns)

返回

assert_imgselector_exists(is)

断言当前img_selector存在,如果不存在会产生error,终止测试。使用前需要import Asserts。

参数

参数 必选 类型 说明
img_selector ImgSelector 断言存在的节点

例子:

from mini_game_test_case_py.lib import Asserts
img_selector = c.find_img("image path")
Asserts.assert_imgselector_exists(img_selector)

返回

assert_imgselector_not_exists(is)

​断言当前img_selector不存在,如果存在会产生error,终止测试。使用前需要import Asserts。

参数

参数 必选 类型 说明
img_selector ImgSelector 断言存在的节点

例子:

from mini_game_test_case_py.lib import Asserts
img_selector = c.find_img("image path")
Asserts.assert_nodeselector_not_exists(img_selector)

返回