下面是基于Airtest和Poco自动化测试框架的模板,并包含使用测试套件执行的方法说明。Airtest是一个跨平台的UI自动化测试框架,而Poco是一个用于UI元素定位的辅助库。
项目结构
your_project/
├── test_suite/
│ ├── __init__.py
│ ├── test_case1.air
│ ├── test_case2.air
│ └── test_case3.air
├── scripts/
│ ├── __init__.py
│ └── run_tests.py
└── requirements.txt
requirements.txt
airtest
poco
test_case1.air(测试用例1)
# test_case1.air
from airtest.core.api import *
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
# 连接设备
connect_device("Android:///")
# 初始化Poco
poco = AndroidUiautomationPoco()
# 测试步骤
def test_case1():
start_app("com.example.yourapp")
poco("com.example.yourapp:id/button_start").click()
assert_exists(Template(r"tpl_button_start.png"), "Start button should be visible")
# 其他测试步骤...
# 执行测试用例
if __name__ == "__main__":
test_case1()
run_tests.py(运行测试套件)
import unittest
from airtest.cli.runner import AirtestCase, run_script
from airtest.report.report import simple_report
class TestSuite(unittest.TestCase):
def run_airtest_script(self, script_path):
class CustomAirtestCase(AirtestCase):
def setUp(self):
super(CustomAirtestCase, self).setUp()
def tearDown(self):
super(CustomAirtestCase, self).tearDown()
simple_report(script_path, log_root=self.log)
suite = unittest.TestLoader().loadTestsFromTestCase(CustomAirtestCase)
unittest.TextTestRunner().run(suite)
def test_case1(self):
self.run_airtest_script('test_suite/test_case1.air')
def test_case2(self):
self.run_airtest_script('test_suite/test_case2.air')
def test_case3(self):
self.run_airtest_script('test_suite/test_case3.air')
if __name__ == '__main__':
unittest.main()
使用方法
-
安装依赖: 在项目根目录下运行
pip install -r requirements.txt
安装所需的依赖。 -
编写测试用例: 在
test_suite
目录下创建测试用例文件,每个测试用例都是一个.air
文件。参考test_case1.air
的示例。 -
运行测试套件: 在
scripts
目录下运行python run_tests.py
执行测试套件。
说明
run_tests.py
中的TestSuite
类继承自unittest.TestCase
,并且包含每个测试用例的方法 (test_case1
,test_case2
,test_case3
等)。这些方法会调用run_airtest_script
方法执行对应的 Airtest 脚本。run_airtest_script
方法使用AirtestCase
运行每个 Airtest 脚本,并生成简单的测试报告。- 可以根据需要在
test_suite
目录下添加更多的测试用例,并在TestSuite
类中添加相应的方法来运行这些测试用例。
这样,通过组织结构化的测试用例文件和运行脚本,可以有效地管理和执行基于Airtest和Poco的自动化测试。