python-api-tesing:一份 Python 测试开发的工具地图

做 Python 测试开发的人,大概率遇到过同一个问题:工具太多,不知道选哪个。

正文顶部截图

GitHub 上有这样一个仓库,把 Python 测试开发领域里能用到的库、框架、工具全部整理到了一起。按分类逐条列出,每一条附上链接和简要说明。仓库名叫 python-api-tesing,目前拿到了 2400 多个 Star。

README区域截图

这份清单覆盖的范围比较广。Web UI 测试方面,收录了 Selenium、PyAutoGUI、Schemathesis、pyppeteer 等工具,从浏览器自动化到跨平台 GUI 控制都有涉及。移动端测试列出了 appium、uiautomator2、facebook-wda,Android 和 iOS 两端都照顾到了。

性能测试部分,Locust.io 和 Bees with Machine Guns 是重点推荐的两个。Locust 用 Python 写测试脚本,支持分布式压测,在 GitHub 上 Star 数最多。Bees with Machine Guns 的思路是用 EC2 微型实例模拟大量并发请求,名字起得也很直白。

测试框架这块,清单里 pytest 的推荐力度最高。从单元测试到接口测试到功能测试,pytest 都能覆盖。清单里还收录了 Hypothesis(基于属性的测试)、Robot Framework(关键字驱动)、behave(行为驱动)等,适合不同场景选用。

Mock 工具方面,除了标准库自带的 unittest.mock,还列出了 freezegun(伪造时间)、responses(mock requests 库)、VCR.py(录制 HTTP 请求)等。VCR.py 的原理是第一次请求时录制响应,后续测试直接回放,省去了重复调用外部服务的开销。

渗透测试部分收录了 sqlmap、fsociety、setoolkit。sqlmap 是自动 SQL 注入检测工具,在安全测试领域用得很广。跨语言调用方面列出了 jpype(Python 调 Java)、pybind11(C++ 和 Python 互调)等,做混合技术栈项目时会用到。

持续交付部分有 buildbot、jenkinsapi、PlatformIO 等。buildbot 是 Google 内部也在用的 CI 框架,功能比 Jenkins 强,但上手门槛也高一些。

清单后半部分是 awesome-python 的内容,按照功能分类整理了大量 Python 库。管理面板、算法、认证、缓存、命令行工具、计算机视觉、数据库、深度学习、DevOps、文档生成、GUI 框架、机器学习、自然语言处理、网络爬虫、Web 框架等几十个分类,每个分类下少则三五个,多则十几个库。比如代码分析这一项,就同时列出了 Flake8、pylint、black、isort、yapf 等多个工具,各有侧重。

仓库本身还附带了一些实用脚本。tools 目录下有 check_face.py(人脸识别)、check_md5.py(多进程检查重复文件)、concat_file.py(合并文件)、raw2jpg.py(图像格式转换)等,都是从实际项目里抽出来的。

对于做 Python 测试开发的人来说,这份清单的价值不在于它有多精深,而在于它把散落在各处的信息聚合到了一个地方。选型的时候翻一翻,比自己一个个搜要快得多。

了一个地方。选型的时候翻一翻,比自己一个个搜要快得多。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