基础问题(学员的问题)

学员问题第一类"Python的应用"

(1)如何将Python运用到实际测试工作中,Python自动化能做哪些方面的自动化

(2)怎么利用python进行自动化测试python如何运用到实际测试中,现在公司以功能测试占绝大部分。

(3)请问你们的python自动化测试主要做哪些哪方面?

要回答上面的两个问题首先明确一个基本概念:Python首先是一个脚本语言,所以当然需要学习语言的语法,但是更为重要的是Python有各种模块,每个模块有自己的功能,有的模块是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的第三方模块或者自带的模块是否可以控制这些工具即可。

2. 学员问题第类二"Python的学习方法"

(1)如何从黑盒测试升级到自动化测试,学习Python的方法?

(2)你好,我从事软件测试6年时间了,但是绝大多数都是黑盒测试,在培训机构学习过编程,想使自己能力有质的提升,请帮忙指点该学习哪方面的知识使自己能有足够竞争力,另外即将担任五人测试团队的test leader,非常感谢。

(3)问下,你是如何从一个纯黑盒手动测试发展为一个全能测试的?还有一个问题就是Python怎么用到移动自动化测试中?谢谢

(4)我想自学Python ,现在的工作中又用不到,不知道有没有什么好的学习方法,谢谢。

以上问题我总结为询问Python的学习方法,我学习Python已经5年了,为什么学习Python是因为当时公司在做智能手机,希望可以对手机一些测试项目实现自动化,找到了Monkeyrunner这个模块,所以才进一步接触到了Python这个语言。学习语言,真的方法很无聊,需要学习语法,写属于自己的第一个hello world程序。

真的与学习其它的语言相比并没有什么特殊之处。但是我想强调的是:看一万遍都不如自己实际手动试一遍,实践非常重要,学习要有目的性。我建议学习Python不能预订的目标就不能仅仅是我要学习Python,Python只是一个工具,这个工具、就只是辅助你实现你想实现的功能,Python的模块非常之多,你无法穷尽的将这些模块一一全部学习一遍,所以学习Python你首先要明确你学习它的目的是什么?你希望通过它帮助你实现什么功能。这个非常重要,然后我们再返回来将Python的基本语法知识快速扫过一遍,再次我建议可以看"超级无敌Python教程"此本电子书。但是请记住看这些电子书只是让你快速了解一下Python的基本语法,然后再根据你的需求找寻模块,根据我的经验,大部分是第三方模块,然后就要学习这些第三方模块,主要就是学习这些模块中各个函数的用法。然后就可以尽快动手实践了,当然在学习基本语法和第三方模块时,也要动手写一些小程序,不能只是动眼不动手。如果你问我,这些第三方模块怎么学?那么请你看博为峰网校上的"Python系列课程",其中有详细的讲解。而Python语法怎么学,哇塞,这个问题有点无言以对,因为网上有很多很多很好的课程,甚至是免费的课程,也有很多资料,免费的资料,这个只能靠自己耐着性子去读,去实践了……

学员问题第三"类Python的框架"

使用python做自动化主要使用是的哪些工具和框架?

这个问题非常好,框架是个非常好的东西,大家在搭建自己的测试体系时,要先在网上尝试寻找有没有已经框架,因为框架这个东西是一个可以大大加快你的开发进度的非常非常好的东西,举个例子,对于自动化测试系统,都是执行一个个Case,不可能一个case一个脚本,我们需要将这些脚本组织起来,而且需要执行一个大功能块的test case,并需要有一个整体的报告产出。这个需求就需要用到Unittest此框架。如果需要了解详细内容可以查看博为峰网校上的"Python系列课程",其中有详细的讲解。

如果你想做"云"这个高大上的后端开发,就需要用到Django此框架,这个框架是我下半年要学习的内容,在此无法给各位更为专业的指导。

综上,你想到使用框架,就是一个非常值得赞赏的想法,因为使用框架进行开发,就像站在巨人的肩膀上,可以的大大提高你的开发效率,至于到底需要什么框架,就要看你的工作需求了,我目前用的最多的是unittest。

