零基础怎么学Python自动化测试?跟着这个学四个月可就业

前言

有很多从事基础功能测试的测试人,想要通过学习Python自动化的形式提升自己在软件测试行业的竞争力,但是很多人不知道自动化测试如何去学习,今天我就总结出了这篇文章,给大家制定Python自动化测试的学习路线。

第一步:学习Python编程基础

零基础怎么学Python自动化测试?跟着这个学四个月可就业_第1张图片
python编程是最最基础的,如果你想学会自动化测试,那么python语法就必须会了。我们可以分为四个阶段来学习Python。

阶段一:基础语法、基本数据类型

阶段二:函数、文件操作、异常处理

阶段三:初识类和对象

阶段四:类和对象应用-openpyxl、logging、unittest、ddt

第二步:WebUI自动化测试阶段

阶段一:前端基础

阶段二:Document对象操作

阶段三:Python+selenium

阶段四:关键字驱动/

POM+Excel+unitTest+BeautifulReport+yaml+分布式+多线程的自动化UI测试框架

第三步:APPUI自动化测试阶段

阶段一:Python+Appium

阶段二:开源App系统项目实战

第四步:接口自动化测试阶段

阶段一:基于Request库的Python接口自动化测试

阶段二:Flask接口框架+Swagger接口文档

第五步:自动化测试进阶之PyTest+CI

阶段一:Pytest框架

阶段二:独立测试框架

阶段三:接口与UI框架整合

最后给真正想要学习Python自动化测试的朋友,准备了Python自动化测试的学习资料以及大厂的面试题,“资料和面试题在公重号【程序员阿信】中,回复66即可获取”

零基础怎么学Python自动化测试?跟着这个学四个月可就业_第2张图片

题外话:什么项目适合做自动化测试?

1、需求稳定,不会频繁变更。

自动化测试最怕的就是需求不稳定,过高的需求变更频率会导致自动化测试用例的维护成本直线上升。刚刚开发完成并调试通过的用例可能因为界面变化,或者是业务流程变化,不得不重新开发调试。所以自动化测试更适用于需求相对稳定的软件项目。

需要在多种平台上重复运行相同测试的场景。
这样的场景其实有很多,比如:
对于GUI 测试,同样的测试用例需要在多种不同的浏览器上执行;
对于移动端应用测试,同样的测试用例需要在多个不同的Android 或者 iOS 版本上执行,或者是同样的测试需要在大量不同的移动终端上执行;对于一些企业级软件,如果对于不同的客户有不同的定制版本,各个定制版本的主体功能绝大多数是一致的,可能只有个别功能有轻微差别,测试也是需要覆盖每个定制版本的所有测试;这些都是自动化测试的最佳应用场景,因为单个测试用例都需要被反复执行多次,能够使自动化测试的投资回报率最大化。

2、研发和维护周期长,需要频繁执行回归测试。

在我看来,软件产品比软件项目更适合做自动化测试。首先,软件产品的生命周期一般都比较长,通常会有多个版本陆续发布,每次版本发布都会有大量的回归测试需求。
同时,软件产品预留给自动化测试开发的时间也比较充裕,可以和产品一起迭代。

其次,自动化测试用例的执行比高于1:5,即开发完成的用例至少可以被有效执行 5 次以上时,自动化测试的优势才可以被更好地体现。

对于软件项目的自动化测试,就要看项目的具体情况了。

如果短期的一次性项目,就算从技术上讲自动化测试的可行性很高,但从投入产出比(ROI)的角度看并不建议实施自动化,因为千辛万苦开发完成的自动化用例可能执行一两次,项目就结束了。我还遇到过更夸张的情况,自动化测试用例还没开发完,项目都已经要上线了。所以,对于这种短期的一次性项目,我觉得你应该选择手工探索式测试,以发现缺陷为第一要务。

而对于一些中长期项目,我的建议是:对比较稳定的软件功能进行自动化测试,对变动较大或者需求暂时不明确的功能进行手工测试,最终目标是用20% 的精力去覆盖 80% 的回归测试。

3、某些测试项目通过手工测试无法实现,或者手工成本太高。

对于所有的性能和压力测试,很难通过手工方式实现。
比如,某一个项目要求进行一万并发用户的基准性能测试(Benchmark test),难道你真的要找一万个用户按照你的口令来操作被测软件吗?又比如,对于 7×24 小时的稳定性测试,难道你也要找一批用户没日没夜地操作被测软件吗?这个时候,你就必须借助自动化测试技术了,用机器来模拟大量用户反复操作被测软件的场景。当然对于此类测试是不可能通过 GUI 操作来模拟大量用户行为的。

总结

想要掌握一门新技术,最需要具备的就是学习精神,很多人有了学习路线也不能够坚持学习下去, 导致自己白费功夫啥也没学会。所以在学习的过程中最好是有人能监督你,比方说老师或者是朋友。**

你可能感兴趣的:(软件测试,软件测试,编程语言,其他,经验分享)