兼容性判断主体:
def run_judge(self):
"""
兼容测试:主要通过有效点击数与无效点击数判断是否兼容
:return:
"""
run_key_ok = 11 # 设定有效点击数,达到有效点击数及判断为兼容
run_key_no = 11 # 设定无效点击数,达到无效点击数及判断为不兼容
rum_key = 21 # 设定点击总数,达到总数后判断不兼容
try:
click_num = 0
not_click_num = 0
key_num = 0
msg = ""
while True:
self.passForClick()
clicks = set(self.d(clickable="True", packageName=self.page))
if len(clicks) != 0:
rdm = random.randint(0, len(clicks) - 1)
list(clicks)[rdm].click()
click_num = click_num + 1
log.info("[{}]完成{}次有效点击[{}]".format(self.device_info, click_num, self.page))
if click_num >= run_key_ok:
log.info("[{}]已完成既定{}次有效点击[{}]".format(self.device_info, click_num, self.page))
return True
else:
if self.d.app_current()['package'] == self.page:
log.info("[{}]当前页面无可点击对象,尝试滑屏······[{}]".format(self.device_info, self.page))
case_msg = self.dragPage
if msg == case_msg:
key_num = rum_key + 1
msg = ""
log.info("[{}]上次尝试滑屏无响应,终止测试······[{}]".format(self.device_info, self.page))
else:
msg = self.dragPage
elif self.get_run():
log.info("[{}]当前页面不是测试应用,尝试返回······[{}]".format(self.device_info, self.page))
self.d.press('back')
if self.d.app_current()['package'] != self.page:
not_click_num = not_click_num + 2
log.info("[{}]尝试返回后未返回测试应用,计无效点击{}次,尝试重启应用······[{}]".format
(self.device_info, not_click_num, self.page))
if not_click_num >= run_key_no:
tms = str(time.time())
self.d.screenshot("./resTest/screenshot/{}.png".format(tms))
log.info("[{}]已达到既定无效点击{}次数,截图取证······[{}]".format
(self.device_info, not_click_num, self.page))
return "./resTest/screenshot/{}.png".format(tms)
self.d.app_start(self.page)
else:
not_click_num = not_click_num + 1
log.info("[{}]无效点击{}次······[{}]".format(self.device_info, not_click_num, self.page))
if not_click_num >= run_key_no:
tms = str(time.time())
self.d.screenshot("./resTest/screenshot/{}.png".format(tms))
log.info(
"[{}]已达到既定无效点击{}次数,截图取证······[{}]".format(self.device_info, not_click_num, self.page))
return "./resTest/screenshot/{}.png".format(tms)
key_num = key_num + 1
if key_num >= rum_key:
tms = str(time.time())
self.d.screenshot("./resTest/screenshot/{}.png".format(tms))
log.info(
"[{}]有效点击{}次,无效点击{}次,仍无法判断兼容[{}]".format(self.device_info, click_num, not_click_num, self.page))
return "./resTest/screenshot/{}.png".format(tms)
time.sleep(TIME)
except Exception as a:
log.error("程序异常:{}".format(a))
tm = str(time.time())
self.d.screenshot("./resTest/screenshot/{}.png".format(tm))
return "./resTest/screenshot/{}.png".format(tm)