讲师提出的问题(实际开发中遇到的问题):

在电脑1开发的脚本,可以正常运行,移植到电脑2就无法运行?

我们在开发时遇到上述问题,开发者开始一直纠结是电脑环境的问题,问题一直在发散,一直在发散,最后问题越来越复杂,搞到最后不可收拾......,最后他告诉我,这个开发任务无法进行@_@,这个小伙子成功在他的小主管的心里留下了:解决实际问题差的印象......

他的问题在于没有回到问题的本质:Python的作用是定位,操作;

我帮他理清问题就首先回到确认窗口是否定位的思路上(当时他竟然还质疑他的小主管:窗口肯定定位了,因为在他的开发电脑上都是定位的好好的*_*):真的发现窗口没有被成功定位。开发者就很困惑,为什么在电脑1是好的,电脑2就不行。他根本没想到是定位出的问题,所以连简单的确认动作也没做!然后再网上一通乱搜,真的越搜越晕,越搜问题越发散。

使用Spy++发现:窗口的Title在电脑1和电脑2确实发生了变化,所以才会出现这个问题,然后问题解决的就简单了,更改titles字串就可以了。

请不要问,为什么,我也不知道为什么,如果各位学员有时间,可以慢慢研究,对于外部门嗷嗷待哺的需求,实在没时间研究为什么,首要的问题是先解决问题,后续有时间再慢慢了解为什么。

2.对于Pywinauto此模块在使用Spy++查到的title这个属性来定位窗口,一直出错,该怎么办?

按照我们的Python系列课程,不是说定位应用程序以及窗口,都是使用Spy++这个工具吗?

查看这个工具的属性:多用Class或者Title这两个属性,就可以了吗?但是有时就是不能定位,一直有错误信息跳出来,怎么办?

要静下心看错误信息,才能慢慢靠近问题本质,千万不能一出问题,不管三七二十一就到网上一通乱搜,越搜越糊涂,要相信自己可以慢慢厘清。

例如:

app=application.Application().connect_(title_re='?Torrent 3.2')

执行后得到错误信息

从以上错误信息有充足的理由怀疑'?'出了问题,应该不是单纯的英文单词,因为错误信息打印出来的?竟然是一个中文字前面加u转化为UTF格式试试,成功了。(如果要问我,你怎么知道要加u,我告诉你,因为错误信息说明是编码的问题,这个正常人都能想到,然后再在网上搜有关字符串编码的问题,就很容易找到u这个方法)

app=application.Application().connect_(title_re=u'?Torrent 3.2')

所以不管title是不是中文,前面统统加u转化格式,一般这样就不会有这样的问题出现。

本文出自51Testing软件测试网十三周年庆活动—51Testing大咖秀,51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

