软件测试
技能介绍
-
编程语言
- Python(自动化脚本核心语言)
- Javascript(前端交互及 Web 测试辅助)
- CSV(测试数据存储格式)
- MySQL(关系型数据库,用于测试数据管理)
- HTML(Web 页面结构语言,辅助理解页面元素)
- 正则表达式(字符串匹配、数据提取与验证)
-
自动化测试工具
- Appium(移动应用自动化)
- Selenium(Web 应用自动化)
- Robot Framework(关键字驱动自动化框架)
- Postman(接口测试可视化工具)
- JMeter(性能测试工具,模拟高并发)
- Fiddler(网络抓包工具,辅助接口调试)
- Jenkins(持续集成 / 部署工具,自动化执行测试)
- JIRA (项目管理与缺陷跟踪工具)
- TestRail(测试用例的全生命周期管理)
-
测试框架及辅助工具
- Pytest(Python 单元 / 功能测试框架)
- Parametrize(Pytest 的参数化功能,生成多组测试用例)
- Allure(测试报告生成工具)
- POM(Page Object Model,UI 自动化设计模式)
- Log(测试日志,用于问题定位)
技能细则
正则表达式
-
字符
-
普通字符
-
所有
-
[^ ] 非
-
[A-Z] 区间
-
. 任意单字符,除了\n\r
-
\s 空白符 \S 非空白符
-
\w 字母、数字、下划线
-
\d [0-9]
-
-
非打印字符
-
\cX 控制字符 control+x
-
\f 换页符
-
\n 换行符
-
\r 回车符
-
\s
-
\S
-
\t 制表符
-
\v 垂直制表符
-
-
特殊字符
-
{ } 子表达式
-
. 区配除\n之外的任何单字符
-
或
-
-
限定符
-
- 前面表达式零或多次
-
- 一次或多次
-
? 零次或一次
- {n} {n, } {n,m} 前面表达式n-m次
-
-
定位符
-
^ 开头
-
$ 结尾
-
\b 匹配一个单词边界
-
\B 匹配一个非单词边界
-
\A 匹配字符串开头
-
\B 匹配字符串结尾
-
限定符不能与定位符一起使用
-
-
修饰符
-
i 忽略大小写
-
g 全局匹配
-
m 多行模式
-
s 单行模式
-
u unicode模式
-
y 粘性匹配
-
x 拓展模式
-
-
运算符优先级
- 转义符–括号–限定符–定位符、序号–或–普通字符
-
-
匹配规则
-
^[a-zA-Z_]$ 所有的字母和下划线
-
^[[:alpha:]]{3}$ 所有的3个字母的单
-
^a$ 字母a
-
^a{4}$ aaaa -
^a{2,4}$ aa,aaa或aaaa
-
^a{1,3}$ a,aa或aaa
-
^a{2,}$ 包含多于两个a的字符串
-
^a{2,} 如:aardvark和aaab,但apple不行
-
a{2,} 如:baad和aaa,但Nantucket不行
-
\t{2} 两个制表符
- .{2} 所有的两个字符
-
-
分组和引用
-
捕获分组 (pattern)捕获匹配内容并分配编号 -
非捕获分组 (?:pattern)分组但不捕获 -
命名分组 (?P<name>pattern)(Python)为分组指定名称 -
反向引用 \1,\2等引用前面匹配的分组 -
命名反向引用 (?P=name)(Python)按名称引用分组 -
替换引用 $1,$2或\1,\2在替换字符串中引用分组 -
作用
-
- 将多个字符作为一个整体:可以对这个整体应用量词(如
*、+、?、{n})
- 将多个字符作为一个整体:可以对这个整体应用量词(如
-
- 捕获匹配的内容:可以在后续引用或提取这部分匹配的内容
-
-
-
选择和分支
- 原理
-
断言
-
(?=pattern) 先行断言(Lookahead Assertions)
-
(?!pattern) 正向先行断言(Positive Lookahead)
-
(?<=pattern) 正向后行断言(Positive Lookbehind)
-
(?<!pattern) 负向后行断言(Negative Lookbehind)
-
Python
-
- 精通Python编程从零基础到实战
-
8.1 Python初阶:基础语法
-
Python简介&环境搭建&以及环境变量原理
-
Python常用IDE以及免安装开发环境(如Anaconda、PyCharm等)
-
Python基础语法和基本数据类型(Number、String)
-
Python高级数据类型(Tuple、List、Set、Dict)
-
Python函数和模块基础知识以及高级应用
-
Python运算符(算术、关系、赋值、逻辑、位、身份、三目等)
-
Python流程控制之if判断
-
Python流程控制之循环语句(While循环&For循环)
-
-
8.2 Python初阶:函数和模块
-
Python函数(def)以及函数的分类
-
Python函数参数分类(必选参数&关键字参数&默认参数&不定长参数)
-
Python函数的嵌套、函数递归、匿名函数
-
Python函数装饰器(用例讲解)
-
Python模块和包的分类
-
Python模块的导入(import&from…import…)
-
Python标准库(date, datetime, os模块, json模块, jsonpath模块, 文件处理)
-
Python输入输出(print&input及基础输出优化)
-
Python异常处理(捕获异常try…except…finally&抛出异常raise)
-
-
8.3 Python高阶:面向对象编程
-
面向对象编程(类的创建,init,self,del)
-
面向对象编程(类属性、实例属性、内置属性)
-
面向对象编程(类方法、实例方法、内置方法、静态方法)
-
面向对象三大特性:封装、继承(继承的好处和多继承)、多态
-
Python常用第三方库的应用
-
Python面向对象和异常以及应用
-
Python面向对象异常详解(类的缺陷,自定义缺陷)
-
-
8.4 Python高阶:自动化框架专题
-
Logging日志处理模块(logging, FileHandler, StreamHandler, 日志等级)
-
Python序列化和反序列化详解
-
外部数据库MySQL高级应用(MySqldb、Python操作实现CURD、事务机制)
-
外部数据库Mysql常用管理(yum安装、yum卸载、pyyaml模块操作)
-
外部配置文件Excel/Csv的读取(xlrd、xlwt、pandas、openpyxl、二次封装)
-
Python正则表达式(json、Xpath、email、ip地址等)
-
-
Requests
-
3.2 接口自动化入门:Requests模块详解
-
Requests库简介以及安装
-
Requests五种请求方式详解(get, post, put, delete, request)
-
Requests的data和json参数传参的差异
-
Requests处理文件上传接口实战
-
Requests请求头设置详解
-
Requests请求接口的通用信息原理
-
requests.request和Session.request的区别
-
Requests之Cookie验证及关联接口实战
-
Requests之Session验证及关联接口实战
-
Requests之Token验证及接口实战
-
Requests接口测试实战之正则表达式提取和jsonPath提取
-
Requests状态参数化Response断言详解
-
Requests接口自动化测试项目实战
-
-
Appium
Pytest
-
Pytest
-
3.3 接口自动化入门:Pytest测试框架
-
Pytest详解,常用插件介绍以及批量安装插件(pytest-html, pytest-xdist, allure等)
-
Pytest默认测试用例运行规则以及基础应用
-
Pytest运行时常用参数详解
-
Pytest两种运行模式(命令行,主函数)
-
Pytest全局配置文件pytest.ini配置详解以及markers测试用例分组执行
-
Pytest跳过测试用例
-
Pytest测试用例的执行顺序控制器
-
Pytest前后置,夹具,固件
-
Pytest核心固件Fixture详解以及应用实战
-
Pytest核心固件Fixture结合conftest.py应用实战
-
Pytest执行过程底层顺序详解
-
Pytest之基础路径base_url设置(测试环境,开发环境,生产环境等)
-
Pytest断言应用
-
Pytest集成allure-pytest生成企业级Allure测试报告
-
企业级Allure报告定制
-
企业级Allure报告独立访问
-
接口自动化测试用的YAML文件应用详解
-
接口自动化测试用的YAML文件读写及清空
-
Pytest通过@pytest.mark.parametrize实现数据驱动
-
-
Parametrize
CSV
Pom
Log
Allure
Jenkins
Selenium
-
6.3 Selenium原理及浏览器交互
-
Selenium的三大组件:IDE(录制用例)、Webdriver(执行用例)、Grid(分布式执行)
-
自动化测试环境搭建(selenium, appium, grid, 浏览器驱动)
-
Selenium的工作原理:指令执行路径、指令内容、WebDriver协议
-
浏览器操作:启动、退出、截图、窗口设置最大化、最小化
-
页面导航:前进、前进、后退、刷新、获取URL、获取title
-
高级操作:窗口切换、进入iframe、处理alert、操作cookies、执行JavaScript
-
八大定位策略:ID, NAME, CLASSNAME, TAG_NAME, LINK_TEXT, PARTIAL_LINK_TEXT, CSS, XPATH
-
核心定位策略:CSS选择器、XPATH选择器、XPATH函数、XPATH相对定位、DevTool调试定位
-
三大等待:Sleep/implicit区别、隐式等待、显式等待、强制等待
-
元素操作:元素大小、位置、CSS、HTML文本、value值
-
元素状态:是否存在、是否可用、是否显示、是否可交互
-
常见元素的交互:输入、按钮、超链接、复选框、隐藏框、下拉框
-
复杂元素的交互:下拉选框操作、日期选择框、文件上传、文件下载操作、文件下载
-
键盘及鼠标输入:键盘操作、组合键、鼠标移动、鼠标点击、双击、右击
-
常见的富文本框操作:nuyi、layui、bootstrap、quill、chosen、datepicker
-
Robot Framework
-
- RobotFramework自动化框架实战
-
RobotFramework简介和特点
-
RobotFramework环境搭建、基础使用以及RIDE介绍
-
RobotFramework语法以及变量使用
-
RobotFramework语法之库文件、资源文件和关键字定义以及使用
-
RobotFramework语法之执行dos命令和python语句
-
RobotFramework常用关键字
-
RobotFramework测试用例编写和管理
-
RobotFramework资源以及测试套件设置
-
RobotFramework自动化项目实战之常用API
-
RobotFramework自动化项目实战之元素定位
-
RobotFramework自动化项目实战之表单操作
-
RobotFramework自动化项目实战之鼠标键盘事件
-
RobotFramework自动化项目实战之断言
-
RobotFramework自动化用例分层设计思想
-
RobotFramework非GUI批量执行以及jenkins持续集成
MySQL
-
9.2 5.MySQL数据库SQL查询/多表查询
-
Mysql数据库基础、安装、启动和停止
-
数据库的基础概念以及和应用程序的关系
-
Mysql的简介、特点和常用的客户端介绍
-
Mysql数据库安装以及启动和停止命令初识
-
Mysql客户端图形界面以及命令行实操
-
-
Mysql数据库常见SQL命令使用
-
创建数据库&查看数据库&默认数据库作用详解
-
查看表命令&用户管理&权限管理&设置远程连接
-
Navicat使用详解,建表&设计表&用户管理&权限管理
-
Mysql存储引擎,DDL&DML&DCL&TCL语句详解
-
Mysql数据库基本查询语句详解
-
-
Mysql数据库高级SQL命令使用
-
掌握常见字段类型、约束,非空约束,主键自动生成
-
单行/多行子查询、分页查询、常用函数使用
-
单/多表分组统计查询(group by、常见分组函数、having)
-
Mysql数据库多表
-
-
Linux
Postman
-
9.1 精通Postman接口测试工具实战
-
精通Postman接口测试基础理论:项目接口说明
-
精通Postman接口测试之为什么要做接口测试
-
精通Postman接口测试之项目接口测试流程
-
精通Postman接口测试之接口文档和参数传递讲解
-
精通Postman接口测试之简单接口测试用例以及评审
-
Postman接口测试工具安装、界面讲解、以及注册和登录
-
Postman接口测试工具实战(四种不同参数讲解)
-
Postman接口测试工具实战(结合A/B环境不同参数和响应参数因素)
-
Postman接口测试工具实战(接口关联正则表达式和JsonPath表达式)
-
Postman接口测试工具实战(模拟次数循环业务闭环)
-
精通Postman接口测试之环境变量和全局变量
-
精通Postman接口测试之批量运行测试用例(手动运行,定期运行,CLI运行)
-
精通Postman接口测试之结果断言(自带断言、精准断言、公共断言)
-
Postman接口测试实战之CSV+文件件参数化结构实现数据驱动
-
JDK12及Jenkins的下载、安装以及环境变量的配置
-
Postman+CLI+Jenkins+HTML报告实现接口自动化持续集成
-
Postman+Newman+Jenkins+HTML报告实现接口自动化持续集成
-
Postman接口测试实战之Cookie验证讲解
-
Postman接口测试实战之Session验证讲解
-
Postman接口测试实战之Token验证讲解
-
Postman接口测试实战之Postman授权应用讲解
-
Postman接口测试实战之单向加密算法实战(MD4, SHA系列, HmacSHA系列等)
-
Postman接口测试实战之单向加密算法实战(BASE64, AES, DES, RSA等)
-
Postman接口测试实战之接口签名Sign算法测试实战讲解
-
Postman接口测试实战之Mock Server自定义模拟接口服务器
-
Postman接口测试实战之Console日志查看和应用调试以及数据扩展(时间戳,等待秒等)
-
·jmeter
fiddler
HTML
-
6.1 WEB项目网页前端
-
HTML网页构成
-
HTML基础标签与属性(文本,图片,粗体,斜体,注释等)
-
HTML超链接和表格标签
-
HTML表单标签(文本框,密码框,单选,多选,下拉框,文件上传,隐藏域等)
-
HTML多窗口页面(frameset, frame, iframe, noframes等)
-
Javascript
-
6.1 WEB项目网页前端
-
JavaScript简介,如何嵌入网页,外部文件
-
JavaScript简单变量,常量以及它们的作用域
-
JavaScript数据类型和运算符(算术,比较,逻辑)
-
Javascript分支控制语句:if结构以及嵌套
-
Javascript分支控制语句:switch结构以及嵌套
-
实战
接口自动化
-
- 码尚教育接口自动化框架项目实战
-
接口自动化框架封装项目实战:Base基础模块方法封装
-
接口自动化框架封装项目实战:Requests四种请求以及Cookie, Session透视
-
接口自动化框架封装项目实战:接口自动化统一请求封装
-
接口自动化框架封装项目实战:接口关联封装
-
接口自动化框架封装项目实战:接口关联封装极致改进
-
接口自动化框架封装项目实战:规范YAML测试用例封装
-
接口自动化框架封装项目实战:热加载技术封装
-
接口自动化框架封装项目实战:统一常规接口断言封装
-
接口自动化框架封装项目实战:Mysql数据库断言封装
-
接口自动化框架封装项目实战:YAML测试用例数据驱动封装
-
接口自动化框架封装项目实战:Base_url智能排除封装
-
接口自动化框架封装项目实战:Exception异常处理封装
-
接口自动化框架封装项目实战:Allure企业级测试报告定制
-
接口自动化框架封装项目实战:全局配置文件封装
-
接口自动化框架封装项目实战:日志logging模块封装
-
接口自动化框架封装项目实战:MD5、Base64、RSA等加密封装
-
接口自动化框架封装项目实战:接口签名验证封装
-
接口自动化框架封装项目实战:业务与通用例封装
-
接口自动化框架封装项目实战:真正的零代码低代码封装
-
接口自动化框架封装项目实战:数据驱动带签名混合封装
-
接口自动化框架封装项目实战:流程用例带签名混合封装
-
接口自动化框架封装项目实战:Jenkins持续集成Allure报告
6.4 WEB自动化测试框架与项目实战(全网独家零代码/低代码封装)
-
WEB自动化测试框架:基础功能模块
-
WEB自动化测试框架:验证码识别处理
-
WEB自动化测试框架:PO模式&页面对象设计模式
-
WEB自动化测试框架:热加载BasePage
-
WEB自动化测试框架:好用的通用函数库
-
WEB自动化测试框架:PO元素自动定位
-
WEB自动化测试框架:好用的通用工具类
-
WEB自动化测试框架:封装浏览器驱动方法
-
WEB自动化测试框架:好用的页面初始化方法
-
WEB自动化测试框架:好用的通用日志封装
-
WEB自动化测试框架:好用的数据库操作封装
-
WEB自动化测试框架:好用的全局配置文件
-
WEB自动化测试框架:好用的Excel操作封装
-
WEB自动化测试框架:好用的YAML操作封装
-
WEB自动化测试框架:好用的CSV操作封装
-
WEB自动化测试框架:好用的JSON操作封装
-
WEB自动化测试框架:好用的XML操作封装
-
WEB自动化测试框架:好用的HTML操作封装
-
WEB自动化测试框架:好用的PDF操作封装
-
WEB自动化测试框架:好用的Word操作封装
-
WEB自动化测试框架:好用的PPT操作封装
-
WEB自动化测试框架:好用的邮件发送封装
-
WEB自动化测试框架:好用的钉钉消息封装
-
WEB自动化测试框架:好用的企业微信消息封装
-
WEB自动化测试框架:好用的飞书消息封装
-
WEB自动化测试框架:好用的测试报告封装(Allure、HTMLTestRunner等)
-
WEB自动化测试框架:好用的持续集成封装(Jenkins、GitLab CI/CD等)
理论
3.1 接口自动化测试理论以及项目类型介绍
-
基于工具工程的接口自动化测试的项目类型
-
基于代码的接口自动化测试的项目类型
-
基于平台的接口自动化测试的项目类型
-
既然有接口测试工具为什么还需要基于代码和平台的接口自动化测试
4. 功能测试基础/流程/BUG/兼容性
-
4.1 软件测试基础概念和软件测试分类
-
软件测试定义 & 软件测试目标 & 软件测试行业前景分析
-
软件测试的分类及概念说明
-
软件开发流程、生命周期以及开发模型(瀑布、V、W、敏捷开发模型)
-
软件测试九大思维特征及详解
-
软件测试分类及概念说明详解
-
软件的生命周期及各阶段具体活动及常见开发模型
-
软件测试流程(需求分析&测试计划&测试方案&测试用例&测试数据规范)
-
测试需求分析:为什么要做需求分析&需求分析的作用&需求分析的流程
-
软件测试用例设计规范及用例要素讲解&实战应用
-
-
4.2 软件测试流程及相关文档编写规范
-
软件测试用例设计方法:等价类、边界值、场景法案例讲解
-
软件测试用例设计方法:错误推测法、因果图法、判定表法案例讲解
-
软件测试用例设计方法:正交试验法案例讲解
-
软件测试用例的评审(组内评审、三方会审)及小项目实战用例
-
软件测试报告编写规范&应用实战&测试结果分析
-
-
4.3 Bug流程,生命周期及管理工具详解
-
什么是Bug&以及Bug的分类和级别定义
-
如何有效记录Bug&以及Bug再现步骤
-
Bug报告内容&Bug报告的5C原则和二八原理
-
Bug的生命周期&Bug涉及的8大状态及BUG跟踪
-
常用的缺陷管理工具及缺陷管理工具界面详解
-
-
4.4 兼容性测试,版本控制工具、Web体系
-
浏览器兼容性测试的重要性和原因
-
浏览器兼容性测试场景和测试工具详解
-
版本控制工具SVN的使用
-
版本控制工具Git、GitHub、Gitee的使用
-
文件扩展名、Dos命令、批处理命令以及网络基础TCP/IP协议
-
6.2 WEB自动化测试实施与误区
-
WEB自动化实施面临的问题
-
什么情况下不需要WEB自动化
-
WEB自动化测试的价值和误区
-
WEB自动化的误区在哪里
-
如何合理的使用UI自动化
-
如何高效实用落地实施自动化