• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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