目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
Python自动化测试:https://www.bilibili.com/video/BV16G411x76E/
自动化测试的优势
最短时间-最大收益
构建任何可行的自动化测试框架和自动化脚本都可以最大程度地减少编写和运行测试所花费的时间,从而可以在短时间内获得最大的输出。另外,拥有优秀的自动化测试框架后,人力就可以从诸如同步、错误管理、本地配置,报告生成、解释等这些常见问题中解脱出来。
可重复使用和可读的自动化代码
当你使用现有组件库中提到的代码时,大可以放心,它在以后的时间内仍然是可读和可重复使用的,并且所有相关任务(如报告、同步和故障排除)都将变得更易访问。
资源优化
一些公司没有如设想的一般从自动化实施中受益,因为从自动化测试中获得的效益取决于采用它的灵活性。如果自动化系统是灵活的,并且与从事各个组件的不同团队兼容,那么在资源优化和知识共享方面可以提供巨大的收益。
自动化测试框架的定义
在其他很多行业中,“自动化”指的是通过智能算法自动处理流程,流程运行是很少或完全不需要人工干预。而在软件行业中,自动化测试指的是通过自动化工具(授权版本或开源版本皆可)对软件应用程序进行各种测试。
从技术角度来说,自动化测试框架是一组定制的、可以用来执行脚本化测试和全面报告测试结果的交互式组件。
要成功地构建自动化测试框架,需要考虑到软件质量保障专家的建议,他们可以帮助观察并帮助控制整个测试过程,提高测试结果的准确性。经过精心设计的自动化测试框架能让测试人员以一种实用、简化的方式执行自动化测试。
自动化测试框架的类型
以工具为中心的框架
不管是商业自动化工具和开源自动化工具,都有有助于在测试环境中生成报告、测试套件和分布式测试执行的系统基础设施。
比如Selenium自动化框架,该框架具有主要组件WebDriver——基于Web浏览器的插件,用于控制和操作Web浏览器中的应用程序的DOM模型。Selenium测试自动化框架还拥有实用的编码库和记录回放工具。
以应用为中心的框架
这种类型的框架是为实现某个特定应用程序项目自动化而定制的。以应用为中心的框架支持某个指定目标的应用程序实现测试自动化的需求,由从开源库构建的组件驱动。
这种框架可以围绕SUT创建友好的测试环境来运行一些基本功能,包括部署开发的应用程序、运行应用程序、测试用例执行、直接测试结果报告和便于编码的包装器控件。以应用为中心的框架还会有一个组件来支持在不同操作系统和浏览器上跨各种云环境的测试运行。
关键字驱动框架
关键字驱动框架主要可以吸引缺乏编码经验的新手开发和测试人员,它既可以是以工具为中心的框架,也可以是以项目为中心的框架。
关键字驱动框架可以让编码不熟练的员工参与编写、理解自动化脚本。用于编码的关键字集(如Login、NavigateToPage、Click、TypeText)作为关键字存储库安装在代码库里,根据提供的关键字引用编写脚本的电子表格将被传递到关键字解释器来执行测试。
自动化测试框架的主要组件
如果要实现功能强大且性能卓越的自动化测试框架(无论是开源还是商业的),就必须把包括构成其核心的某些组件考虑在内。有些框架可能包括所有组件,也有些框架只包括其中几个,所以不必在每个框架中都涉及到下面提到的所有组件。
1、测试基础组件
单元测试
单元测试基础组件可以作为任何自动化测试框架的基本部分。
它可以用于以下情况:
通过@test或[test]等特定的形式来定义正在使用的测试方法;
执行影响自动化测试最终结果的断言;
运行简单明了的测试;
无论是从命令行、IDE、专用工具还是CI(持续集成)系统运行测试,为了确保单元测试以简单的方式运行,单元测试库都提供了测试运行器。
单元测试库支持几乎所有编程语言,比如以下这些:Java的JUnit和TestNG,.NET的NUnit和MSTest,Python的unittest(前身为PyUnit)。
集成和端到端测试
在执行集成和端到端测试自动化的同时,也非常合适去实践现有测试库提供的功能。由应用程序UI驱动的API级测试需要有消除不必要的编码负担的组件,这样能让与被测应用程序的交互变得更容易。
因而,测试人员就不会受到连接到应用程序、发送请求、接收结果响应这些编码工作的困扰。
这种类型的几个重要测试组件有:Selenium(可用于主要语言)、protractor(特定于JavaScript)、KarateDSL(Java特定的API级集成测试)。
行为驱动开发(BDD)
专门用于BDD的组件以行为规范为目标,以可执行代码的形式创建可执行规范。在这部分,测试人员可以将预测行为的不同特性和场景转化为代码。
尽管不像其他测试工具哪有直接跟被测应用程序交互,但可以作为BDD过程的支持,创建与自动化测试的范围和意图相一致的活动文档。
BDD组件的典型例子有:cucumber(支持主要语言)、Jasmine(JavaScript)、SpecFlow(for.NET)。
2、测试数据管理
在软件测试自动化和测试创建过程中,最大的困难是如何利用测试数据管理系统。随着自动化测试数量的增加,始终存在这样一个问题:确保执行特定测试所需的某些测试数据在执行测试时可用或可创建。
目前对这种情况并没有一个万无一失的解决方案,这就要求采用可靠的测试数据管理方法来让自动化工作成功运转。
因此所采用的自动化测试框架需要配置充分,以便能提供基本的补救措施来进入或创建、清除要执行的测试数据。
解决这一问题的方法是使用适当的模拟工具,使数据更加简化、更加清晰、更易于理解。
3、mock / stubs和虚拟资产
在对自动化测试进行实践和探索的历程中,可能会出现以下情况:
希望将模块与在单元测试中有经验的已连接组件隔离;
处理在现代应用程序的集成,或端到端测试中常见的繁琐而关键的依赖关系;
在这些情况里,就会觉得创建mock、stubs和虚拟资产来反映连接组件的行为模式是非常必要的,还可能会发现处理mock和stub是一项大范围、大体量的任务。
无论如何,测试人员都会意识到,在开发自动化测试框架期间选择有用的虚拟化工具是件十分重要的事。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生有苦有甜,而我们的成长之路也同样如此。唯有不断地磨练和迭代,才能延展出更广阔的天空。在艰辛与困顿中咬紧牙关,奋力前行,用汗水谱写人生的篇章。
无论是健康、富裕还是幸福,都需要经过不断的付出和努力。只有坚持追求自己的目标,付诸行动并克服困难,才能获得成功与成就。让我们勇敢驶向自由的大海,在奋斗中璀璨人生!
在实现梦想的路上,我们不可避免地会面临挫折和失败。但是只要拥有信心和毅力,持之以恒地努力,就能超越自我,创造属于自己的辉煌。充满勇气、充满激情,在奋斗中开创精彩人生!