1# -*- coding: utf-8 -*- 2import json 3import os 4 5from devicetest.api import Asserts 6from devicetest.aw.OpenHarmony import WifiHelper 7from devicetest.log.logger import print_info 8 9from test_case import ITestCase 10 11 12class SettingsWifi(ITestCase): 13 app_name = 'settings_wifi' 14 ability_name = 'com.ohos.settings.MainAbility' 15 bundle_name = 'com.ohos.settings' 16 17 def __init__(self, controllers): 18 super().__init__(controllers) 19 20 def setup(self): 21 self.step('前置条件1:关闭wifi,回到桌面') 22 try: 23 WifiHelper.closeWifi(self.Phone1) 24 except: 25 pass 26 self.common_oh.goHome(self.Phone1) 27 self.step('前置条件2:检查当前界面是否在桌面') 28 self.common_oh.checkIfTextExist(self.Phone1, '相机') 29 30 def process(self): 31 self.step('步骤1:打开设置') 32 self.common_oh.startAbility(self.Phone1, self.ability_name, self.bundle_name) 33 self.step('步骤2:检查是否在设置界面') 34 self.common_oh.checkIfTextExist(self.Phone1, '设置') 35 self.common_oh.checkIfTextExist(self.Phone1, 'WLAN') 36 self.step('步骤3:截图对比') 37 settings_pic = 'settings.jpeg' 38 self.take_picture_to_local(settings_pic) 39 self.crop_picture(settings_pic) 40 similarity = self.compare_image_similarity(settings_pic) 41 print_info('相似度为:{}%'.format(similarity)) 42 self.asserts.assert_greater_equal(similarity, self.STANDARD_SIMILARITY) 43 self.step('步骤4:点击"WLAN"进入WLAN页面') 44 # 点击wlan 45 self.common_oh.touchByText(self.Phone1, 'WLAN', mode='NORMAL') 46 self.common_oh.wait(self.Phone1, 3) 47 # 打开wlan 48 self.step('步骤5:打开wifi开关') 49 self.common_oh.touchByType(self.Phone1, 'Toggle') 50 self.common_oh.wait(self.Phone1, 10) 51 self.step('步骤6:检查wifi是否打开') 52 WifiHelper.checkWifiState(self.Phone1) 53 54 # def enter_setting_page(self): 55 # self.common_oh.startAbility(self.Phone1, self.ability_name, self.bundle_name) 56 # self.common_oh.wait(self.Phone1, 5) 57 # self.step('控件检查') 58 # # 控件检查 59 # self.common_oh.checkIfTextExist(self.Phone1, '设置') 60 # self.common_oh.checkIfTextExist(self.Phone1, '搜索设置项') 61 # self.common_oh.checkIfTextExist(self.Phone1, 'WLAN') 62 # self.common_oh.checkIfTextExist(self.Phone1, '声音') 63 # self.common_oh.checkIfTextExist(self.Phone1, '应用') 64 # # 截图对比 65 # self.step('截图对比') 66 # settings_pic = 'settings.jpeg' 67 # self.take_picture_to_local(settings_pic) 68 # self.crop_picture(settings_pic) 69 # similarity = self.compare_image_similarity(settings_pic)[0] 70 # self.step('{}和标准图的相似度为{}%'.format(settings_pic, similarity)) 71 # Asserts.assert_greater_equal(similarity, self.STANDARD_SIMILARITY) 72 # 73 # def enter_wlan_page(self): 74 # self.step('进入WLAN页面') 75 # # 点击wlan 76 # self.common_oh.touchByText(self.Phone1, 'WLAN', mode='NORMAL') 77 # self.common_oh.wait(self.Phone1, 3) 78 # # 打开wlan 79 # toggle = self.common_oh.getWidgetProperties(self.Phone1, 'type/Toggle') 80 # properties = json.loads(toggle) 81 # if properties.get('checked') is False: 82 # self.common_oh.touchByType(self.Phone1, 'Toggle') 83 # self.common_oh.wait(self.Phone1, 5) 84 # 85 # wlan_list_pic = 'wlan_list.jpeg' 86 # self.take_picture_to_local(wlan_list_pic) 87 # WifiHelper.checkWifiState(self.Phone1) 88 # # assert WifiHelper.checkWifiState(self.Phone1), AssertionError('failed to turn on wifi') 89 # # self.step('wifi has turned on') 90 # 91 # def connect_wifi(self): 92 # self.connect_by_click_point() 93 # # 上面的靠坐标点击的方式,容错率低,直接采用Wifi模块 94 # # self.connect_by_wifi_helper() 95 # wifi_pic = 'wifi.jpeg' 96 # self.take_picture_to_local(wifi_pic) 97 # self.common_oh.wait(self.Phone1, 1) 98 # wifi_cs_pic = 'wifi_connection_status.jpeg' 99 # self.take_picture_to_local(wifi_cs_pic) 100 # self.common_oh.wait(self.Phone1, 1) 101 # 102 # def connect_by_wifi_helper(self): 103 # pwd = 'passw0rd1!' 104 # try: 105 # # WifiHelper.connectWifi(self.Phone1, 'testapold', pwd) 106 # WifiHelper.connectWifi(self.Phone1, 'testapold_Wi-Fi5', pwd) 107 # except: 108 # try: 109 # WifiHelper.connectWifi(self.Phone1, 'testapold', pwd) 110 # except: 111 # pass 112 # # WifiHelper.connectWifi(self.Phone1, 'testapold_Wi-Fi5', pwd) 113 # self.common_oh.wait(self.Phone1, 20) 114 # 115 # def connect_by_click_point(self): 116 # self.step('点击待连接的wifi') 117 # try: 118 # self.common_oh.touchByText(self.Phone1, 'testapold', mode='NORMAL') 119 # except: 120 # try: 121 # self.common_oh.touchByText(self.Phone1, 'testapold_Wi-Fi5', mode='NORMAL') 122 # except: 123 # pass 124 # try: 125 # self.step('点击密码输入框') 126 # self.common_oh.wait(self.Phone1, 1) 127 # self.common_oh.click(self.Phone1, 200, 200, mode='NORMAL') 128 # self.common_oh.wait(self.Phone1, 1) 129 # for i in range(3): 130 # if self.common_oh.checkIfTextExist(self.Phone1, '?123', 'CONTAINS'): 131 # # 双击切换到数字输入界面再切回来,使输入法为小写状态 132 # self.common_oh.click(self.Phone1, 60, 1150, mode='DOUBLE') 133 # break 134 # elif self.common_oh.checkIfTextExist(self.Phone1, 'ABC', 'CONTAINS'): 135 # # 双击切换到数字输入界面再切回来,使输入法为小写状态 136 # self.common_oh.click(self.Phone1, 60, 1150, mode='NORMAL') 137 # break 138 # # 切换为大写 139 # # self.common_oh.click(self.Phone1, 60, 1040, mode='DOUBLE') 140 # # 密码: passw0rd1! 141 # # P 142 # self.common_oh.click(self.Phone1, 678, 800, mode='NORMAL') 143 # # A 144 # self.common_oh.click(self.Phone1, 80, 920, mode='NORMAL') 145 # # S S 146 # self.common_oh.click(self.Phone1, 150, 920, mode='NORMAL') 147 # self.common_oh.click(self.Phone1, 150, 920, mode='NORMAL') 148 # # W 149 # self.common_oh.click(self.Phone1, 110, 800, mode='NORMAL') 150 # # 切数字输入键盘 151 # self.common_oh.click(self.Phone1, 60, 1150, mode='NORMAL') 152 # # 0 153 # self.common_oh.click(self.Phone1, 678, 800, mode='NORMAL') 154 # # 切回字母输入界面 155 # self.common_oh.click(self.Phone1, 60, 1150, mode='NORMAL') 156 # # self.common_oh.click(self.Phone1, 60, 1040, mode='DOUBLE') 157 # # R 158 # self.common_oh.click(self.Phone1, 250, 800, mode='NORMAL') 159 # # D 160 # self.common_oh.click(self.Phone1, 220, 920, mode='NORMAL') 161 # # 切数字输入键盘 162 # self.common_oh.click(self.Phone1, 60, 1150, mode='NORMAL') 163 # # 1 164 # self.common_oh.click(self.Phone1, 30, 800, mode='NORMAL') 165 # # ! 166 # self.common_oh.click(self.Phone1, 500, 1040, mode='NORMAL') 167 # # 点击输入框右边的眼睛查看密码 168 # self.common_oh.click(self.Phone1, 655, 200, mode='NORMAL') 169 # self.common_oh.wait(self.Phone1, 2) 170 # self.take_picture_to_local('password.jpeg') 171 # # 收起输入法 172 # self.common_oh.click(self.Phone1, 675, 700, mode='NORMAL') 173 # self.common_oh.wait(self.Phone1, 2) 174 # # 点击连接 175 # self.common_oh.touchByText(self.Phone1, '连接', mode='NORMAL') 176 # self.common_oh.wait(self.Phone1, 25) 177 # except: 178 # self.step('SmokeTest: wifi list loading error!') 179 180 def teardown(self): 181 self.step('收尾1:关闭wifi开关') 182 try: 183 WifiHelper.closeWifi(self.Phone1) 184 except: 185 pass 186 self.step('收尾2:停掉设置应用') 187 self.common_oh.forceStopAbility(self.Phone1, self.bundle_name) 188