如果你写过一点 Python,能看懂函数和类,但一提到「自动化测试」脑子里只有零散的脚本片段——打开浏览器、点两下、报个错就卡住,那这门课要补的正是中间那几段断掉的路:测试怎么组织、用例怎么跑起来、失败信息怎么看、重复的代码怎么收进框架里。它不教 Python 基础,也不打算把你培养成测试架构师,目标很实在:让你能独立写出一个跑得稳、看得懂、改得动的 UI 自动化测试项目。
先想清楚:你缺的是哪一块
UI 自动化最容易出的问题不是「不会定位元素」,而是三件事混在一起:定位写错、用例没组织、结果没人看。Selenium 负责第一件,unittest 和 pytest 负责后两件。很多人卡在中间,是因为只学了 Selenium 的零散 API,却没学过测试框架怎么管用例,于是脚本越写越长,跑挂一次就要人工比对半天。
对照一下自己:能不能说清楚断言失败时到底该看哪一行输出?知道数据驱动为什么要和用例分离吗?fixture 和 setUp/tearDown 的区别能不能讲明白?如果这几问答不上来,那这门课的顺序就是为你排的——先把测试的骨架立起来,再往里面填浏览器操作。
unittest 部分:先把「测试」这件事的规矩学会
unittest 是标准库,没有安装成本,正适合用来建立对测试的基本认知。这部分会走过测试流程怎么设计、用例逻辑怎么拆、断言怎么写、结果怎么输出,最后落到 ddt 数据驱动。真正值得留意的是数据驱动那一节:把测试数据和测试逻辑分开,是后面所有框架设计的地基,也是很多人第一次意识到「用例可以批量生成」的地方。
学完这块,你应该能回答:一个测试类里哪些东西该放进 setUp,哪些该放在用例内部?断言失败和代码报错,在报告里是两种东西吗?
pytest 部分:从「能跑」到「好维护」
pytest 的写法比 unittest 轻,但轻不代表简单。固件设计、fixture 的作用域、pytest.ini 配置、参数化、内置断言,这几块拼在一起,决定了你的用例能不能按需组合、按环境切换。参数化解决的是同一逻辑多组数据,fixture 解决的是资源和前置条件的复用,两者经常一起出现,也经常被用混。
Hook 与插件这部分不用一开始就啃透,但要知道它存在——当你想在用例执行前后统一做点什么,或者想改报告输出时,这就是入口。和 doctest 的集成属于加分项,顺手了解即可。
Selenium 部分:元素、交互与页面对象
定位和交互是基本功:元素定位、元素交互、事件交互、窗口切换、JS 应用,这些在真实页面里往往穿插出现,单独会写没用,得在同一个场景里串起来。真正的分水岭在 POM 设计——把页面元素和操作从用例里抽出去。抽完之后你会发现用例变短了,但也更容易写错层级,这时候关键字设计和 POM 的区别就值得琢磨了。
最后两个综合实例把 selenium-ide 和分布式 grid 搬出来,属于「知道有这条路」的性质:前者适合快速录制原型,后者解决多浏览器多机器并行。不必一步到位,但得知道单机跑通和分布式跑通之间差在哪。
看完应该能回答的问题
- 同一批用例,用 unittest 和 pytest 分别怎么写,取舍在哪?
- fixture 的作用域设错,会出现什么现象?
- 页面改版后,你的用例需要改几处?POM 之后呢?
- 一条用例失败,你怎么在报告里快速定位是定位问题、数据问题还是环境问题?
- 什么时候该上 grid,什么时候单机跑就够了?
配套练习建议按「一个页面一个用例」起手,先把单条跑通,再补断言,再加第二条数据,最后才谈重构。跳步的人,通常在 POM 那一章会回头重看。
web自动化测试实战教程【selenium/unittest/pytest】
课程详情
课程标题
web自动化测试实战教程【selenium/unittest/pytest】
适合人群
- 在校学生
- 测试岗位
- 具有一定Python语言基础
学习收获
学会采用unittest, pytest, selenium完成UI自动化测试,搭建UI自动化测试框架。
课程亮点
- unittest:自动化测试介绍、环境搭建、流程设计、逻辑设计、断言、结果输出、ddt 数据驱动
- pytest:固件设计、fixture 使用、pytest.ini 与参数化、内置函数与断言、与 doctest 集成、结果输出、Hook 与插件
- selenium:元素定位、元素交互、事件交互、窗口操作、JS 应用、pytest&unittest 集成、pom 设计、关键字设计、selenium-ide与分布式grid两个综合应用实例:开发平台综合实例、股票项目综合实例
课程目录
01 课程简介 01 课程简介.mp4 02 自动化测试介绍 01 自动化测试&场景.mp4 02 自动化测试知识点.mp4 03 unittest主要介绍.mp4 03 环境搭建说明 01 Python环境安装.mp4 02 PyCharm开发环境.mp4 03 Vscode开发环境.mp4 04 unittest入门实例 01 书写第一个用例.mp4 02 pycharm 运行用例.mp4 03 vscode运行用例.mp4 04 unittest模式运行.mp4 05 模块方式运行用例.mp4 06 运行流程与原理.mp4 05 采用固件设计流程 01 先看演示实例.mp4 02 固件列表说明.mp4 03 用例执行顺序.mp4 04 固件最佳实践.mp4 06 unittest中的逻辑 01 忽略部分用例.mp4 02 复用已有代码.mp4 03 测试迭代的使用.mp4 07 用例的分组与加载 01 用例聚合分组.mp4 02 用例多方式加载.mp4 03 discover加载演示.mp4 04 按名称加载演示.mp4 05 类型模块加载演示.mp4 08 用例运行方式介绍 01 用例运行方式介绍.mp4 02 main分组运行方式.mp4 03 main参数方式运行.mp4 04 main探索方式运行.mp4 09 unittest中的断言 01 基础常用断言.mp4 02 消息类断言.mp4 03 检查类断言.mp4 10 测试结果输出 01 TextTestResult输出.mp4 02 Htmltestrunner.mp4 03 BeautifulReport.mp4 11 ddt集成使用 01 什么是ddt.mp4 02 安装&入门实例.mp4 03 data与unpack.mp4 04 json加载数据.mp4 05 yaml加载数据.mp4 06 csv加载数据.mp4 12 unittest总结 01 unittest总结.mp4 13 pytest主要介绍 01 pytest主要介绍.mp4 14 pytest入门实例 01 书写第一个用例.mp4 02 编程工具运行.mp4 03 命令行运行用例.mp4 04 通过主函数运行.mp4 15 pytest固件设计 01 固件列表说明.mp4 02 固件演示实例.mp4 03 用例执行顺序.mp4 16 fixture的基础使用 01 fixture入门场景.mp4 02 fixture执行方式.mp4 03 fixture的作用域.mp4 04 跨模块共享fixture.mp4 05 fixture销毁方式.mp4 06 fixture的安全销毁.mp4 07 fixture标志传参.mp4 08 fixture参数化.mp4 09 fixture工厂模式.mp4 10 fixture模块化.mp4 11 fixture使用总结.mp4 17 pytest.ini与标志 01 主要配置介绍.mp4 02 默认命令行样例.mp4 03 目录规则样例.mp4 04 执行规则更改.mp4 05 注册自定义标志.mp4 18 pytest参数化介绍 01 fixture函数参数化.mp4 02 入门&多个参数.mp4 03 与fixture混合使用.mp4 04 ids别名的使用.mp4 05 叠加使用实例.mp4 06 间接参数实例.mp4 07 指定间接参数.mp4 08 mark标志参数.mp4 09 控制台传参1.mp4 10 控制台传参2.mp4 11 场景化参数.mp4 12 类配置化参数.mp4 13 yaml读取参数.mp4 14 json读取参数.mp4 15 csv加载数据.mp4 19 pytest中内置函数 01 常用内置函数.mp4 02 skip跳过用例.mp4 03 skipif跳过用例.mp4 04 xfail预失败标志.mp4 05 警告相关基础.mp4 06 pytest配置过滤警告.mp4 07 filterwarnings过滤.mp4 20 pytest中的断言 01 pytest中的断言.mp4 21 与外部框架集成 01 doctest介绍.mp4 02 doctest集成&配置.mp4 03 对unittest支持.mp4 22 测试结果和输出 01 日志格式&输出.mp4 02 pt-reportlog输出.mp4 03 生成junitXML.mp4 04 生成pytest-html.mp4 05 allure-pytest报告.mp4 06 与jenkins集成.mp4 23 pytest常用插件 01 ordering顺序控制.mp4 02 xdist多线程运行.mp4 03 pytest-dependency.mp4 04 pytest-rerunfailures.mp4 05 pytest-assume.mp4 06 pytest-random-order.mp4 24 Hook函数详解 01 Hook函数介绍.mp4 02 Hook编码修改演示.mp4 03 结果定制器演示.mp4 04 Hook个性参数演示.mp4 05 Hook报告汇总演示.mp4 06 Hook用例流程分析.mp4 07 自定义Hook实现.mp4 25 pytest插件开发 01 编写本地插件.mp4 02 编写外部插件.mp4 03 插件打包安装.mp4 04 插件自定义Hook.mp4 26 unittest对比pytest 01 unittest对比pytest.mp4 27 Selenium整体介绍 01 Selenium整体介绍.mp4 28 Selenium环境搭建 01 Selinum环境搭建.mp4 29 Selenium元素定位 01 HTML&元素定位.mp4 02 元素定位id与name方式.mp4 03 元素定位-class name.mp4 04 元素定位-tag name.mp4 05 简单选择器&演示.mp4 06 组合器选择器&演示.mp4 07 伪类选择器&演示.mp4 08 属性选择器&演示.mp4 09 元素定位-超链接类.mp4 10 元素定位-xpath定位1.mp4 11 元素定位-xpath 定位2.mp4 12 传统定位方式总结.mp4 13 css&xpath定位总结.mp4 14 Selenium相对定位.mp4 15 万能javascript定位.mp4 16 万能代码选择器定位.mp4 17 多种定位方式演示.mp4 30 Selenium元素交互 01 操作ChexkBox.mp4 02 操作RadioBox.mp4 03 操作Form表单.mp4 04 操作下拉列表.mp4 05 读取元素信息.mp4 31 Selenium事件交互 01 键盘事件.mp4 02 鼠标事件.mp4 03 滚动事件.mp4 32 Selenium窗口操作 01 浏览器操作.mp4 02 iframe操作.mp4 03 窗口-打开与关闭.mp4 04 窗口-窗口管理.mp4 05 窗口-截图操作.mp4 33 Selenium其它操作 01 对话框-alert.mp4 02 对话框-confirm.mp4 03 Cookie操作.mp4 04 文件上传.mp4 05 异步等待方式.mp4 34 Selenium之JS应用 01 JS使用场景.mp4 02 JS同步执行.mp4 03 JS异步等待.mp4 04 JS之化繁为简.mp4 05 JS实现H5拖曳.mp4 06 JS绕过验证码.mp4 07 JS深入思考.mp4 35 与unittest集成 01 ut集成概述.mp4 02 用ut设计流程.mp4 03 用ut分组用例.mp4 04 ddt数据驱动.mp4 36 与pytest集成 01 固件设计流程.mp4 02 pyt分组用例.mp4 03 pyt参数化设计.mp4 04 pyt收集用例结果.mp4 05 与jenkins集成.mp4 37 pom设计分层 01 pom模式简介.mp4 02 pom模式过程.mp4 03 百度演示案例.mp4 04 pom模式架构.mp4 38 关键字驱动设计 01 关键字驱动简介.mp4 02 常用设计方法.mp4 03 百度演示案例.mp4 04 深入三种模式.mp4 39 开发平台综合案例 01 需求&用例测试.mp4 02 完整的测试项目.mp4 40 股票项目综合案例 01 股票项目综合案例.mp4 41 Selenium-ide 01 ide简介&环境安装.mp4 02 ide入门样例.mp4 03 流程控制-条件.mp4 04 流程控制-循环.mp4 05 ide控制台运行.mp4 42 分布式Grid应用 01 grid简介.mp4 02 环境搭建.mp4 03 独立模式.mp4 04 Hub+Node.mp4 05 Distributed.mp4 06 远程测试样例.mp4 07 个性化样例.mp4 43 selenium最佳实践 01 selenium最佳实践.mp4





