测试女巫之Python实战问题篇

发表于:2017-7-31 09:10

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:王平平    来源:51Testing软件测试网原创

  摘要:Pykeyboard和Pymouse,Pywinauto此模块是使用Python语言,它是用于控制鼠标键盘以及控制运行在Windows上的程序。
  一、前言:
  我们已经学习了几个常见的模块,也讲解了如何应用到工作中,不知道大家是否跟着女巫真的改善了自己的工作,因为近期女巫在51Testing软件测试网上参加了"你来问我来答"以及"51 tesing13周年庆"这两个活动,遇到了不少学员提出的问题,这期我就将这些问题进行汇整,产出"Python实战问题篇",我认为这些问题非常具有代表性,希望可以帮到大家。
  二、第一类问题:基础问题(小白问题)
  这类问题比较多,一般都是还未接触到Python不知道它为何物,它能在哪些方面帮到自己的小白提出的,这样的问题我找出几个有代表性的如下:
  a.如何从黑盒测试升级到自动化测试,学习Python的方法?
  b.你是如何从一个纯黑盒手动测试发展为一个全能测试的?
  c.我想自学Python,现在的工作中又用不到,不知道有没有什么好的学习方法?
  d.你好,我从事软件测试6年时间了,但是绝大多数都是黑盒测试,再北大青鸟学习过编程,想使自己能有质的提升,请帮忙指点该学习哪方面的知识使自己能有足够竞争力。
  上述问题我将其总结:为什么学Python,以及如何学习Python?
  1.为什么学Python?
  1)我先回顾一下我为什么学Python。我学习Python已经5年了,为什么学习Python是因为当时公司在做智能手机,希望可以对手机一些测试项目实现自动化,找到了Monkeyrunner这个模块,所以才进一步接触到了Python这个语言。
  2)因为好用呗,我是5年前学Python的,那时它还没这么火,现在是越来越火,从我这几年的使用看,它的实用性非常强,对于工作中遇到的问题,我都能找到相关的模块去解决,这个真的太牛了!至于实际应用的项目,例如手机测试可以用它的Monkeyrunner模块,路由器项目可以用它的selenium模块,需要调用运行在操作系统上的软件可以用pywinauto模块。如果您再问,那如何具体用到这些工作中,那就请看我的Python系列课程吧,那里有详细的说明。
  3)因为怕被淘汰,说起淘汰姐就有一把辛酸泪,我所在的公司经历了多少次针对QA的裁员,至少5次以上。我就是在一次又一次的裁员洗礼下明白了,只是做点点界面的测试真的太不安全了,一有裁员需求,第一个考虑的就是QA。我认为未来的测试应该是以自动化为主,手动测试为辅。所以测试人员必须要学会编程,测试是一个无穷尽的工作,如何体现测试人员的价值,就是在单位时间内能有更多的产出,有让老板瞠目结舌的产出,我觉得以往的那些只凭手工测试就完成一个项目的测试,会渐渐减少,甚至消失,所以如果你是个测试人员建议现在就开始学习Python,只要愿意学习,永远不会晚……
  4)最后给大家两个应用例子来说明为什么要学Python
  Pywinauto我们完成的两类开发项目(注意是两类,不是两个,项目的数量是很多滴):
  对于工厂开发的生产工具的验证:压力测试验证->这些工具都是安装运行在Windows上的,所以首先使用Spy++查找工具的窗口属性,然后将窗口控件的属性打印出来,先确认是否可以定位。一般都可以^_^,如果不可以请看下面总结的几个问题,然后就可以根据需要开始根据测试流程组织逻辑了。如下图
   
  b.对于硬件测试的开发:某日硬件同事需要使用QRCT此工具(熟悉硬件测试的人员应该很熟这个软件吧)测试产品,麻烦的是需要将产品放到高低温箱中,测试一夜,需要定期点击这个页面上的两个按钮。问题来了:谁能一夜不睡,去做这个无聊且没价值的工作?当然有:Python,而且代码就是如下12行,这个理由是不是很震撼?
   
  2.如何学习Python?
  1)首先明确Python是一个语言,一个脚本语言,所有的语言都是从Hello world开始,首先都要学习它的基本语法,变量;它的数据结构;它的各种语句写法等等,然后对于这些基本语言,写各种对应的代码,目的是帮助我们更好理解这些基础的知识。
  2)问问自己学它是为了什么,目的性一定要强,我们总不会为了考试是吗,总归有相关的工作需求你才会想学python,根据你的工作需求确认一下你需要学习什么模块,python是有非常非常丰富的第三方模块,可以帮助你快速完成你所需要的自动化开发工作。
  3)Python有很多模块,这些模块可以帮你实现很多功能,所以千万不要尝试自己写测试库,请先尝试找相关的模块,这些模块可以让你事半功倍,当然它也有自己的架构,例如unittest架构等,所以千万千万不要上来就想所有的功能都要靠自己写。另外我还想多说两句:万事开头难,刚开始学习一定会很枯燥痛苦,但是一定要坚持,撑下去,学语言一定要实践,不能看死书,多做小例子,最好把自己看过的内容,用自己的语言写出文档,这样会加深你的认识,另外学语言不能就事论事,一定要扩展,例如你看到资料上有例子,也在编辑器上写了,也正常运行了,就结束了嘛,不,你还要想,这个例子我如果这样改会怎样?通过不断改例子,会更加加深你的认识,学习起来也不会这样枯燥。
   ... ...
   查看全文内容,请点击下载:http://www.51testing.com/html/28/n-3719628.html
  3)问题3:通过start函数自动调出来的窗口与用户手动打开的窗口不一致也就是说使用start函数自动调出来的窗口,后续无法定位其中的控件。
  一般情况下,手动打开的窗口与通过函数自动调出的窗口是相同的,但是在我们开发的项目中,就遇到一次这样的情况:不仅手动打开的窗口与通过函数自动调出的窗口不同,而且自动调出的窗口无法定位,更无法定位相关的控件。是不是这样的情况我们就放弃开发自动化了?当然不是,换一个角度考虑问题,这个看起来无法解决的问题就能解决!
  解决方式:调出CMD窗口使用dos命令将此程序调用出来,这种方式调出来的程序与手动打开程序的窗口是一样的就可以解决这个问题。首先我们通过Pywinauto将dos界面调出来,然后定位dos界面,在dos界面输入dos命令,这些dos命令就是进入这个应用程序的路径,并在此路径下运行此应用程序,这样的方式调出来的窗口就与手动打开程序的窗口一致,完美的解决了这个问题。
   ... ...
   查看全文内容,请点击下载:http://www.51testing.com/html/28/n-3719628.html
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • attovin
    2017-8-01 17:46:20

    好文章 收藏了

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号