Python自动化测试的学习路线,看这一篇就够了!
Python⾃动化测试的学习路线,看这⼀篇就够了!
⼀、Python的应⽤场景
Python⽤于简单脚本编程,如编写2048⼩游戏或12306的⾃动抢票软件;
Python⽤于系统编程,如开发系统应⽤;
Python⽤于开发⽹络爬⾍;
⽹络爬⾍的⽤途是进⾏数据采集,也就是将互联⽹中的数据采集过来。⽹络爬⾍的难点其实并不在于爬⾍本⾝,由于⽹站⽅为了避免被爬取回采取各种各样的反爬⾍措施,⽽如果想要继续从⽹站爬取数据就需要解决这些反爬⾍措施,所以⽹络爬⾍的难点在于反爬的攻克和处理。
1、 Python⽤于Web开发,如个⼈博客、在线教育⽹站以及论坛等;
2、 Python⽤于⾃动化运维,如通过写Python脚本实现对于服务器集进⾏⾃动化管理;
3、 Python⽤于⽹络编程,如Socket编程等;
4、Python⽤于数据挖掘、机器学习等⼤数据与⼈⼯智能领域⽅向的程序开发,如在⼈⼯智能领域;
5、Python⽤于⾃动化测试,如UI⾃动化测试(Python+Selenium等)、接⼝测试(Python requests等)、性能测试(Python Locust
等)、安全性测试(Python Scapy等)、兼容性测试(Python+Selenium等)等;
⼆、⾃动化测试的那些事
1. 什么是⾃动化测试?
⾸先理清⾃动化测试的概念,
1、⼴义上来讲,⾃动化包括⼀切通过⼯具(程序)的⽅式来代替或辅助⼿⼯测试的⾏为都可以看做⾃动化,包括性能测试⼯具
(loadrunner、jmeter),或⾃⼰所写的⼀段程序,⽤于⽣成1到100个测试数据。
所以实际上从⼴义上来讲:性能测试、接⼝测试等但凡⽤到测试⼯具的测试都称为"⾃动化测试"
2、狭义上来讲,通⼯具记录或编写脚本的⽅式模拟⼿⼯测试的过程,通过回放或运⾏脚本来执⾏测试⽤例,从⽽代替⼈⼯对系统的功
能进⾏验证。
当然,⾏业中经常说的“⾃动化测试”及企业中要求的“⾃动化测试”⼤多都是“基于产品或项⽬UI层的⾃动化测试”。对于性能测试,接⼝测试⼀般不把它们归纳为⾃动化测试的范畴。
2. 为什么要做⾃动化测试?
根据51testing的《中国软件测试从业⼈员调查报告》,⼿⼯测试占到的89% ,相对开发来说,测试的门槛底,薪资普遍较底,所要求的知识⾯虽然有⼀定⼴度,但缺乏深度。这是测试的普遍现状。
正因为⼿功测试⼈门槛不⾼,使⼤量的毕业⽣,甚⾄是⾮专业⼈员涌⼊这个⾏业。从⽽增加了这个⾏业的激烈竞争。对于⼯作⼏年扔处于⼿⼯测试的⼈员来说都会有强列的危机感。由于⼯作的技术含量不⾼,薪资的涨幅遇到瓶颈,另⼀⽅⾯受到新进⼊者的威胁,同样的⼯作公司花5K招来的⼈就可以做,那么就不会花8K 的招。
  这个问题本不应该出现讨论技术的话题中,但他的确是⼤多测试⼈员不得不⾯对的⼀个问题。所以,从测试⼈员⾃⾝的发展来说,我其实⾮常需要通过⾃动化技术来增加⾃⼰有竞争⼒。
  ⾃动化测试最实在的优势在于——⼯作好:有⼀个测试⼯程师(并不是本⼈)发现⼀个有趣的现象,她申请过的⼏乎所有测试职位,在招聘时都需要⾃动化测试经验。但当她开始⼯作后,就发现这
