接口自动化测试调研--python自动化
课程:B站大学
记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化
市面上自动化测试调研
- API接口层自动化:
- 学习pytest路线:
- 以下为其它端方向自动化主流技术栈
- web和pc端:
- PC端自动化:
- 实践是检验真理的唯一标准
软件目前主要分web端、pc端、app端(Android/iOS),小程序端,不同的端都有对应的自动化测试技术栈,但大多数都是交叉性质的。
API接口层自动化:
三种方案:
- 中小团队:Python + Pytest + Requests + GitHub Actions
- 大型团队:Java + TestNG + RestAssured + Jenkins
- 全栈团队:JavaScript + Jest + Supertest + GitLab CI
测试框架:
Python + Pytest
HTTP库:Requests
Swagger Tester api文档,自动生成测试用例
mock工具:WireMock
CI/CD集成:GitHub Actions 或 GitLab CI,流水线部署
数据驱动测试:多端测试数据统一存储为JSON/YAML
测试结果可视化:Allure 报告
故最佳实践技术栈选型,容易上手,周期短
中小团队:Python + Pytest + Requests + Allure+GitHub Actions
学习pytest路线:
国内学习课程资源平台,课程及都要收费,但是看了下课程目录,和实践使用较符合:
1、极客时间:自动化测试课程不太匹配,但是性能测试和web安全攻防看目录还可以
2、51CTO(狂师的还可以):https://edu.51cto.com/course/36338.html
3**、网易云课程**(3200元课程,看下目录知道学什么):https://study.163.com/course/introduction/1210983809.htm?inLoc=ss_ssjg_tjlb_%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95
3、B站(目前主推码尚教育(讲的还行),黑马程序员[自动化测试课程有点水])
==《码尚VIP课程》==学习课程1:https://www.bilibili.com/list/ml2251336120?oid=214891751&bvid=BV1za411L78g
==《码尚python自动化测试》==学习课程2:https://www.bilibili.com/video/BV1nV4y1K7Ty/?spm_id_from=333.337.search-card.all.click&vd_source=9a733dd9dd93beb88cbe0c3ba258b6d8
==《黑马自动化测试》==学习课程3:https://www.bilibili.com/video/BV11jRcYpEVT/?spm_id_from=333.337.search-card.all.click&vd_source=9a733dd9dd93beb88cbe0c3ba258b6d8
国外项目学习地址:
pytest中文文档地址1:https://github.com/luizyao/pytest-chinese-doc/tree/5.1.3/docs
pytest教程和实践地址2:https://github.com/pluralsight/intro-to-pytest
开源示例项目:
最佳实践项目:https://github.com/yushaoqi/PytestAu
toApi?tab=readme-ov-file
学习开源项目2:https://github.com/canyoupleasecreateanaccount/pytestLessonsCode
通通企微接口测试项目https://github.com/a376230095/wwork_api_interface_test/blob/master/test_case/contact/department/test_department.py
学习开源项目3:https://github.com/wintests/pytestDemo
借鉴项目实现:https://github.com/saleor/saleor/tree/main/saleor/tests
使用pytest时的技巧:https://hackebrot.github.io/pytest-tricks/
总结:目前学习该框架最快速的方式,先听免费的课程,白嫖才是最香的
计划:
1、先快速学习完《码尚VIP课程》的课程,大概一周实践,结果形式:代码提交记录+csdn博客
2、看着国外的文档和教程再次复习学习一次,此处实践不限制
3、学习开源项目,加入开源项目交流群,参考开源项目中结构和部分实现
以下为其它端方向自动化主流技术栈
web和pc端:
E2E测试以及UI自动化测试
web端:使用Selenium: 常用的Web自动化测试工具,支持多种浏览器和编程语言(如Python、Java、C#)。适合测试
官方文档:https://www.selenium.dev/zh-cn/documentation/test_practices/overview/
开源项目:https://github.com/SeleniumHQ/selenium
Playwright: 现代的自动化框架,支持Chrome、Firefox、Safari等浏览器,具有更快的执行速度和更强的功能。适合测试
官方文档:https://playwright.dev/docs/intro
开源项目:https://github.com/microsoft/playwright-python
Cypress: 一个用于现代Web应用的JavaScript自动化测试框架,具有更快的执行速度和丰富的调试功能。适合前端开发者
官方文档:https://docs.cypress.io/app/get-started/why-cypress
开源项目https://github.com/cypress-io/cypress-example-kitchensink
PC端自动化:
Appium: 支持Web、移动端(Android/iOS)以及桌面应用的自动化测试,支持多种语言(如Java、Python、Ruby、C#等)。
官网文档:https://appium.io/docs/en/latest/quickstart/test-py/
python开源项目:https://github.com/appium/python-client
Pywinauto: 一个Python库,用于自动化Windows桌面应用程序的测试,支持窗口操作和控件交互。
官网文档:https://pywinauto.readthedocs.io/en/latest/
开源项目:https://github.com/pywinauto/pywinauto