Tkinter界面调用monkeyrunner自动化测试安卓系统----抛砖引玉

一、使用方法(需要python环境)

1、把server.py文件放于d:\\盘根目录。

2、下载android-sdk-windows,并确保tools文件夹下有monkeyrunner.bat文件。

3、把android-sdk-windows下的tools文件夹加入系统环境变量。

4、启动安卓设备,并使用adb连接好。

5、运行ui.py,点击按钮测试吧!

 

---------不懂或者需要资源请留言,谢谢-----------

 

---------------以上文件内容如下---------------------------

 

#server.py

import time;
import sys

from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
from com.android.monkeyrunner import MonkeyImage as mi

device = mr.waitForConnection(1.0,'emulator-5554')

if not device:
    print >> sys.stderr,"fail found devices"
    sys.exit(1);
   
print "found devices:%s" % (device);

import socket 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
s.bind(("", 8081)) 

print "start listening..."

while True: 
    data, addr = s.recvfrom(1024);
    print "%s:%s" % (addr,data);    
    (type,key) = data.split(':');
    if int(type) == 0:
        device.press(key);
    elif int(type) == 1:
        device.type(key);
        
    print data;
        

#device.type('asd')
#device.press('KEYCODE_ENTER')
#result = device.takeSnapshot()
#result.writeToFile('takeSnapshot\\result1.png','png');


#ui.py

import Tkinter as tk;
import thread;
import time;

#------------------------------------------------------------   
def init(lock):
    import os;
    print "init"
    #os.popen('monkeyrunner d:\server.py');
    os.system("monkeyrunner d:\server.py");
    lock.release();  

lock = thread.allocate_lock(); 
lock.acquire();  
thread.start_new(init,(lock,)); 

time.sleep(8);
#------------------------------------------------------------
def pressPower():
    runcmd(0,"KEYCODE_POWER"); 

def pressHome():
    runcmd(0,"KEYCODE_HOME"); 

def preeBack():
    runcmd(0,"KEYCODE_BACK");
    
def pressEnter():
    runcmd(0,"KEYCODE_ENTER");
    
def pressMenu():
    runcmd(0,"KEYCODE_MENU");

def pressVolUp():
    runcmd(0,"KEYCODE_VOLUME_UP");

def pressVolDown():
    runcmd(0,"KEYCODE_VOLUME_DOWN");
    
def pressDown():
    runcmd(0,"KEYCODE_DPAD_DOWN");   

def pressUp():
    runcmd(0,"KEYCODE_DPAD_UP");     
    
def pressLeft():
    runcmd(0,"KEYCODE_DPAD_LEFT");    
    
def pressRight():
    runcmd(0,"KEYCODE_DPAD_RIGHT");    

#------------------------------------------------------------
def runcmd(type, key):
    import socket
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    port = 8081
    host = "127.0.0.1"
    
    s.sendto("%d:%s" % (type,key), (host, port));
#------------------------------------------------------------

top=tk.Tk();

btn_power = tk.Button(top, text='Power', command=pressPower);
btn_power.pack();
btn_home = tk.Button(top, text='Home', command=pressHome);
btn_home.pack();
btn_enter = tk.Button(top, text='Enter', command=pressEnter);
btn_enter.pack();
btn_back = tk.Button(top, text='Back', command=preeBack);
btn_back.pack();
btn_menu = tk.Button(top, text='Menu', command=pressMenu);
btn_menu.pack();
btn_up = tk.Button(top, text='Up', command=pressUp);
btn_up.pack();
btn_down = tk.Button(top, text='Down', command=pressDown);
btn_down.pack();
btn_left = tk.Button(top, text='Left', command=pressLeft);
btn_left.pack();
btn_right = tk.Button(top, text='Right', command=pressRight);
btn_right.pack();
btn_volup = tk.Button(top, text='VOL+', command=pressVolUp);
btn_volup.pack();
btn_voldown = tk.Button(top, text='VOL-', command=pressVolDown);
btn_voldown.pack();

tk.mainloop();


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值