Skip to main content

this is a second develop from HATT

Project description

# Tonzh 基于HATT 二次开发

原理:基于android uiautomator跟adb

环境:python2.7.x+android sdk

功能:支持功能、性能、稳定性

优点:无需安装任何apk或其他插件,支持跨应用,无签名烦恼

缺点:不支持webview、动态页面、中文输入及查找

以下是demo

```python
__author__ = 'Tonzh'
#coding=utf-8
#import moudles
from Core.Utils.surface_collector import SurfaceStatsCollector
from Core.Action.action import Action
from Core.Info.element import Element
from Core.Info.performance import PerformanceInfo
from Core.Action.Monkey.monkey import Monkey
import Core.Info.keycode as key
s=SurfaceStatsCollector()
a=Action()Tonzh
e=Element()
p=PerformanceInfo()
m=Monkey()
"""
Performance Test
"""
#Fps Test
s.DisableWarningAboutEmptyData()
s.Start()
#steps
for x in range(3):
a.swipeToUp()
s.Stop()
#print result
for x in s.GetResults():
if "avg_surface_fps" in x.name:
print x.name,x.value,x.unit

#Cpu Test
#steps
for x in range(3):
a.swipeToUp()
#print result
cpunInfo=p.getCpuFromDump("com.android.launch")
#or
cpunInfo=p.getCpuFromTop("com.android.launch")


# Mem Test
#steps
for x in range(3):
a.swipeToUp()
#print result
memInfo=p.getMemFromDump("com.android.launch")
#or if you install procrank
menInfo=p.getMemFromProcrank("com.android.launch")


#LaunchTime Test
#steps
for x in range(3):
a.swipeToUp()
#print result
startInfo=p.getAppStartTotalTime("com.android.launch/.LaunchActivity")


#Flow Test
#steps
flowInfoBefore=p.getCurFlowFromProc("com.android.launch")
#do something
for x in range(3):
a.swipeToUp()
flowInfoAfter=p.getCurFlowFromProc("com.android.launch")
#print result
flowInfo=flowInfoAfter-flowInfoBefore

#Battery Test
#steps
batteryInfoBefore=p.getBatteryLevel()
#do something
for x in range(3):
a.swipeToUp()
batteryInfoAfter=p.getBatteryLevel()
#batteryInfo=(batteryInfoBefore-batteryInfoAfter)*batteryCount


"""
Function Test
"""
#click element
#1.get by class
elm=e.findElementByClass("TextView")
#or by id
elm=e.findElementById("dd")
#or by text
elm=e.findElementByName("tt")
#or by content-desc
elm=e.findElementByContent("tt")
#2.then do something
#click
a.touch(elm)
a.touchByElement(elm)
a.touchByRatio(0.5,0.2)
a.touch(300,400)
#long click
a.longPress(elm)
#send text
a.sendText("dd")
#send keyevent
a.sendKeyEvent(key.BACK)
#swipe
a.swipeToDown()
a.swipeToLeft()
a.swipeToRight()
a.swipeToUp()
a.swipe(elm,elm)
a.swipe(100,100,100,100)

#check currentview hava element
#by class
e.searchForByClass("TextView")
#by name
e.searchForByName("dd")
#by id
e.searchForById("dd")
#by content-desc
e.searchForByContent("dd")


"""
Monkey Test
"""
#steps
m.StartOne("com.android.browser",1000,1000,1000)
#wait for monkey stop or new script and run m.Stop()
#if you see monkey stop you can run
m.Stop()


```

Project details


Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for HATT-add-on, version 1.0.2
Filename, size File type Python version Upload date Hashes
Filename, size HATT-add-on-1.0.2.tar.gz (17.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page