Monkeyrunnerによる自動化テスト
3327 ワード
前の記事ではpythonを作成してMonkeyrunnerの消費電力テストを行うことを紹介していますが、実際にMonkeyrunnerの自動化テストでの機能はこれだけではありません.その中で、複数のシミュレータ(または本物)を接続して自動化テストを行うことができるのがMonkeyrunnerの大きなポイントです.Monkeyrunnerの作成はpythonに基づいているため、pythonについてよく知っている仲間は余裕を持って適用されます.では、簡単に紹介します.
環境説明:今回のテストは、appが異なる解像度シミュレータのインタフェース(Activity)に入るシミュレーションを自動化して各種操作(Buttonとシミュレーションスライドインタフェースをクリック)し、各シミュレータインタフェースのスクリーンショットを行う.もちろん、今回のテストアプリケーションは通信app(SMSのような)で、受信メールを送信する簡単な自動化機能コードをシミュレートします.
テストツール:Eclipse+python(2.7.0)+2つの異なるカスタム解像度シミュレータ(320 P、1080 P);
手順:
Eclipseとプラグインのインストールを実行するブロガーの別の記事では、ここでは、コード部分を直接行います.
具体的なコードは以下の通りです.
PS:pythonコードのインデント構造に注意
締めくくり:以上のコードはすべての自動化機能テストをカバーするのに十分であり、appのActivityまたはButtonをクリックして取得する方法については後述する.みんなの意見を得て、仕事をもっと面白くて効率的にしたいです!
環境説明:今回のテストは、appが異なる解像度シミュレータのインタフェース(Activity)に入るシミュレーションを自動化して各種操作(Buttonとシミュレーションスライドインタフェースをクリック)し、各シミュレータインタフェースのスクリーンショットを行う.もちろん、今回のテストアプリケーションは通信app(SMSのような)で、受信メールを送信する簡単な自動化機能コードをシミュレートします.
テストツール:Eclipse+python(2.7.0)+2つの異なるカスタム解像度シミュレータ(320 P、1080 P);
手順:
Eclipseとプラグインのインストールを実行するブロガーの別の記事では、ここでは、コード部分を直接行います.
具体的なコードは以下の通りです.
# MonkeyRunner
from com.android.monkeyrunner import MonkeyRunner
from com.android.monkeyrunner.easy import EasyMonkeyDevice
from com.android.monkeyrunner.easy import By
from com.android.monkeyrunner import MonkeyDevice
# devices,
device1=MonkeyRunner.waitForConnection(1.0,'emulator-5554')
device2=MonkeyRunner.waitForConnection(1.0,'emulator-5556')
devicelist=(device1,device2) # devicelist
k=0 # ,
for i in range(0,len(devicelist)): #
#
if not devicelist[i]:
print "Please connect a device to start!"
else:
print "Start "
# touchId, touch
touchId=EasyMonkeyDevice(devicelist[i])
# apk
devicelist[i].installPackage("********.apk")
MonkeyRunner.sleep(30) # , , , , ( )
if(k==0): # a , png
a='*******.png'
else: # a
a='*******.png'
# App Activity
devicelist[i].startActivity(component="************Activity")
MonkeyRunner.sleep(15)
#drag ,
devicelist[i].drag((700,240),(100,240),1,10)
MonkeyRunner.sleep(10)
#touchId Button , Button id ,
touchId.touch(MonkeyDevice.DOWN_AND_UP,By.id('id/*****'),MonkeyDevice.DOWN_AND_UP)
MonkeyRunner.sleep(10)
touchId.touch(By.id('id/*****'),MonkeyDevice.DOWN_AND_UP)
MonkeyRunner.sleep(10)
#press , “back”
devicelist[i].press('KEYCODE_BACK', 'DOWN_AND_UP')
MonkeyRunner.sleep(5)
devicelist[i].press('KEYCODE_BACK', 'DOWN_AND_UP')
MonkeyRunner.sleep(5)
touchId.touch(By.id('id/*********'),MonkeyDevice.DOWN_AND_UP)
MonkeyRunner.sleep(5)
Compose=devicelist[i].takeSnapshot() // Compose ,
# “1111”
device.type('1111')
# python os , 12345678 “test” “5554”
# 5554 , 5556、5558, ,
os.system('echo "sms send 12345678 test" | telnet localhost 5554')
#
Compose.writeToFile(a,'png')
# ,k++
k=k+1
PS:pythonコードのインデント構造に注意
締めくくり:以上のコードはすべての自動化機能テストをカバーするのに十分であり、appのActivityまたはButtonをクリックして取得する方法については後述する.みんなの意見を得て、仕事をもっと面白くて効率的にしたいです!