├── .gitignore ├── scroll_item.py ├── screen_on_off.py ├── install_on_ui.py ├── skip_setup.py ├── MediaCenter.py ├── wboot_stress.py └── iqiyi_tsos_game_stress.py /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.pyc 3 | data.cfg 4 | *.mp3 5 | *.pkl 6 | *.xls 7 | *.xml 8 | *.txt 9 | *.csv 10 | *.pkl 11 | *.log 12 | -------------------------------------------------------------------------------- /scroll_item.py: -------------------------------------------------------------------------------- 1 | #-*-coding=utf-8-*- 2 | __author__ = 'xda' 3 | from uiautomator import device as d 4 | import time 5 | def scroll_page(): 6 | for _ in range(7): 7 | d.press.down() 8 | time.sleep(2) 9 | for _ in range(7): 10 | d.press.up() 11 | time.sleep(2) 12 | 13 | 14 | 15 | 16 | for _ in range(60): 17 | scroll_page() -------------------------------------------------------------------------------- /screen_on_off.py: -------------------------------------------------------------------------------- 1 | #-*-coding=utf-8-*- 2 | __author__ = 'xda' 3 | from uiautomator import device as d 4 | import time 5 | def ScreenOnOff(count): 6 | d.screen.on() 7 | time.sleep(3) 8 | d.press.home() 9 | d.press.down() 10 | d.press.down() 11 | d.press.down() 12 | d.press.down() 13 | d.press.down() 14 | d.press.right() 15 | d.press.right() 16 | d.press.right() 17 | d.press.right() 18 | d.press.right() 19 | d.press.right() 20 | d.press.right() 21 | if d(text='Power').exists == False: 22 | print "Failed" 23 | d.screenshot('snapshot_%d.png' %count) 24 | d.press.enter() 25 | time.sleep(3) 26 | d.press.right() 27 | d.press.enter() 28 | 29 | time.sleep(12) 30 | print "cycles %d" %count 31 | 32 | def main(): 33 | for i in range(500): 34 | ScreenOnOff(i) 35 | 36 | main() 37 | -------------------------------------------------------------------------------- /install_on_ui.py: -------------------------------------------------------------------------------- 1 | #-*-coding=utf-8-*- 2 | __author__ = 'rocky chen' 3 | from uiautomator import device as d 4 | import time 5 | class QuickInstall(): 6 | def __init__(self): 7 | pass 8 | def install(self): 9 | #d.dump('iqiyi.xml') 10 | if d(textContains=u'下载').exists: 11 | print "get" 12 | #d.press.enter() 13 | d(textContains=u'下载').click() 14 | time.sleep(5) 15 | if d(textContains=u'打开').wait.exists(timeout=120000)==0: 16 | print "Install time out" 17 | d.press.back() 18 | exit() 19 | d.press.back() 20 | time.sleep(3) 21 | else: 22 | print "not get" 23 | d.press.back() 24 | time.sleep(5) 25 | def testcase(self): 26 | for _ in xrange(10): 27 | d.press.enter() 28 | time.sleep(5) 29 | self.install() 30 | d.press.right() 31 | 32 | 33 | 34 | 35 | obj=QuickInstall() 36 | obj.testcase() -------------------------------------------------------------------------------- /skip_setup.py: -------------------------------------------------------------------------------- 1 | #-*-coding=utf-8-*- 2 | __author__ = 'rocky chen' 3 | #connect kb or ts firstly 4 | from uiautomator import device as d 5 | import time,subprocess 6 | def skip_setup_case(): 7 | d.wait() 8 | time.sleep(30) 9 | d.press.enter() 10 | time.sleep(2) 11 | for _ in range(25): 12 | d.press.down() 13 | time.sleep(1) 14 | 15 | d.press.enter() 16 | time.sleep(2) 17 | d.press.back() 18 | cmd='adb shell input text 5G' 19 | subprocess.Popen(cmd, shell=True) 20 | d.press.enter() 21 | time.sleep(2) 22 | d.press.down() 23 | d.press.down() 24 | d.press.back() 25 | cmd='adb shell input text asdfqwer' 26 | subprocess.Popen(cmd, shell=True) 27 | time.sleep(15) 28 | d.press.enter() 29 | time.sleep(2) 30 | d.press.back() 31 | cmd='adb shell input text xxxxxxx' 32 | d.press.enter() 33 | time.sleep(5) 34 | cmd='adb shell input text xxxxxx' 35 | subprocess.Popen(cmd, shell=True) 36 | time.sleep(5) 37 | d.press.enter() 38 | d.press.enter() 39 | 40 | 41 | 42 | 43 | skip_setup_case() 44 | -------------------------------------------------------------------------------- /MediaCenter.py: -------------------------------------------------------------------------------- 1 | #-*-coding=utf-8-*- 2 | __author__ = 'rocky chen' 3 | ''' 4 | Test iQIYI MediaCenter 5 | Copy media content into usb drive and insert into device 6 | ''' 7 | from uiautomator import device as d 8 | import subprocess,time,re 9 | 10 | class MediaCenter_Test(): 11 | def __init__(self): 12 | self.package='com.tvos.EnjoyCenter' 13 | self.activity='com.tvos.EnjoyCenter/.media.VideoActivity' 14 | self.enjoy='com.tvos.EnjoyCenter/.app.MainActivity' 15 | 16 | 17 | def run_cmd(self,cmd): 18 | try: 19 | p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) 20 | return p.stdout.read() 21 | 22 | except Exception,e: 23 | print e 24 | return None 25 | 26 | def launch(self): 27 | self.run_cmd('adb root') 28 | time.sleep(3) 29 | 30 | #stop_cmd='adb shell am force-stop %s' %self.package 31 | launch_cmd = 'adb shell am start -n %s' %self.enjoy 32 | #self.run_cmd(stop_cmd) 33 | 34 | self.run_cmd(launch_cmd) 35 | time.sleep(3) 36 | d.press.enter() 37 | for i in range(30): 38 | d.press.down() 39 | time.sleep(2) 40 | d.press.enter() 41 | time.sleep(5) 42 | d.press.enter() 43 | 44 | for _ in range(20): 45 | d.press.right() 46 | time.sleep(2) 47 | d.press.enter() 48 | time.sleep(2) 49 | d.press.enter() 50 | d.press.left() 51 | d.press.left() 52 | d.press.enter() 53 | time.sleep(2) 54 | d.press.enter() 55 | d.press.enter() 56 | d.press.enter() 57 | d.press.enter() 58 | time.sleep(2) 59 | 60 | def kill_app(self,package): 61 | self.run_cmd('adb root') 62 | time.sleep(3) 63 | s=self.run_cmd('adb shell ps') 64 | p='.*?\s+(\d+)\s+\d+\s+\d+\s+\d+ SyS_epoll_ .*? S %s' %package 65 | result=re.findall(p,s) 66 | t=result[0] 67 | cmd='adb shell kill %s' %t 68 | s1=self.run_cmd(cmd) 69 | d.press.back() 70 | time.sleep(3) 71 | 72 | def testcase(self): 73 | self.launch() 74 | self.kill_app(self.package) 75 | 76 | 77 | obj=MediaCenter_Test() 78 | obj.testcase() 79 | #obj.kill_app('com.tvos.EnjoyCenter') -------------------------------------------------------------------------------- /wboot_stress.py: -------------------------------------------------------------------------------- 1 | # -*-coding=utf-8-*- 2 | __author__ = 'xda' 3 | import re 4 | import os,sys 5 | import subprocess 6 | import time 7 | 8 | 9 | def run_cmd(cmdline, bailout=None): 10 | print "Running cmd: %s" % (cmdline) 11 | handle = subprocess.Popen(cmdline, shell=True) 12 | if bailout: 13 | fin_time = time.time() + bailout 14 | while handle.poll() == None and fin_time >= time.time(): 15 | time.sleep(1) 16 | if time.time() >= fin_time and handle.poll() == None: 17 | print "Bailout exceeded[%s sec], killing process..." % (str(bailout)) 18 | if sys.platform == "win32": 19 | os.popen('TASKKILL /PID ' + str(handle.pid) + ' /F /T') 20 | else: 21 | os.popen('kill -9 ' + str(handle.pid)) 22 | return 9 23 | else: 24 | handle.wait() 25 | return handle.returncode; 26 | 27 | 28 | class adb_utils: 29 | def __init__(self): 30 | if self.conn_check(): 31 | self.online = 1 32 | self.execute("svc power stayon true") 33 | else: 34 | self.online = 0 35 | 36 | def conn_check(self): 37 | ctr = 2 38 | while ctr: 39 | ctr -= 1 40 | handle = subprocess.Popen("adb devices", 41 | shell=True, 42 | bufsize=-1, 43 | stdout=subprocess.PIPE, 44 | stderr=subprocess.STDOUT) 45 | for line in handle.stdout: 46 | if re.search("\sdevice\s", line): 47 | return 1 48 | run_cmd("adb kill-server") 49 | run_cmd("adb start-server") 50 | return 0 51 | 52 | def warm_boot(self): 53 | run_cmd("adb reboot", bailout=120) 54 | time.sleep(5) 55 | 56 | def boot_check(self): 57 | run_cmd("adb wait-for-devices logcat -v time > boot.log &", 120) 58 | bailout = 180 59 | while (bailout > 0): 60 | if (not os.system("grep \"Boot is finished\" boot.log")): 61 | return 1 62 | time.sleep(5) 63 | bailout -= 5 64 | return 0 65 | 66 | def execute(self, cmdline): 67 | cmdline = "adb shell " + cmdline 68 | run_cmd(cmdline) 69 | 70 | 71 | def hsic_enum_test(cmdline): 72 | cmdline = "adb shell " + cmdline 73 | handle = subprocess.Popen(cmdline, 74 | shell=True, 75 | bufsize=-1, 76 | stdout=subprocess.PIPE, 77 | stderr=subprocess.STDOUT) 78 | enum_err = 0 79 | for line in handle.stdout: 80 | if re.search("No such file or directory", line): 81 | enum_err = 1 82 | print line 83 | return not (enum_err) 84 | 85 | 86 | def usage(): 87 | print "Usage:" 88 | print "\tpython wboot_stress.py --iterate " 89 | exit(0) 90 | 91 | 92 | def parse_cmdline(): 93 | args = [] 94 | if len(os.sys.argv) < 3: 95 | usage() 96 | i = 1 97 | while i < len(os.sys.argv): 98 | if os.sys.argv[i] == "--iterate": 99 | i += 1 100 | args.append(int(os.sys.argv[i])) 101 | else: 102 | print "Illegal argument!" 103 | usage() 104 | i += 1 105 | return args 106 | 107 | 108 | def main(): 109 | target = parse_cmdline()[0] 110 | adb = adb_utils() 111 | 112 | if not adb.online: 113 | print "ADB connection failed!" 114 | exit(1) 115 | 116 | wboot_cycles = 0 117 | while wboot_cycles < target: 118 | print "Reboot no: %d" % (wboot_cycles) 119 | adb.warm_boot() 120 | if not adb.boot_check(): 121 | print "Warm boot failed!" 122 | break 123 | if not hsic_enum_test("ls /dev/smdcsd /dev/smdctl /dev/smdipc /dev/smdloop /dev/smdrfs /dev/smdrouter"): 124 | print "HSIC enumeration failed!" 125 | break 126 | wboot_cycles += 1 127 | 128 | print "No of successful cycles: %d" % (wboot_cycles) 129 | 130 | 131 | if __name__ == "__main__": 132 | main() 133 | -------------------------------------------------------------------------------- /iqiyi_tsos_game_stress.py: -------------------------------------------------------------------------------- 1 | # -*-coding=utf-8-*- 2 | __author__ = 'Rocky' 3 | 4 | from uiautomator import device as d 5 | import time, subprocess, os, datetime, re 6 | 7 | 8 | class IQIYI_Stress(): 9 | def __init__(self): 10 | 11 | # path=os.path.join(os.getcwd(),) 12 | self.date = datetime.datetime.now().strftime('%H-%M-%S') 13 | self.logname = "Logcat_%s.log" % self.date 14 | #windows not working 15 | #self.getLog() 16 | self.version_count=0 17 | os.system('adb root') 18 | time.sleep(5) 19 | #self.stay_on() 20 | 21 | # 进入本地管理 22 | def localManagement(self): 23 | d.press.home() 24 | #on recommandation bar 25 | time.sleep(2) 26 | d.press.down() 27 | time.sleep(1) 28 | d.press.down() 29 | time.sleep(1) 30 | d.press.down() 31 | time.sleep(1) 32 | d.press.down() 33 | time.sleep(1) 34 | d.press.right() 35 | time.sleep(1) 36 | d.press.enter() 37 | time.sleep(2) 38 | 39 | def checkQuene(self): 40 | #self.localManagement() 41 | print "B" 42 | if d(text=u'游戏').exists: 43 | print "B" 44 | i1 = d(text=u'游戏').info 45 | time.sleep(2) 46 | d(text=u'游戏').click() 47 | i2 = d(text=u'游戏').info 48 | for (k, v) in i1.items(): 49 | print '(%s : %s)' % (k, v) 50 | 51 | print "*" * 10 52 | 53 | for (k, v) in i2.items(): 54 | print '(%s : %s)' % (k, v) 55 | if d(text=u'最近安装').exists: 56 | print 'find game' 57 | def getLog(self): 58 | if self.execute_cmd('adb wait-for-device') == 0: 59 | print "device not connect to Host" 60 | exit() 61 | #windows 放不了后台 62 | cmd = 'adb logcat -v time >%s &' % self.logname 63 | os.system(cmd) 64 | 65 | def execute_cmd(self, cmd): 66 | try: 67 | p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) 68 | p.communicate() 69 | p.wait() 70 | return 1 71 | 72 | except Exception, e: 73 | print e 74 | return 0 75 | 76 | def testcase(self): 77 | print "debug" 78 | ''' 79 | d.press.back() 80 | d(text=u"游戏").click() 81 | d(text=u"游戏").click() 82 | 83 | if d(textContains=u'v1.8.1').exists: 84 | print "Got version" 85 | print d(textContains=u'v1.8.1').info 86 | else: 87 | print "Can't get version" 88 | ''' 89 | 90 | ''' 91 | if d(text=u'剩余').exists: 92 | print "open" 93 | print d(text=u'剩余').info 94 | else: 95 | print "Can't open" 96 | ''' 97 | #self.search_game('test') 98 | 99 | #self.input_name() 100 | #self.download() 101 | #self.checkQuene() 102 | #self.delete_game() 103 | #self.getPackageName() 104 | #elf.delete_game_cmd('') 105 | #elf.getPackageName() 106 | #self.person_center() 107 | #self.check_login() 108 | #self.check_download('') 109 | self.tvos_12723() 110 | #self.packageExist('com.gameloft.android.HEP.GloftD5HP') 111 | 112 | 113 | def input_name(self): 114 | for _ in range(10): 115 | d.press.left() 116 | time.sleep(1) 117 | #从软键盘弹出来开始 118 | for _ in range(8): 119 | d.press.right() 120 | time.sleep(1) 121 | d.press.down() 122 | time.sleep(1) 123 | d.press.enter() 124 | time.sleep(1) 125 | d.press.up() 126 | time.sleep(1) 127 | d.press.left() 128 | time.sleep(1) 129 | d.press.left() 130 | time.sleep(1) 131 | d.press.enter() 132 | 133 | time.sleep(2) 134 | d.press.down() 135 | time.sleep(1) 136 | d.press.right() 137 | time.sleep(1) 138 | d.press.down() 139 | time.sleep(1) 140 | d.press.enter() 141 | 142 | time.sleep(1) 143 | 144 | d.press.left() 145 | time.sleep(1) 146 | d.press.left() 147 | time.sleep(1) 148 | d.press.left() 149 | time.sleep(1) 150 | 151 | d.press.enter() 152 | 153 | time.sleep(1) 154 | 155 | d.press.up() 156 | time.sleep(1) 157 | d.press.up() 158 | time.sleep(1) 159 | d.press.up() 160 | time.sleep(1) 161 | d.press.left() 162 | time.sleep(1) 163 | d.press.left() 164 | time.sleep(1) 165 | d.press.left() 166 | time.sleep(1) 167 | d.press.left() 168 | time.sleep(1) 169 | d.press.enter() 170 | 171 | if d(text=u'狂野飙车').exists: 172 | print "Search result passed" 173 | print d(text=u'狂野飙车').info 174 | else: 175 | print "Can't find game " 176 | 177 | d.press.back() 178 | time.sleep(1) 179 | 180 | d.press.enter() 181 | time.sleep(3) 182 | print "start to download" 183 | 184 | 185 | def wifi_connect(self): 186 | print "WIFI connect" 187 | ap='lenovo' 188 | passwd='xxx' 189 | def_timeout=120 190 | d.press.home() 191 | time.sleep(1) 192 | d.press.down() 193 | time.sleep(1) 194 | d.press.down() 195 | d.press.down() 196 | time.sleep(1) 197 | d.press.right() 198 | time.sleep(1) 199 | d.press.right() 200 | 201 | d.press.enter() 202 | time.sleep(3) 203 | d.press.enter() 204 | time.sleep(3) 205 | d.press.down() 206 | d.press.down() 207 | d.press.down() 208 | d.press.down() 209 | d.press.down() 210 | 211 | d.press.enter() 212 | time.sleep(2) 213 | cmd = 'adb shell input text %s' % ap 214 | p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) 215 | 216 | cmd = 'adb shell input keyevent KEYCODE_ESCAPE' 217 | p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) 218 | time.sleep(1) 219 | d.press.enter() 220 | time.sleep(1) 221 | 222 | d.press.down() 223 | time.sleep(1) 224 | d.press.down() 225 | time.sleep(1) 226 | d.press.enter() 227 | cmd = 'adb shell input text %s' % passwd 228 | p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) 229 | 230 | cmd = 'adb shell input keyevent KEYCODE_ESCAPE' 231 | p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) 232 | time.sleep(1) 233 | d.press.enter() 234 | time.sleep(1) 235 | if d(text=u"连接成功").wait.exists(timeout=def_timeout * 1000) == False: 236 | print "connecting time over time" 237 | print "Fail to connect AP" 238 | return 1 239 | d(text=u"连接成功").wait.exists(timeout=200000) 240 | return 0 241 | 242 | def search_game(self, name='kybc'): 243 | d.press.home() 244 | time.sleep(2) 245 | d.press.down() 246 | time.sleep(2) 247 | d.press.right() 248 | time.sleep(1) 249 | d.press.enter() 250 | time.sleep(8) 251 | d.press.up() 252 | time.sleep(3) 253 | d.press.up() 254 | time.sleep(3) 255 | d.press.enter() 256 | print "Enter" 257 | time.sleep(5) 258 | d.press.down() 259 | time.sleep(3) 260 | #d.press.back() 261 | #self.execute_cmd('adb shell input text 狂野飙车') 262 | #this not work 263 | #self.execute_cmd('adb shell input text kybc') 264 | 265 | #d.press.down() 266 | time.sleep(3) 267 | #d.press.right() 268 | #time.sleep(3) 269 | #d.press.right() 270 | time.sleep(3) 271 | d.press.enter() 272 | time.sleep(10) 273 | 274 | d.press.enter() 275 | time.sleep(10) 276 | 277 | 278 | def download(self): 279 | d.press.enter() 280 | time.sleep(5) 281 | 282 | #return 1 if package still exist 283 | def packageExist(self,packagename): 284 | p = subprocess.Popen('adb shell pm list packages', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) 285 | package_list=p.stdout.read() 286 | #print package_list 287 | pattern=packagename 288 | result=re.findall(pattern,package_list) 289 | #print result 290 | if len(result)==0: 291 | return 0 292 | else: 293 | return 1 294 | 295 | def check_download(self,gamename): 296 | gamename=u'地牢猎手' 297 | self.localManagement() 298 | d(text=u'队列').click() 299 | 300 | time.sleep(3) 301 | d(text=u'队列').click() 302 | time.sleep(3) 303 | while 1: 304 | if d(textContains=gamename).exists: 305 | print "Downloading" 306 | time.sleep(60) 307 | 308 | elif self.packageExist('com.gameloft.android.HEP.GloftD5HP')==0: 309 | print "Downloading, not found package" 310 | time.sleep(60) 311 | self.search_game('x') 312 | self.localManagement() 313 | d(text=u'队列').click() 314 | 315 | time.sleep(3) 316 | d(text=u'队列').click() 317 | time.sleep(3) 318 | 319 | else: 320 | d.press.back() 321 | time.sleep(2) 322 | 323 | d(text=u'游戏').click() 324 | time.sleep(2) 325 | d(text=u'游戏').click() 326 | time.sleep(2) 327 | print u"下载完毕" 328 | break 329 | 330 | 331 | def getAppID(self): 332 | #在下载的时候才能获取到 333 | p = 'getGameStatus appId:(\d+)' 334 | fp = open(self.logname, 'r').read() 335 | s = re.findall(p, fp) 336 | print s[0] 337 | 338 | def delete_in_queue(self): 339 | self.localManagement() 340 | d(text=u'队列').click() 341 | time.sleep(2) 342 | d(text=u'队列').click() 343 | time.sleep(2) 344 | d.press.enter() 345 | time.sleep(3) 346 | d(text=u'删除游戏').click() 347 | time.sleep(3) 348 | d.press.enter() 349 | time.sleep(3) 350 | print u'游戏已从队列中删除' 351 | 352 | 353 | def stay_on(self): 354 | print "Set stay on for 2 hours" 355 | d.press.home() 356 | time.sleep(3) 357 | for _ in range(4): 358 | d.press.down() 359 | time.sleep(1) 360 | for _ in range(2): 361 | d.press.right() 362 | time.sleep(1) 363 | 364 | d.press.enter() 365 | time.sleep(3) 366 | 367 | for _ in range(5): 368 | d.press.down() 369 | time.sleep(1) 370 | 371 | d.press.enter() 372 | time.sleep(2) 373 | d.press.down() 374 | time.sleep(2) 375 | d.press.enter() 376 | time.sleep(3) 377 | 378 | for _ in range(5): 379 | d.press.down() 380 | time.sleep(1) 381 | d.press.enter() 382 | time.sleep(3) 383 | d.press.home() 384 | 385 | 386 | def delete_game_UI(self): 387 | self.localManagement() 388 | d(textContains=u'游戏').click() 389 | d(textContains=u'游戏').click() 390 | if d(textContains=u'地牢猎手').exists: 391 | d.press.enter() 392 | time.sleep(3) 393 | 394 | try: 395 | if d(textContains=u'v1.1.8f').exists: 396 | time.sleep(2) 397 | print u"获取正确的版本号" 398 | self.version_count=self.version_count+1 399 | #d(textContains=u'卸载游戏').click() 400 | d.press.down() 401 | time.sleep(2) 402 | d.press.down() 403 | time.sleep(2) 404 | d.press.down() 405 | time.sleep(2) 406 | 407 | time.sleep(2) 408 | d.press.enter() 409 | #查看包名有没有这个 410 | time.sleep(2) 411 | d.press.enter() 412 | time.sleep(8) 413 | except Exception,e : 414 | print e 415 | return False 416 | 417 | def delete_game_cmd(self,packagename): 418 | #packagename='com.baxa.mappytv' 419 | cmd='adb shell pm uninstall %s' %packagename 420 | self.execute_cmd(cmd) 421 | 422 | 423 | def getPackageName(self,packagename): 424 | p = subprocess.Popen('adb shell pm list packages', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) 425 | #p.communicate() 426 | #p.wait() 427 | package_list=p.stdout.read() 428 | #package_list 429 | #pattern='package:com.gameloft.android.HEP.GloftA8HP' 430 | pattern=packagename 431 | result=re.findall(pattern,package_list) 432 | if len(result)==0: 433 | print "game has been deleted" 434 | return 1 435 | else: 436 | print "Game doesn't uninstall" 437 | return 0 438 | 439 | def check_login(self): 440 | if d(text=u'已购游戏').exists: 441 | print "已登录爱奇艺账户" 442 | return 1 443 | else: 444 | print "未登录爱奇艺账户" 445 | return 0 446 | 447 | def person_center(self): 448 | d.press.home() 449 | #on recommandation bar 450 | time.sleep(2) 451 | d.press.down() 452 | time.sleep(1) 453 | d.press.down() 454 | time.sleep(1) 455 | d.press.down() 456 | time.sleep(1) 457 | d.press.down() 458 | time.sleep(1) 459 | d.press.enter() 460 | time.sleep(2) 461 | 462 | def tvos_12723(self): 463 | #点击"卸载游戏"后的弹窗(V1.7) 464 | #self.delete_game_UI() 465 | #elf.person_center() 466 | #self.check_login() 467 | passcount=0 468 | package='com.gameloft.android.HEP.GloftD5HP' 469 | for i in range(500): 470 | print "Loop %d" %i 471 | self.search_game() 472 | self.check_download(package) 473 | s1=self.packageExist(package) 474 | self.delete_game_UI() 475 | s2=self.packageExist(package) 476 | if s1 ==1: 477 | print "game has been installed successfully" 478 | else: 479 | print "game not been installed properly" 480 | if s2 ==0: 481 | print "game has been uninstall successuflly" 482 | 483 | if s1==1 and s2==0: 484 | passcount=passcount+1 485 | print "Loop %d passed" %i 486 | else: 487 | print 'Loop %d failed' %i 488 | 489 | 490 | print "Uninstall Pass count: %d" %passcount 491 | print "Verion pass count %d" %self.version_count 492 | 493 | def tvos_12761(self): 494 | #pause download 495 | pass 496 | 497 | 498 | def testcase2(self): 499 | #self.search_game('') 500 | self.delete_game_UI() 501 | 502 | def main(): 503 | 504 | obj = IQIYI_Stress() 505 | obj.testcase() 506 | #狂野飙车的 包名 com.gameloft.android.HEP.GloftA8HP 507 | #com.gameloft.android.HEP.GloftD5HP 508 | #obj.testcase2() 509 | 510 | if __name__ == '__main__': 511 | main() --------------------------------------------------------------------------------