如果你写过一点 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