课程适合人群:
1.单元测试框架
1.1 unittest测试框架
1.1.1 计算器示例
1.1.2 unittest装饰器
1.1.3 断言机制
1.1.4 使用parameterized.expand实现参数化
1.1.5 使用Allure生成美观的Pytest测试报告
1.1.6 在Jenkins中配置Allure unittest测试报告
1.2 Pytest测试框架
1.2.1 Pytest 简介
1.2.2 Pytest安装
1.2.3 第一个Pytest程序
1.2.4 Pytest装饰器
1.2.5 Pytest常用命令行选项
1.2.6 Pytest实现并发测试
1.2.7 Pytest特有的参数化功能
1.2.8 使用Allure生成美观的Pytest测试报告
1.2.9 在Jenkins中配置Allure Pytest测试报告
2 软件测试自动化测试方法和实践
2.1测试自动化的内涵
2.2测试自动化的基本结构
2.3测试自动化的原理和方法
2.4基于脚本的自动化测试
2.5自动化测试流程
2.6测试自动化普遍存在的问题
2.7什么类型的功能测试应该采用自动化方法
2.8如何处理复杂业务流程的自动化测试
2.9如何准备自动化功能测试数据
2.10 什么原因导致无法识别对象
2.11如何在运行过程中防止程序中断
2.12自动测试的选择(案例讨论)
2.13自动化测试的持续集成对软件测试的重大价值
2.14自动化测试与回归测试的集成对软件测试的重大价值
3 自动化测试工具、质量度量
3.1测试工具的分类和选择
3.2测试工具的主流产品介绍
3.3自动测试的选择
3.4自动化工具原理
3.5存在的问题分析
3.6软件产品的质量度量
3.7评估系统自动化测试的覆盖程度
3.8自动化测试缺陷分析方法
4自动化测试数据准备
4.1测试数据的创建方法
4.2测试数据的创建时机
4.3从测试数据1. 到3.
5 基于WEB的自动化测试技术
5.1 Python数据参数化
5.1.1 unittest测试框架数据参数化
5.1.2 Pytest测试框架数据参数化
5.1.3 从外部文件读取测试数据
5.2 元素定位技术详解
5.2.1 CSS选择器(Selector
5.2.2 XPath定位技术
6.走进Selenium
6.1 Selenium介绍及其历史演变
6.1.1 Selenium 概述
6.1.2 Selenium核心组件
6.1.3 Selenium发展历程
6.2 Selenium的安装
6.2.1 Selenium .X对浏览器的支持
6.2.2 建立动态浏览器选择的配置
6.2.3 Option常用属性及方法
6.3 元素定位API
6.3.1 通过id定位API
6.3.2 通过name定位API
6.3.3 通过Class Name定位API
6.3.4 通过Tag Name定位API
6.3.5 通过link文字精确定位API
6.3.6 通过link文字模糊定位API
6.3.7 通过CSS Selector定位API
6.3.8 通过XPath定位API
6.3.9 定位多个元素API
6.3.10 相对定位(Relational Locators)API
6.3.11 链式调用(Chaining)API
6.3.12 通过JavaScript定位API
6.3.13 自定义定位策略API
6.3.14 定位Shadow DOM API
6.3.15 通过多个属性组合来定位
6.3.16 定位元素建议
6.3.17 定位工具
6.4 元素操作API
6.4.1 浏览器操作API
6.4.2 文本框操作API
6.4.3 键盘操作API
6.4.4 鼠标操作API
6.4.5 点击操作API
6.4.6 触摸屏操作API
6.4.7 获取HTML属性API
6.4.8 等待API
6.4.9 iframe、标签页和窗口API
6.4.1 控件操作API
6.4.11 Cookie操作API
6.4.12 文件操作API
6.4.13 其他操作API
6.5 Selenium断言API
6.5.1 通过属性值进行断言API
6.5.2 通过页面标题断言API
6.5.3 通过页面当前URL断言API
6.5.4 通过元素状态断言API
7.深入Selenium高级应用
7.1 Selenium Grid
7.1.1 什么是Selenium Grid?
7.1.2 为什么需要使用Selenium Grid?
7.1.3 Selenium Grid的架构(Hub和Node)
7.1.4 Selenium Grid的使用模式
7.1.5 普通环境下Grid的部署
7.1.6 Docker环境下Grid的部署方案
7.2 数据驱动
7.2.1 测试用例
7.2.2 测试脚本
7.3 代码的封装
7.3.1 POM和FOM
7.3.2 目录结构
7.3.3 封装最基本的方法(basepage)
7.3.4 测试数据及封装获取测试数据方法(data)
7.3.5 pageobject封装页面和业务流方法(pageobject)
7.3.6 测试程序(test)
7.4 测试程序的自愈
7.4.1 Selenium在Java环境下运行
7.4.2 healenium
7.4.3 Recheck
7.5 利用Applitools Eyes识别视觉bug
7.6 Airtest
7.6.1 Airtest的安装
7.6.2 Airtest示例
7.6.3 关键语句介绍
7.7 与Jenkins集成
8.走进Playwright
8.1 Playwright介绍
8.1.1 序言
8.1.2 Playwright核心特性
8.1.3 高效稳定的执行能力
8.1.4 强大的自动化功能
8.2 Playwright的安装
8.3 playwright命令
8.3.1 语法
8.3.2 参数说明
8.4 playwright设置
8.4.1 忽略HTTPS错误
8.4.2 设置自定义窗口大小
8.4.3 模拟手机浏览器
8.5 录制Playwright语句
8.5.1 开始录制
8.5.2 同步和异步代码
8.5.3 录制脚本优化
8.6 playwright格式和运行
8.6.1 Playwright语句格式
8.6.2 运行方式
8.7 playwright元素定位
8.7.1 playwright定位元素API
8.7.2 playwright高级定位元素机制
8.7.3 playwright定位元素表达式
8.8 元素操作
8.8.1 浏览器操作API
8.8.2 文本框操作API
8.8.3 表单操作API
8.8.4 获取HTML属性API
8.8.5 鼠标操作API
8.8.6 键盘操作API
8.8.7 等待API
8.8.8 iframe、标签与窗口操作API
8.8.9 Cookie操作API
8.8.10 文件操作API
8.8.11 执行JavaScript操作API
8.8.12 事件监听API
8.8.13 模拟网络API
8.8.14 调试与HTML5 API
8.9 playwright断言
8.9.1 断言内容
8.9.2 对象断言
8.9.3 expect断言API
8.9.4 否定匹配器
8.9.5 force=True
9. 深入Playwright高级应用
9.1 与pytest结合
9.1.1 安装
9.1.2 参数介绍
9.1.3 pytest.mark.介绍
9.1.4 配置文件示例
9.2 数据驱动测试
9.2.1 通过@pytest.mark.parametrize参数化
9.2.2 通过外部文件进行参数化
9.3 代码的封装
9.3.1 目录结构
9.3.2 基础操作(basepage)
9.3.3 数据操作操作(data)
9.3.4 页面和业务操作(pageobject)
9.3.5 测试程序
9.4 测试程序的LLM自动化生成Midscene
9.4.1 进入Midscene
9.4.2 Midscene的关键字
9.4.3 Midscene不支持数据库操作
9.5 与Jenkins集成
10.走进Cypress
10.1 Cypress介绍
10.1.1 Cypress是什么
10.1.2 核心特性与优势
10.1.3 架构与工作原理
10.1.4 Cypress局限性
10.2 Cypress安装
10.2.1 安装node.js
10.2.2 安装Cypress
10.2.3 配置环境变量
10.2.4 修改package.json
10.2.5 启动Cypress
10.3 创建第一个 Cypress 测试
10.3.1 初始化Cypress项目
10.3.3 编写第一个测试用例
10.4 Cypress 配置
10.5 升级Cypress
10.6 元素定位
10.6.1 使用data-* 属性定位
10.6.2 基本元素定位API
10.6.3 基本元素辅助定位
10.6.4 最佳实践建议
10.7 操作元素
10.7.1 浏览器操作API
10.7.2 文本框操作API
10.7.3 获取HTML属性API
10.7.4 鼠标操作API
10.7.5 键盘操作API
10.7.6 等待API
10.7.7 iframe和新标签页操作API
10.7.8 控件操作API
10.7.9 元素状态属性API
10.7.10 Cookie操作API
10.7.11 文件操作API
10.7.12 滚动条操作API
10.7.13 条件判断API
10.8 钩子函数(Hook)
10.8.1 语法
10.8.2 与其他测试框架的比较
10.8.2 示例
10.8.3 钩子函数执行顺序
10.8.4 实际应用场景
10.8.5 嵌套描述块中的钩子函数
10.8.6 最佳实践
10.8.7 总结
10.9 Cypress断言
10.9.1 隐式断言and()
10.9.2 显式断言expect()
10.9.3 显式断言assert()
10.9.4 断言最佳实践
11. 深入Cypress高级应用
11.1 Cypress访问MySQL数据库
11.1.1 使用cypress-mysql插件
11.1.2 使用官方推荐方法(增强版)
11.1.3 使用自定义命令
11.1.4 完整的数据库操作测试套件
11.1.5 使用环境变量配置数据库连接
11.1.6 注意事项
11.2 数据驱动
11.2.1 变量参数化测试
11.2.2 使用fixture测试外部数据
11.2.3 使用外部JSON文件进行测试
11.2.4 代码优化
11.2.5 数据驱动的示例
11.3 POM & FOM
11.3.1 Cypress下实现面向对象
11.3.2 封装页面对象方法(POM)
11.3.3 封装业务流对象方法(FOM)
11.3.4 总结
11.3.5 最佳实践
11.4 命令行运行测试
11.4.1运行
11.4.2 cypress run
11.4.3 cypress open
11.4.4 cypress verify
11.4.5 cypress version
11.5 Cypress支持Allure
11.5.2 配置cypress.config.js
11.5.3 配置support/e2e.js
11.5.4 在测试中使用Allure
11.5.5 执行测试并生成报告
11.5.6 生成和查看Allure报告
11.5.7 运行结果示例
11.5.8 Allure报告功能
11.6 Cypress与Jenkins集成
11.6.1 配置
11.6.2 配置Pipeline脚本
12.接口自动化测试
12.1 Requests类介绍
12.2 基于requests类的Python接口自动化测试
12.2.1原始阶段
12.2.2对CSRF的校验
12.2.3使用excel作为数据驱动
12.2.4数据驱动优化
12.2.5相对复杂的接口测试
12.3 Cypress接口测试
12.3.1 cy.request参数
12.3.2 Get方法
12.3.3 Post方法
12.3.4 案例
Get接口测试案例
Post接口测试案例
12.4接口性能测试
12.5接口安全测试
【投稿】【关闭窗口】【打印】