【初学python】使用python调用moneky测试

2013-10-28  许凌峰 

目前公司主要主要开发安卓app平台,所以平时的测试过程总经常会用到monkey测试,为了方便在多个平台切换测试,所以使用python调用monkey,代码如下:
 
 
# -*- coding: gbk -*-
import os
apk = {'test1': 'com.test1.test1',
       'test2': 'com.test2.test2'}
print '欢迎使用本脚本进行monkey测试...'
print '首先让我们选择被测试的平台对象...'
print '输入 \'test1\' 对test1进行测试'
print '输入 \'test2\' 对test2进行测试'
#选择测试平台
while True:
    test_apk = raw_input('你想测试哪个平台?\n(\'test2\' 或 \'test1\'):')
    try:
        apk_name = apk[test_apk]
    except KeyError:
        print '请输入 \'test1\' 或者 \'test2\'! - -#'
    else:
        break
#检查输入值是否符合规范
while True:
    event_num = raw_input('你希望执行多少次随机事件(-v)?\n输入的数值必须大于0:')
    if event_num.isdigit() and int(event_num) > 0:
        print '很好,你输入的随机事件数是 ' + event_num
        break
    else:
        print '请输入一个大于0的数字'
#检查输入值是否符合规范
while True:
    for_time = raw_input('那么你想执行几轮monkey测试?\n输入轮数必须大于1:')
    if for_time.isdigit() and int(for_time) > 1:
        print '很好,你想要执行 ' + for_time + '轮monkey测试'
        break
    else:
        print '请输入一个大于0的数字'
#日志保存路径    
log_path = 'D:\\'
#日志文件名
log_name = 'monkeytestlog.txt'
#monkey脚本
monkey_shell = 'adb shell monkey -v -v -v -p '+ apk_name+ ' -v ' + event_num + ' >'+log_path
def monkeytest():
    print '接着让我们检查一下你的手机和电脑是否连接正常'
    phonedevice = os.popen('adb devices').read()
    if phonedevice.strip().endswith('device'):
        print '很好,你的手机已经准备就绪,让我们开始执行monkey测试吧'
        print ".........................................................."
        for i in range(1, int(for_time)+1):
            print '第', i, '轮monkey测试开始...'
            os.system(monkey_shell+str(i)+log_name)
            print '第', i, '轮monkey测试结束!日志已保存,文件名为\'' + str(i) + log_name
            print ""
        print ".........................................................."
        print '很好,', i, '轮moneky测试都已经结束! 运行日志都放在D:\\目录下'       
    else:
        print '请检查下你的手机和你的电脑连接是否正常'
#查找本机中是否能使用‘adb'命令
sysPath = os.environ.get('PATH')
if not sysPath.find('platform-tools'):
    print '''等等!!发现你的系统环境变量中没有android路径,找不到‘adb’命令,无法进行monkey测试,请确保android开发环境在系统中已正常搭建再来运行该脚本'''
else:
    print '在测试开始之前,我们先检查下系统进程是否干净,有没有会影响测试的进程存在...'
#杀死‘tadb.exe’进程
    tadb = os.popen('tasklist').read()
    if tadb.find('tadb.exe') != -1:
        print '等等,发现 \'tadb.exe\'进程,该进程会妨碍monkey测试,必须干掉它!!!!!!'
        os.system('taskkill /im tadb.exe /F')
        print '很好,这个该死的\'tadb.exe\'进程已经被干掉了,整个世界清静了, 让我们继续吧'
        monkeytest()
    else:
        print '没有发现\'tadb.exe\'这个进程,非常好! 继续!'
        monkeytest()
 
286°/2865 人阅读/0 条评论 发表评论

登录 后发表评论