目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
分层的自动化测试
1、单元自动化测试
定位:对软件中最小可测试单元进行检查和验证
谁做:由开发做更合适
测试人员做的优化是具备测试思维,在设计用例时考虑的更加全面,劣势是不熟悉被测代码
开发做的优势是熟悉自己的代码,只需要掌握单元测试框架的使用和一些常用的测试方法,即可写单元测试,而且定位BUG时更加方便
2、接口自动化测试
web应用的接口自动化测试大体分为两类:模块接口测试和协议接口测试。
模块接口测试,主要测试程序模块之间的调用与返回。它主要强调对一个可实现完整功能的类、方法或函数的调用的测试。
协议接口测试,主要测试对网络传输协议的调用,如HTTP/SOAP等,一般应用在前端和后端开发之间,以及不同项目之间。
谁做:模块接口测试由开发去做。协议接口测试既可以开发也可以测试。
3、UI自动化测试
UI自动化以实现手动测试用例为主,可降低系统功能回归测试的成本
谁做:由测试做更合适
Google把产品测试类型划分为:小测试、中测试、大测试。采用70%、20%、10%的比例,分别对应Unit层、Service层、UI层
4、适合自动化的项目
需求稳定,不会频繁变更;
软件维护周期长;
比较频繁的回归测试;
需要在多个平台上运行相同测试案例,大量重复的任务;
通过手工测试无法实现,或者手工成本太高;
被测软件系统开发较为规范,能够保证系统的可测试性;
测试人员具备较强的编程能力;
每日构建后的测试验证;
软件系统界面稳定,变动少;
项目进度压力不太大,资源充足;
具备大量的自动化测试平台;
一般满足以下三点即可做:
软件需求变动不频繁;
项目周期长;
自动化测试脚本可重复使用;
接口自动化测试方向:Python+requests+pytest+yaml+alluer+Jenkins;
web自动化测试方向:Python+selenium4+pytest+POM+allure+Jenkins;
app自动化测试方向:Python+appium+POM+pytest+allure+Jenkins;
自动化测试模型
自动化测试模型可分为线性测试、模块化与类库、数据驱动测试、关键字驱动测试
线性测试:
这是早期自动化测试的一种形式,通过录制或编写对应用程序的操作步骤来产生相应的线性脚本,每个线性脚本相对独立,且不产生依赖与调用,只是单纯地模拟用户完整的操作场景
模块化与类库:
线性测试的缺点是不易维护,所以采用模块化思想,将重复的操作单独封装成公共模块。当需要用到该模块时,只需要对其进行调用。
消除了代码重复,从而提高测试用例的可维护性。
数据驱动测试:
在有些场景中,测试步骤一致,但数据不一致,比如测试不同用户登录。模块化测试并不能解决这类问题。于是有了数据驱动测试。
数据驱动测试就是,数据的改变驱动自动化测试的执行,最终引起测试结果的改变。简单说就是把数据驱动所用到的测试数据参数化,可以用多种方式来存储和管理这些参数化的数据。
可将测试数据放到数据文件中,如txt文件、Excel、CSV、JSon、Yaml、Xml。测试用例脚本中直接调用文件中的数据
关键字驱动测试:
关键字驱动测试又被称为表驱动测试或基于动作字测试。这类框架会把自动化操作封装成“关键字”,避免测试人员直接接触代码,多以填表格的形式降低脚本的编写难度
Robot Framework 是主流的关键字驱动测试框架之一
这几种测试模型并非后者淘汰前者的关系,在实际过程中,需要相互结合使用。
POM设计模式
POM(Page Object Model):页面对象模型,是一种设计模式,用来管理维护一组web元素集的对象库。使用POM设计模式最终的目的是为了程序松耦合。
设计思想:把元素定位和元素操作进行分层,好处是当元素发生变化时,只需要维护page层的元素定位,不需要关心哪些测试用例中使用了哪些元素,在编写测试用例时,也不需要关心元素是如何定位的。
在POM下,应用程序的每一个页面都有一个对应的page class
每个page class都维护着该web页面的元素集和操作这些元素的方法
POM三层模型
第一层
Base基础页面层:抽取每个页面的相同方法、相同属性(即公共方法、公共属性)到一个基础类BasePage。例如:元素定位方法封装
第二层
PO页面层:每个页面定义其自己的page Object类,定义该页面的元素定位、封装页面功能的方法
第三层
测试用例层:用例操作流程
三层之间的关系:第二层继承第一层,第三层调用第二层里面的方法
当元素发生变化时,只需要修改第二层的元素定位。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
生命如同一场马拉松,每一步都需要坚韧与毅力。不论起点如何,只要你奋力向前,你就能超越自我,迎接胜利的喜悦。相信自己的力量,努力奋斗,创造属于自己的辉煌人生!
当你为梦想奋斗时,困难和挑战会不期而至。但不要屈服,勇往直前,因为只有奋斗,才能超越自我,书写属于自己的传世之路。相信自己,坚持努力,创造一个不可替代的人生奇迹!
脚步虽微弱,但信念铸就坚强;困境虽险峻,但勇气引领前行。奋斗的路上,愈挫愈勇,磨难成就辉煌之梦。