如何用 Python实现自动化测试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何用 Python实现自动化测试
近期一直在看王阳明的相关书籍,他的一个观点我非常赞同,不管要学习什么一定要立志,立志是非常非常重要的,但是立志前一定要有动机,或者说要有"打击",那种让
你内心感到瓦凉瓦凉的打击!我在软件测试这个行业工作了12年之久,截至5年前,我
一直很愉悦地,内心充盈地做着黑盒测试,曾几何时我也觉得最好离"开发"远远的,因为
很多人都说:女孩子做测试挺好的~~ 但是,我遇到很一个非常现实而残忍的问题:"裁员",想想自己也挺奇葩的,在一个公司竟然待了12年之久,在这12年里,因为各种原因,我经历了大大小小的裁员有5次之多,一有裁员需求,老板第一个考虑的就是测试人员。每一次裁员,都是自己团队里的兄弟姐妹,我要亲自告诉他或她,因为公司现在裁员,需
要你离开公司,虽然你的工作是合格的,甚至是优秀的~~然后我要鼓起勇气陪着哭泣的他或她去立刻办理离职手续,一刻也不能停留~~你能想象我内心的崩溃吗?每一次我都会问为什么又是我们?每一次老板都会坦率地告诉我,为什么裁员考虑的是我们测试团队:就
是因为可取代性太强了!!我真的实实在在意识到了黑盒测试的无力。
公司在寒冬时,需要"蓄积能量",也就是需要减少开支,老板就要开始衡量,哪类研
发人员被裁,后续如果公司渡过难关后补起来比较容易,很不幸,每一次评估下来都是测
试人员。有个声音在我脑海里越来越清晰:不能这样,我们团队不能总是做可取代性强的
工作!!所以测试的发展方向是什么?我要有什么样的技能才能改观老板对我们的认知??我开始在网上找,当然也在51testing这样专业的网站上找寻,我找寻的结果是:未来的
测试应该是以自动化为主,手动测试为辅。所以测试人员必须要学会编程,因为测试是一
个无穷尽的工作,如何体现测试人员的价值,就是在单位时间内能有更多的产出,有让老
板瞠目结舌的产出!!
怎么学习Python在第二类问题中有详细说明,期间遇到的困难实在太多了,首要的
问题就是团队的信心不足,我们离开coding实在太久了,这个困难,我只能说,受到的
打击越大,越深,信心就会越足,容许我先哭一会~~ 除了这些形而上的困难,当然也有
实实在在的困难,我举一个实际且非常具体的问题:电脑1开发的脚本,可以正常运行,移植到电脑2就无法运行?
我们在开发时遇到上述问题,开发者开始一直纠结是电脑环境的问题,问题一直在发散,一直在发散,最后问题越来越复杂,搞到最后不可收拾......,最后他告诉我,这个开发任务无法进行@_@,这个小伙子成功在他的小主管的心里留下了:解决实际问题差的印象......
他的问题在于没有回到问题的本质:Python的作用是定位,操作;就首先回到确认
窗口是否定位的思路上(当时他竟然还质疑他的小主管:窗口肯定定位了,因为在他的开
发电脑上都是定位的好好的*_*):真的发现窗口没有被成功定位。开发者就很困惑,为什么在电脑1是好的,电脑2就不行。他根本没想到是定位出的问题,所以连简单的确认动作也没做!然后再网上一通乱搜,真的越搜越晕,越搜问题越发散。
使用Spy++发现:窗口的Title在电脑1和电脑2确实发生了变化,所以才会出现这个问题,然后问题解决的就简单了,更改titles字串就可以了。
请不要问,为什么,我也不知道为什么,如果大家有时间,可以慢慢研究,对于外部
门嗷嗷待哺的需求,实在没时间研究为什么,首要的问题是先解决问题,后续有时间再慢
慢了解为什么。
未来的测试应该是以自动化为主,手动测试为辅,但现在还有一种说法,"在国外,资深的软件测试人员大多是手动测试,他们厉害之处在于测试用例的设计,但在国内,很多
测试人员都把自动化测试当成很厉害的资本
这个问题非常有意思,首先我不太认同这种简单粗暴的对比方式,不能只是"国外","国内"这样的一元的对比,我认为需要多角度考虑问题:例如不同类型的公司,不同规模的公司,不同的待测物,都会影响对比的结果。还有最近听到一个非常有意思的说法:如果
你手里只有一个锤子,那你的眼里只能看到钉子。这句话是什么意思?就是说如果你手里
的工具非常有限,你所看到的世界就是非常局限的。所以我们要尽可能的多掌握一些工具,这样我们看到的世界才能使多维的世界,这个多维的世界,才是比较接近真实的世界。所以,为什么纠结是手动测试比较厉害还是自动化测试比较厉害呢?对于资深的测试人员,
难道这些不都应该被掌握吗?
说到国外,我最近听一个在美国工作10多年的主管跟我讲他所见到的非常厉害的测
试团队,他之前所负责的项目是由一个15个人左右的测试团队测试了2-3个月的全面测
试当然期间也会与开发团队配合进行debug,而且期间经常加班,工作得非常辛苦,就这样辛苦了2-3个月最后剩下大概30多个已知bug,项目团队经过商议,这些bug隐藏较深,应该不影响认证。然后他信心满满地拿着这个产品到这个国外的认证实验室进行测试,他发现这个实验室整整一栋楼只有4个测试工程师,这4个测试工程师都是工作很多年的资深人员。一栋楼除了这4个测试工程师剩下的就是很多很多的仪器以及很多电脑搭起来的各种各样的测试环境,所有的测试工作,都是由这个4个测试工程师将测试环境搭建起来,自动化执行,测试结果也是自动化产生(也就是说测试环境搭建起来后,测试工程师
就可以坐下来喝杯咖啡,聊会天了~)不到一个星期,结果出来了,发现了60多个bug!!然后,这位老板,长大了嘴巴,拿着测试报告,回公司,继续带领着团队努力奋
战~~~~这个经历对他的震撼太大了,这就是差别!!15个人的测试团队对抗4个人的测试团队,而且是15个人*3个月的人力对抗4*1周的人力,结果是:完败!!我觉得不需要纠结手动测试厉害还是自动化测试厉害。对于公司来说,性价比才是要考虑的问题!我
们需要发展的方向就是我们要渐渐成为那4个测试工程师的一员,而不是15个测试工程
的一员!
首先明确Python是一个语言,一个脚本语言,所有的语言都是从Hello world开始,就是说首先都要学习它的基本语法,变量;它的数据结构;它的各种语句写法等等,然后
对于这些基本语言,写各种对应的代码,目的是帮助我们更好理解这些基础的知识。这部
分就像盖房子时搭建房子的框架,无论是什么类型产品的自动化开发,这些框架都是需要的。学习基本语法,真的与学习其它的语言相比并没有什么特殊之处。但是我想强调的是: