(python tk/ttk制作 Android群控助、多任务、多线程执行)
? 仅供学习,禁止商业,请注明转载来源。
:
更新时间 | 更新内容 |
---|---|
20190926 | 重大更新、页面重建、代码重建、交互更方便、任务模型快速完成、整个程序运行正常稳定。 |
20190826 | 页面布局已经完成,但任务执行模块尚未实现 |
点击跳转到
简介
第一次使用python的tkinter库,一个python简单的GUI编程库 通过ADB命令控制手机,使用多线程批量操作手机,如同时安装软件,生成通讯录测试数据等。 由于公司测试组的工作需要,安卓手机助手的简单开发有助于提高工作效率。
工具界面
- :主要是获取与当前计算机相连的安卓设备;
- :加载软件安装、软件卸载等软件安装、软件卸载等,可自由扩展多个用于控制设备的小工具;
- :对于小工具编写的配置页面,方便设置工具参数,如生成通讯录数据的条数、安装软件的软件路径、软件卸载的包名等。
- :执行小工具的顺序,如先安装软件,再卸载软件,最后生成通讯录。
代码结构
- PM2
- mods
- platform-tools
- _ init _.py
- bin_mod.py
- get_vcardfile.py
- getphone_mod.py
- logger_mod.py
- thread_mod.py
- page
- png
- _ init _ .py
- mainpg.py
- mainpg_fun.py
- toolpg
- _ init _.py
- 1_软件安装.py
- 2_软件卸载.py
- 3_通讯录.py
- …
- tools
- _1_tool.py
- _2_tool.py
- _3_tool.py
- …
- run.py
- mods
代码内容
:存储一些公共方法,如获取连接的手机列表和本地列表adb工具,直接cmd命令的方法目录 :在其他地方使工具windows我在这里加了一个自己的adb即使当地电脑没有安装工具包,也可以直接调用工具包adb环境。 :具体的公共方法文件包含一系列自定义方法
import subprocess import os import re class bin_mod: work_name = "PMTool" tempath = os.path.abspath('').rpartition(work_name) work_path = tempath[0] tempath[1] def adb(self): '''内置adb工具路径 adb = self.work_path r'\mods\platform-tools\adb.exe ' return adb def run_cmd(sef, command):# 执行cmd命令
'''执行CMD命令 以列表形式返回执行内容'''
output = subprocess.Popen(command, stdout=subprocess.PIPE, encoding='utf-8')
return output.stdout.read().split("\n")
# 实时输出
def sh_cmd(self, command):
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, encoding='utf-8')
lines = []
for line in iter(p.stdout.readline, b''):
print(">>>", line)
lines.append(line)
return lines
def package(self, apks=1):# 获取安装包的包名
'''通过apk文件,获取对应的包名 参数说明: <apks> 默认 返回包名组'''
aapt = self.work_path + r'\mods\platform-tools\aapt.exe'
packagelist = []
if type(apks) == str:
aapt = self.work_path + r'\mods\platform-tools\aapt.exe'
cmd = (aapt + ' dump badging ' + apks)
packagelist.append(re.split('[:=\' ]+', self.run_cmd(cmd)[0])[2])
return packagelist
else:
apks = self.otherapk()
for apk in apks:
cmd = (aapt + ' dump badging ' + apk)
packagelist.append(re.split('[:=\' ]+', self.run_cmd(cmd)[0])[2])
return packagelist
# 转换路径‘/,\’
def convert_path(slef, path: str) -> str:
return path.replace(r'\/'.replace(os.sep, ''), os.sep)
:通讯录生成模块,可以生成对应数量的通讯录条数,便于导入到手机端生成数据,通讯录工具模块所调用的文件
# -*- coding: utf-8 -*-
""" Created on Tue Jul 2 08:40:20 2019 @author: REXLEE """
import random
import quopri
import logging
from .bin_mod import bin_mod
work_path = bin_mod.work_path # 获取工作目录
# 生成中文名(百家姓任选一,名字在常用选2个)
def gen_name():
first_names = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许',
'何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章',
'云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳',
'酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常',
'乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹',
'姚', '邵', '堪', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞',
'熊', '纪', '舒', '屈', '项', '祝', '董', '梁']
last_names = ['的', '一', '是', '了', '我', '不', '人', '在', '他', '有', '这', '个', '上', '们', '来', '到', '时', '大', '地', '为',
'子', '中', '你', '说', '生', '国', '年', '着', '就', '那', '和', '要', '她', '出', '也', '得', '里', '后', '自', '以',
'会', '家', '可', '下', '而', '过', '天', '去', '能', '对', '小', '多', '然', '于', '心', '学', '么', '之', '都', '好',
'看', '起', '发', '当', '没', '成', '只', '如', '事', '把', '还', '用', '第', '样', '道', '想', '作', '种', '开', '美',
'总', '从', '无', '情', '己', '面', '最', '女', '但', '现', '前', '些', '所', '同', '日', '手', '又', '行', '意', '动',
'方', '期', '它', '头', '经', '长', '儿', '回', '位', '分', '爱', '老', '因', '很', '给', '名', '法', '间', '斯', '知',
'世', '什', '两', '次', '使', '身', '者', '被', '高', '已', '亲', '其', '进', '此', '话', '常', '与', '活', '正', '感',
'见', '明', '问', '力', '理', '尔', '点', '文', '几', '定', '本', '公', '特', '做', '外', '孩', '相', '西', '果', '走',
'将', '月', '十', '实', '向', '声', '车', '全', '信', '重', '三', '机', '工', '物', '气', '每', '并', '别', '真', '打',
'太', '新', '比', '才', '便', '夫', '再', '书', '部', '水', '像', '眼', '等', '体', '却', '加', '电', '主', '界', '门',
'利', '海', '受', '听', '表', '德', '少', '克', '代', '员', '许', '稜', '先', '口', '由', '死', '安', '写', '性', '马',
'光', '白', '或', '住', '难', '望', '教', '命', '花', '结', '乐', '色', '更', '拉', '东', '神', '记', '处', '让', '母',
'父', '应', '直', '字', '场', '平', '报', '友', '关', '放', '至', '张', '认', '接', '告', '入', '笑', '内', '英', '军',
'候', '民', '岁', '往', '何', '度', '山', '觉', '路', '带', '万', '男', '边', '风', '解', '叫', '任', '金', '快', '原',
'吃', '妈', '变', '通', '师', '立', '象', '数', '四', '失', '满', '战', '远', '格', '士', '音', '轻', '目', '条', '呢',
'病', '始', '达', '深', '完', '今', '提', '求', '清', '王', '化', '空', '业', '思', '切', '怎', '非', '找', '片', '罗',
'钱', '紶', '吗', '语', '元', '喜', '曾', '离', '飞', '科', '言', '干', '流', '欢', '约', '各', '即', '指', '合', '反',
'题', '必', '该', '论', '交', '终', '林', '请', '医', '晚', '制', '球', '决', '窢', '传', '画', '保', '读', '运', '及',
'则', '房', '早', '院', '量', '苦', '火', '布', '品', '近', '坐', '产', '答', '星', '精', '视', '五', '连', '司', '巴',
'奇', '管', '类', '未', '朋', '且', '婚', '台', '夜', '青', '北', '队', '久', '乎', '越', '观', '落', '尽', '形', '影',
'红', '爸', '百', '令', '周', '吧', '识', '步', '希', '亚', '术', '留', '市', '半', '热', '送', '兴', '造', '谈', '容',
'极', '随', '演', '收', '首', '根', '讲', '整', '式', '取', '照', '办', '强', '石', '古', '华', '諣', '拿', '计', '您',
'装', '似', '足', '双', '妻', '尼', '转', '诉', '米', '称', '丽', '客', '南', '领', '节', '衣', '站', '黑', '刻', '统',
'断', '福', '城', '故', '历', '惊', '脸', '选', '包', '紧', '争', '另', '建', '维', '绝', '树', '系', '伤', '示', '愿',
'持', '千', '史', '谁', '准', '联', '妇', '纪', '基', '买', '志', '静'