• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# -*- coding: utf-8 -*-
2import os
3import re
4import sys
5
6from devicetest.api import Asserts
7from devicetest.aw.OpenHarmony import DeviceInfoHelper
8from devicetest.log.logger import print_info
9
10from test_case import ITestCase
11from xdevice import DeviceState
12
13
14class Launcher(ITestCase):
15
16    def __init__(self, controllers):
17        super().__init__(controllers)
18
19    def setup(self):
20        pass
21
22    def process(self):
23        for retry in range(3):
24            try:
25                self.step('步骤1.{}:点亮屏幕'.format(retry))
26                self.common_oh.shell(self.Phone1, 'mkdir -p /data/local/tmp/screen_test/train_set')
27                self.common_oh.shell(self.Phone1, 'power-shell wakeup;power-shell setmode 602')
28                self.step('步骤2.{}:滑动解锁'.format(retry))
29                for i in range(2):
30                    self.common_oh.shell(self.Phone1, 'uinput -T -m 425 400 425 1000;uinput -T -m 425 1000 425 400')
31
32                # 屏幕常亮
33                self.step('步骤3.{}:设置屏幕常亮'.format(retry))
34                DeviceInfoHelper.setSleep(self.Phone1, time_sleep=600)
35                self.common_oh.click(self.Phone1, x=360, y=720)
36                self.common_oh.wait(self.Phone1, 3)
37                # 控件检查
38                self.step('步骤4.{}:检查是否在桌面'.format(retry))
39                self.common_oh.checkIfTextExist(self.Phone1, '相机')
40                self.common_oh.checkIfTextExist(self.Phone1, '音乐')
41                # 截图对比
42                self.step('步骤5.{}:截图对比'.format(retry))
43                launcher_pic = 'launcher.jpeg'
44                self.take_picture_to_local(launcher_pic)
45                similarity = self.compare_image_similarity(launcher_pic)
46                print_info('相似度为:{}%'.format(similarity))
47                self.asserts.assert_greater_equal(similarity, self.STANDARD_SIMILARITY)
48                break
49            except:
50                if retry < 2:
51                    self.step('步骤6.{}:启动失败,重启设备,重试'.format(retry))
52                    self.common_oh.safeReboot(self.Phone1)
53                else:
54                    self.step('步骤7.{}:重试了3次,启动失败,收集crash'.format(retry))
55                    self.common_oh.shell(self.Phone1, 'cd /data/log/faultlog/temp && tar -cf after_test_cppcrash{}.tar cppcrash*'.format(self.device_name))
56                    self.common_oh.pullFile(self.Phone1, '/data/log/faultlog/temp/after_test_cppcrash{}.tar'.format(self.device_name), os.path.normpath(self.local_save_path))
57                    # fault logger
58                    self.common_oh.shell(self.Phone1, 'cd /data/log/faultlog/faultlogger && tar -cf after_test_jscrash{}.tar jscrash*'.format(self.device_name))
59                    self.common_oh.pullFile(self.Phone1, '/data/log/faultlog/faultlogger/after_test_jscrash{}.tar'.format(self.device_name), os.path.normpath(self.local_save_path))
60                    raise
61
62    def teardown(self):
63        self.step('收尾动作1:cat /proc/`pidof foundation`/smaps_rollup')
64        self.common_oh.shell(self.Phone1, 'cat /proc/`pidof foundation`/smaps_rollup')
65