专访王平平:测试女巫教你用Python实现自动化实录

发表于:2017-8-23 10:13

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

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

  3. Python自动化实际操作篇:
  51Testing:前面聊到了为什么要学习Python和具体学习Python的方法,下面有几个51Testing会员在实际测试工作中应用Python遇到的问题,你能帮他们解答一下吗?
  1) Python如何实现对系统的API接口功能实现自动化测试?
  2) 如何对Python写的程序进行 GUI 自动化测试?
  3) Python用于工业控制自动化测试怎么样?
  4) 移动APP的UI和接口自动化测试怎么进行?
  王平平:就像上面的4个问题,其实可以参考我在网校上的"Python系列课程",这个课程就是解答了不同类型的产品需要使用哪些第三方模块,课程是根据我在工作中的实际的项目进行讲解,并给大家总结了一套方法,供大家在自己的工作进行应用。如果真的感兴趣的童鞋,可以去看一下这个课程。
  这里我简单讲解一下常用的几个第三方模块:
  a. 基于网页的测试的项目,例如路由器测试的自动化,用到的模块Selenium
  (说人话:就是你在做黑盒测试的项目,需要打开浏览器,需要测试的功能都是在网页上。)而我们这个Selenium这个模块提供了很多用于控制网页以及网页上各种控件的函数,所以在有了一定的Python的基础上再结合Selenium模块就可以达到我们的目的(说人话:对于Python的基本语法有了解,做过简单的Python的项目即可,不需要太深入的了解,要问为什么,因为你只有函数没有其它代码如何将这些函数组织起来,实现你想实现的功能呢?)
  b. 基于运行在Windows OS上的程序的自动化,例如硬件的测试需要控制,用到的模块Pywinauto(说人话:就是不管是我们软件测试还是硬件测试,只要用到运行在windows系统上应用软件,就可以通过控制这个软件进而实现自动化)我们这个Pywinauto这个模块提供了很多控制应用软件以及应用软件上各个控件的函数。
  c. 补充模块:Pymouse和Pykeyboard,这两个模块就是控制鼠标和键盘的,一定要慎用这两个模块,它们只是上述两个模块的补充。
  你可以根据自己实际的工作来看你需要实现什么,你的黑盒测试流程是什么,你在执行黑盒测试使用的工具是什么:是网页?是安装在windows的软件?
  好的,如果你还是一脸蒙菜,我来举一个实际工作中的例子:
  例如:硬件同事需要使用QRCT此工具(熟悉硬件测试的人员应该很熟悉这个软件吧)测试产品,麻烦的是需要将产品放到高低温箱中,测试一夜,需要定期点击这个页面上的两个按钮,那么问题来了:谁能一夜不睡,去做这个无聊且没价值的工作?当然有:Python ^_^,
  用到什么模块?Pywinauto,因为QRCT此工具是安装在Windows OS上的软件。废话不多说,直接上代码:
  所以应该这个小例子可以震撼到各位看官了吧?要问Python能做什么,需要我们先确认我们需要什么?你的黑盒测试需要控制的对象是什么。Python非常强大,第三方模块也非常丰富,几乎可以满足你的所有需求。它可以应用到软件测试也可以应用到硬件测试,只要明确你在手动测试时使用的工具,然后再确认使用Python的第三方模块或者自带的模块是否可以控制这些工具即可。
  5) Python常用的测试框架有哪些?
  王平平:
  1) 是的在开发一个相对来说比较复杂完整的项目就要考虑"测试框架"的问题了,在我们实际工作中,使用较多的就是unittest框架了,因为不管是什么类型的测试,都需要搭建测试框架,即test case怎么组成的,怎么执行,最后怎么生成test report。
  接下来给大家简单介绍一下unitest框架,首先它是python自带的模块,所以不需要另外安装。它的基本构造是将一个个test case打包成一个个独立的"模块",然后根据需要再将这些test case使用test suit继续归类,然后再使用test runner运行,可以以模块为单位进行运行,然后再根据Assert方法判断你的每个case的执行结果,最后使用网上开源的免费的模块:HTMLTestRunner.py生成一个漂亮的测试报告
  虽然你可以查看官网和源代码都可以找到它的基本概念,这里还是简单说明一下,让大家可以对它有个感性的认识:
  a. test fixture(测试治具)
  表明一些准备工作需要执行一个或者更多的测试用例,和一些需要清除的动作,它是一个概念,使用TestCase,setUp和tearDown这些方法来对于测试治具进行初始化,建立测试用例,以及清除。所以测试治具是被构建的,它是由setup方法,TestCase组件以及tearDown方法组成的。
  b. test case
  Test case是测试的最小单元。根据特殊的一系列的输入产生特定的回应。
  Unittest提供一个基本的类:Test case可以用来创建新的test cases.
  c. test suite(测试集)
  Test suit是test case的集合,它可以用来整合test cases,使其可以一起进行执行测试。
  d. test runner
  Test runner是执行测试以及提供测试结果给用户的一个组件,它可以使用图形接口,文字接口或者返回一个特殊值来说明执行测试的结果。
  红框就是构建test case,注意一个test case就是一个函数;绿框标出的就是构建test Suit,即将test case进一步分类;紫框标出的就是构造report注意其中调用了HTMLTest Runner这个开源的文件,并执行这个test suit。
  6) 在实际项目中Python可以结合哪些测试工具做自动化测试?
  王平平:
  这个问题,其实很难回答:因为实际上python可以结合很多测试工具,哪怕这些测试工具是你们公司自己独立开发的测试工具,我们也可以将其搭配我们的python进行自动化测试。关键看是什么样的测试工具,因为python主要是靠第三方模块来实现具体的可用于实际工作自动化开发,我们已经学习的第三方模块是:Selenium,可以用于控制浏览器(市面上主流的浏览器均可使用);pywinauto,可以用于控制运行在windows OS上的软件;pykeyboard以及pymouse均是控制鼠标和键盘的模块……
  如果你的测试工具是通过浏览器可以控制,那就可以用selenium模块来与之合作;如果是运行在windows OS的软件,就可以用pywinauto模块来与之合作,所以我这里不回答具体什么工具可以与python合作做自动化,而是告诉你什么类型的工具可以与python合作做自动化,这样可能更能对你又帮助~
  51Testing:感谢王平平老师为大家带来这么丰富的内容分享,详细大家看完这些内容对于学习Python自动化应该不在迷茫了,最后您还有什么话想对我们会员说的吗?
  王平平:时间有限只能与各位分享到这,我最近因为公司的发展需求,需要学习前端开发,哈哈后端也是Python实现的哦,所以Python真的是一个应用非常广泛的语言。嗯,有点扯远了,我近期学习的前端开发,非常酸爽,痛并痛着,但是我秉持着与学习Python一样的理念,一样的思路:首先先将所学知识在头脑中搭建框架,然后再对这个框架中慢慢添加砖块,哈哈像极了盖房子是吗,真的,这样思路清晰的学习,会让你事半功倍,本周已经写了一个小项目,所以,相信我,不管学习什么语言,都是有一套相同的方法的,对了,后续有机会我会写有关前端开发的相关文档,或者出一些相关的课程,呵呵,我就是一个这么爱分享的好孩子^_^。
版权声明:本文出自51Testing《专访王平平:测试女巫教你用Python实现自动化》:http://www.51testing.com/zhuanti/automation.htm
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • 柯里斯
    2019-1-28 18:20:18

    谢谢,茅塞顿开

  • natang51testing
    2017-8-29 17:59:12

    只是在学习的过程中会很迷茫,学着学者就不知道方向了

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号