封装测试基类¶
测试基类概述¶
QTAF中实现的测试基类《TestCase》提供了很多功能接口,如环境准备和清理、断言、日志相关等功能,详细见测试基类的相关说明。QT4i中的测试基类iTestBase重载了QTAF提供的测试基类,复用其功能,并扩展iOS需要的特定功能,如截图,获取crash日志等。
测试基类封装¶
目前qt4i的测试基类 qt4i.itestbase.iTestBase
已经实现了iOS需要的常用功能。你可以在demolib/demotestbase.py中封装你的测试基类DemoTestBase,并且该类继承于iTestBase,即可使用iTestBase中已有功能,同时可重载各个接口扩展针对你测试项目的自定义的功能。例如可如下使用:
from qt4i.itestcase import iTestCase
from qt4i.device import Device
from testbase.conf import settings
class DemoTestcase(iTestCase):
'''Demo测试用例基类
'''
def pre_test(self):
'''初始化测试用例
'''
super(iTestCase, self).pre_test()
self.log_info("%s.pre_test "%self.__class__.__name__)
def post_test(self):
'''清理下测试用例
'''
super(iTestCase, self).post_test()
self.clean_login()
self.log_info("%s.post_test "%self.__class__.__name__)
def clean_login(self):
'''清理App的登录状态
'''
for device in Device.Devices:
device.remove_file(settings.APP_BUNDLE_ID, "/Documents/contents/DemoAccountManager") #被测App登录态文件的存储路径
即可实现测试用例的环境准备或环境清理功能。除了以上封装的基本功能,你可能还需使用或重载其他接口,如:
::根据进程名(可通过xcode查看),获取App的crash日志:
def get_crash_log(self, procname):
每个步骤前自定义一些操作,例如每个步骤前都打印出时间戳,看出每个步骤耗时等,可以重载下面接口:
def start_step(self, step):
等等,更多参考QTAF和QT4i接口文档。
警告
重载基类各个接口时,必须显式调用基类的函数,以免基类的逻辑无法被执行到。