些公司都试图做⾃动化测试,但是结果⼤多不怎么地。不过,尽管她参与的都是⼀些悲剧的项⽬,不过她总能把这些悲剧包装成喜剧以应对下⼀次⾯试。
3、所以呢,既然⾃动化测试有那么多优势,为什么还有那么多项⽬做失败了呢?
我个⼈有个推论:
1、公司⾃动化测试⼈员能⼒不够
2、项⽬难度太⼤,功能不稳定,需求变化太快,就盲⽬启动⾃动化,导致⾃动化脚本开发频繁改变,更不上需求变化的速度,最终以
失败告终
3、项⽬过于复杂,⼤部分功能⽆法实现⾃动化,仅仅只有⼩部分功能实现⾃动化,这个对于项⽬意义不⼤。
4、公司⼈员流动⼤,导致⾃动化脚本维护的难度加⼤,最终夭折。
当然⾃动化测试还有个优势:⾃动化测试可以将产品的知识固化到脚本中,以降低测试⼈员流动对项
⽬造成的影响。但是这个优势的前提是,这些脚本易于维护,这就需要⼀些必要的⽂档,这⼜是另⼀个议题了。
4、什么项⽬适合做⾃动化测试?
医院合作协议书假如你已经决定要学习⾃动化测试了,如何学习是要⾯临的下⼀个问题?这个问题以被测试产品为出发点进⾏分析,假如你所学的技术不能得到应⽤(验证),将会使你的学习过程⼨步难⾏。
⾸先考考虑产品是否适合做⾃动化测试。这⽅法⽐较普遍的共识是从三个⽅⾯进⾏权衡。
1、软件需求变动不频繁
测试脚本的稳定性决定了⾃动化测试的维护成本。如果软件需求变动过于频繁,测试⼈员需要根据变动的需求来更新测试⽤例以及相关的测试脚本,⽽脚本的维护本⾝就是⼀个代码开发的过程,需要修改、调试,必要的时候还要修改⾃动化测试的框架,如果所花费的成本不低于利⽤其节省的测试成本,那么⾃动化测试便是失败的。
  项⽬中的某些模块相对稳定,⽽某些模块需求变动性很⼤。我们便可对相对稳定的模块进⾏⾃动化测试,⽽变动较⼤的仍是⽤⼿⼯测试。
2、项⽬周期较长
由于⾃动化测试需求的确定、⾃动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成。这样的过程本⾝就是⼀个测试软件的开发过程,需要较长的时间来完成。如果项⽬的周期⽐较短,没有⾜够的时间去⽀持这样⼀个过程,那么⾃动化测试便成为笑谈。
3、⾃动化测试脚本可重复使⽤
⾃动化测试脚本的重复使⽤要从三个⽅⾯来考量,⼀⽅⾯所测试的项⽬之间是否很⼤的差异性(如C/S系统和B/S系统的差异);所选择的测试⼯具是否适应这种差异;最后,测试⼈员是否有能⼒开发出适应这种差异的⾃动化测试框架。
OK!讲明了上⾯那些事,我们现在可以学习⾃动化测试了
三、主流⾃动化测试框架
桌⾯程序的⼯具有:QTP、 AutoRunner
web应⽤的⼯具有:QTP、AutoRunner、Robot Framework、watir、selenium
⼿机App⾃动化测试:后续再分享
由于B/S架构的诸多优势,早⼏年前⼤量C/S架构的应⽤转为B/S结构。从⽽也推动了web开发与测试技术的发展。这也导致QTP框架的落寞,Selenium框架及Robot Framework框架的⼤量兴起。
假如,被测试有产品是C/S架构的,那么推荐QTP
如果,被测产品是B/S 结构,那么推荐selenium
为什么不是QTP 或其它⼯具?因为selenium 对B/S应⽤⽀持很好,更重要的⼀点,它⽀持多语⾔的开发,真正的试⽤selenium ,你所要掌握的不仅仅是⼀个⼯具⽽已,你还需要学习⼀门语⾔。我为什么要选择selenium?
⽬前市⾯主流⾃动化测试框架:
RFS: Robot Framework + Selenium
Selenium+unittest框架
那你说我们学什么
⾃然选择主流框架,假如你决定使⽤selenium 了之后,你⼜⾯临了⼀个新的问题,选择⼀门语⾔。selenium 是⽀持java、python、ruby、php、C#、JavaScript 。
汤姆叔叔的小屋英文读后感从语⾔易学性来讲,⾸选ruby ,python
从语⾔应⽤⼴度来讲,⾸选python,java、C#、php、
麻辣鸭脖子从语⾔相关测试技术成熟度(及 资料)来讲:python ,java,ruby ,颓废个性签名
或者你可以考虑整个技术团队主流⽤什么语⾔,然后选择相应的语⾔。
我们在这⾥⾃然选择⽬前市⾯上最⽕,使⽤范围⼴,技术成熟度⼤的Python讲解
三、Python⾃动化测试学习路线
第⼀步:先学python ------- python不过关,别谈⾃动化。
第⼆步:Selenium框架
第三步:unittest框架
第四步:项⽬
第五步:Robot Framwork框架
上火了吃什么好
如果只学习Robot Framwork,通过这个来做⾃动化,别以为不要学习Selenium跟python了, 因为Robot Framework中的关键字可能不够⽤,不能满⾜你们的需求,那么我们需要⾃定义关键字,这个时候就必须⾃⼰得通过python+selenium来编写了。
靖安王在 栏⽬⼀中已经说明了python的应⽤王国了,⽤途很⼴,我们做⾃动化测试具体要学习那些python内容 【附图】 如下:
最后可能给予你的帮助
下⾯这些资料,对于做【软件测试】的朋友来说应该是最全⾯最完整的备战仓库
加⼊我的学习:1140267353 免费获取全套软件测试课程,⾥⾯还有技术⼤⽜的经验交流与分享哦如果我的博客对你有帮助、如果你喜欢我的博客内容,别忘了给个三连哟!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。