自动化工具 一款 GUI 测试工具分享 (python3 + tkinter) --- 目的是简化常规的 app 操作

我胖虎不服! · 2021年07月20日 · 最后由 Time 回复于 2021年08月04日 · 6630 次阅读

背景

经常做一些关于 app 的重复操作,如: 查看手机 ip, 导出手机日志, 替换手机中应用的配置文件等等.

应用截图 (界面有点丑,请忽略)

涉及的技术

主要是 python3 的 tkinter 库 (入门很简单) + 常用的 adb 操作 (如查看指定应用的包名, 导入,导出文件,获取设备号, logcat 这些) + pyinstaller 打包操作

注意点: 使用 pyinstaller 打包时,最好是在 python3.6 的环境下打包.因为我一开始在 python3.7 环境打包,一直报 utf-8 编码类型的错误,使用 python3.6 后无此问题
代码中有详细的注释

使用效果

  1. 查看连接手机的 ip 时,可以一键获取 ip,不需要长按 Wlan 来获取了 (此功能需要 root 的手机才可以)

  2. 重启指定的 apk 时,支持一键重启. 不需要手动结束 app 的运行了

3.经常需要用 adb logcat 记录手机的日志,可以点击按钮就开始记录日志,点击按钮结束记录 (日志以时间戳作为文件名,不用每次还得给日志起名字了)

4.可以方便的将特定的外部文件导入到手机里面 + 手机文件导出来 (不用每次都写一遍 adb pull or adb push 了)

5.将 app 的工作路径打出来,需要进入手机目录时,很方便

6.可以一键将 log 文件夹中的日志都删除

代码地址

git@gitee.com:hewenyi666/simple_app_tool.git

欢迎各位老哥提出指导意见~

共收到 18 条回复 时间 点赞

太实用了,感谢,正好需要这么一款工具

19楼 已删除


哈哈,我也有弄。

锅锅的锅 回复

老哥挺巧的啊,hhh.问下,你的这个获取 uid 是什么意思,还有截屏是使用 adb 的截屏命令吗?

放的是内部的 git 地址吧

盗用头像 回复

个人的 gitee 地址,不是公司的

我觉得第 2 行的那个功能是不是可以优化,因为得输入包名才能进行后续操作。最好可以加个方便获取包名的功能

玛雅 回复

批量安装 apk 可以理解,那个批量登录不知道什么意思

所以第一行有个获取当前页面的按钮,能拿到包名

奥奥了解了,我觉得分成 2 个按钮比较好。1 个是获取包名 1 个是获取当前界面的 activity

153 INFO: PyInstaller: 4.4
153 INFO: Python: 3.9.2
154 INFO: Platform: Windows-10-10.0.19041-SP0
156 INFO: wrote D:\GUItest\simple_app_tool-master\simple_app_tool.spec
174 INFO: UPX is not available.
175 INFO: Extending PYTHONPATH with paths
['D:\GUItest\simple_app_tool-master', 'D:\GUItest\simple_app_tool-master']
264 INFO: checking Analysis
528 INFO: checking PYZ
577 INFO: checking PKG
577 INFO: Building PKG because PKG-00.toc is non existent
578 INFO: Building PKG (CArchive) PKG-00.pkg
Traceback (most recent call last):
File "d:\python\lib\runpy.py", line 197, in run_module_as_main
return _run_code(code, main_globals, None,
File "d:\python\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "D:\python\Scripts\pyinstaller.exe__main
.py", line 7, in
File "d:\python\lib\site-packages\PyInstaller__main
.py", line 126, in run
run_build(pyi_config, spec_file, **vars(args))
File "d:\python\lib\site-packages\PyInstaller__main
.py", line 65, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "d:\python\lib\site-packages\PyInstaller\building\build_main.py", line 758, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File "d:\python\lib\site-packages\PyInstaller\building\build_main.py", line 705, in build
exec(code, spec_namespace)
File "D:\GUItest\simple_app_tool-master\simple_app_tool.spec", line 23, in
exe = EXE(pyz,
File "d:\python\lib\site-packages\PyInstaller\building\api.py", line 509, in __init
_
self.pkg = PKG(self.toc, cdict=kwargs.get('cdict', None),
File "d:\python\lib\site-packages\PyInstaller\building\api.py", line 208, in init
self.postinit()
File "d:\python\lib\site-packages\PyInstaller\building\datastruct.py", line 159, in postinit
self.assemble()
File "d:\python\lib\site-packages\PyInstaller\building\api.py", line 274, in assemble
fnm = checkCache(fnm, strip=self.strip_binaries,
File "d:\python\lib\site-packages\PyInstaller\building\utils.py", line 308, in checkCache
shutil.copy(fnm, cachedfile)
File "d:\python\lib\shutil.py", line 418, in copy
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "d:\python\lib\shutil.py", line 264, in copyfile
with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst:
PermissionError: [Errno 13] Permission denied: 'C:\Users\shanhs\AppData\Local\pyinstaller\bincache00_py39_64bit\ucrtbase.dll'

不知道为啥 不能打包

已解决,关闭 360 杀毒软件😂

先生 回复

哈哈,360 总会给你意想不到的惊喜.还有老哥是用 python3.9.2 打包的吗?我那时候用 py3.7 打包报错,换 3.6 就好了,我还以为是 pyinstaller 对 python 向上不兼容呢


昨天上班偷做了个😂

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册