软件测试用python一般用来做什么-如何将Python应用到实际测试工作中?相关推荐

  1. 测试工作中一定要学会做业务总结

    前言:在日常的测试工作中,不知道大家是否会有梳理自己测试业务的习惯.我个人觉得这个事情是值得做的,最好培养成一个习惯,另外一定要依托于业务价值来实现自己的变现.梳理被测业务,就是一种很好的自我提升方式 ...

  2. 软件测试用python一般用来做什么-想要成为一个优秀的软件测试人员,应该学些什么?...

    0-3岁软件测试工程师必看!涵盖手工测试.性能测试.自动化测试.测试开发必备技能! 给你提供一条非常清晰的软件测试技能进阶路线! 我根据薪资的不同,划分成以下几个阶段具体说一下:月薪5-9k:从零基础 ...

  3. 软件测试用python一般用来做什么-Python简直是万能的,这5大主要用途你一定要知道!...

    从2015开始国内就开始慢慢接触Python了,从16年开始Python就已经在国内的热度更高了,目前也可以算的上"全民Python"了. 众所周知小学生的教材里面已经有Pytho ...

  4. 软件测试用python一般用来做什么-做软件测试的, python应该掌握成怎么样 ?

    初级.中级.高级.资深,每一个级别所需要掌握的内容都是层层叠进的.想要做好软件测试工程师,掌握一门编程语言,熟练使用是必备项. 如果定个小目标,想拿到年薪二十万,需要具备哪些技能? ​​首先必须熟练整 ...

  5. 软件测试用python一般用来做什么-python能够做软件的自动化测试吗?

    能啊,太能了. 话说,有多少测试小白抱着不用写代码的想法进入了测试行业,到头来发现还是要学习语言. 首先我要说的是,如果你要是刚刚开始接触自动话测试,建议你可以先从Python入手. Python 在 ...

  6. 软件测试用python一般用来做什么-月薪20K的软件测试岗,为什么要求我会Python?...

    最近有个朋友问我这么一个问题:"看到一个不错的岗位想应聘,但那家公司要求至少会一门编程语言.不是说软件测试不用编程的吗?为什么我看其他公司除了Java,Python也经常出现?怎么回事?&q ...

  7. python学多久可以做项目-怎么自学python,大概要多久?

    我把Python学习分成了三个阶段 第一个阶段:Python的基础知识 初学者需要对Python的基础知识做一个全方位的了解,要清楚什么是条件选择,循环的作用,List集合和Dict字典集合:什么是函 ...

  8. python后端开发工程师做什么-如何面试Python后端工程师?

    更新:2020年5月10号 惭愧惭愧,我已经叛逃Python 4年了,加入了Java阵营,主要是大数据领域被Java.Scala占领了. 工作中真正的核心竞争力还是写出整洁的代码和架构,面向对象的思维 ...

  9. 测试组负责软件质量对吗,软件测试负责人如何开展只做核心功能测试又对软件质量负责的测试工作?...

    经理古先生:为了追赶项目进度,节省资源,只做核心功能的测试,这样的软件存在一定的质量风险,但是测试负责人仍要对软件质量负责,那么测试负责人应该怎样开展?51Testing软件测试网cqy;d7p$b ...

最新文章

  1. matlab实现周期阶跃函数,连续时间信号傅利叶变换与MATLAB实现.doc
  2. php内存缓存设计,求选择哪个缓存设计好一些?
  3. Archlinux 下的 VMWare Workstation 维护笔记
  4. 二十四、爬取古诗网中的100首古诗文
  5. mysql innodb flus_MySQL参数解析innodb_flush_neighbors
  6. 大话微服务(Big Talk in MicroService)
  7. oracle 9.2.0.4,CentOS 4.7 安装Oracle 9.2.0.4的一些问题
  8. [Leetcode][第100题][JAVA][相同的树][二叉树][深度遍历][递归]
  9. POJ NOI MATH-7649 我家的门牌号
  10. CSDN学习会员组团
  11. perl 十六进制转二进制
  12. css中关于单行文本溢出部分用省略号显示
  13. 金刚石结构的各向异性
  14. 微信内部H5页面:处理用户修改微信字体大小造成的页面溢出问题
  15. 计算机使用hdmi需要设置方法,如何在计算机显示器上切换HDMI
  16. DAO:去中心化的新兴领导者
  17. BlueTooth: 蓝牙基带
  18. Win2k高级技巧 -----引用至某BLOG.保存了很久了.
  19. 2022年04月 微信小程序-富文本和文本的使用
  20. 小学生用计算机来计算可以吗,餐桌上关于小学生是否可以使用计算器的争论

热门文章

  1. python lambda匿名函数 用法
  2. keras 修仙笔记一
  3. JavaScript触摸与手势事件
  4. error:Flash Download failed-“Cortex-M3”,“Programming Algorithm”【转】
  5. UIWebView执行JS语句
  6. (转)JS window对象的top、parent、opener含义
  7. MQ-传输方式Topic和Queue的对比
  8. IE6、IE7、IE8、Firefox兼容性CSS
  9. 运行时异常与一般异常区别
  10. Windows 安装MySQL5.7.0+ 服务