滚雪球学 Python 番外系列,自动化测试是个啥?

本系列专栏是滚雪球学 Python 的番外篇之一,自动化测试。希望有需要的同学可以喜欢,本专栏文章风格会走逗趣路线。
自动化测试是和啥
测试,就是测一下开发人员弄出来的软件有没有 BUG。
自动化测试,就是利用工具或者脚本,实现没有人工或者极少的人工就可以完成的测试,说白了就是,用工具自动测,测试人员盯着。
既然出现了自动化测试,那肯定自动化有好处。
自动化测试效率高,啥玩意上了自动化肯定是因为效率的原因
琐碎的任务做一次就好了,测试人员舒服了,工作更有干劲了,摸鱼时间多了
自动化测试,因为不是人操作的,所以每次都会相同,不会出现第一次与第二次操作不同的情况。
你看,使用自动化测试好处多多吧。
不要小看自动化测试,要完全实现自动化还需要投入很多东西。公司要想用,就要掏钱。
第一,对测试人员的技术要求肯定提高了,原先要求点点鼠标就可以,现在要会写代码了
第二,自动化测试属于还没测试,就先投入人力时间成本的
第三,项目变动,自动化测试的脚本肯定要变动
自动化测试近些年越来越流行了,出现了很多工具和框架,比如 Selenium
(我们即将学习的)、UFT
、Ruby Watir
。
后面两个就不要看了,咱也不涉及。
Selenium
写到这里,一般疑问是,为什么自动化测试工具这么多,你非要选择 Selenium
呢?
还不是因为工作中用的多。
如果你想知道其它有点,自行去搜索引擎(百度)检索一下吧,一大堆夸的。
从橡皮擦自己的角度来看,哪里有那么多说法,很多人自动化测试人员就是恰好学习 Python,恰好用了 Selenium,恰好自己在的公司也用 Selenium,那必须推荐下这个吖,毕竟后浪们学习的越多,越能证明自己当初选择的越对。
Selenium IDE 安装与使用
初学自动化测试,咱先来搞一搞 Selenium IDE,这个东西非常容易上手,而且是图形化操作(就是点鼠标操作)。但并不是说这玩意简单,真正用起来你会发现,真麻烦。
先要找到官网:https://www.selenium.dev/,下载地址在网页中部位置。

结果找了半天,发现需要对于谷歌浏览器来说,还需要访问谷歌商店,目前国内肯定是实现不来的。
没办法转战火狐吧。
安装火狐浏览器之后,在火狐浏览器中打开这个地址,注意火狐浏览器打开:
https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/,点击Add to Firefox
。




以上几张图片依次出现,最终出现上图的小图片就完成任务了。
使用 Selenium IDE
点击图片之后出现下图窗口,你即将开启自动化测试之路。

选择创建一个新项目,对于其他内容英语不好的同学翻译一下。

项目名字随意写,不过遵循一个原则,软件开发中能用英文字母的地方,尽量不要用中文,毕竟中文博大精深,不是老外能理解的。

如果需要官方教程,可以打开 https://www.seleniumhq.org/selenium-ide/docs/en/introduction/getting-started/,进行学习,不过对于新手来说,没有太大的必要性,玩起来就行。
项目创建完毕,会进入一个全新的界面,第一眼看到这个界面,肯定一脸懵。不用着急,这就是一个普通的软件,你能熟练的使用 QQ,就一定能熟练的操作它。

既然是学习软件操作了,那一定要勇于的点击各个按钮,目前橡皮擦接触最复杂的软件就是 OFFICE 里面的 Word 了,那软件,真刺激。
先掌握一个概念,Selenium 自动化的理念是,手动先录制一系列的动作,然后在让软件模拟这套动作。
录制脚本
首先录制一个脚本,该脚本如下;
第一步,打开百度;
第二步,点击好 123 超链接。
点击右侧的录制按钮,就可以对你的操作进行录制了。

第二步在弹窗中输入百度的网址。

在弹出的页面中注意已经打开百度了,右下方出现内容表示正在录制你的操作。

点击左上角的 hao123 超链接之后,在新选项卡中打开 hao123 新页面,之后关闭浏览器。

此时 Selenium IDE 相关的操作已经录制完毕,需要手动关闭一下脚本录制。

点击按钮保存(文件可以存储在任意位置,也可以按 Ctrl+S 保存)

录制完毕就可以再次执行了,所谓再次执行就是重复执行你刚才的操作。

有两个启动图标,一个是执行全部脚本,一个是执行当前脚本,点击启动之后,可以在下方看到日志,看不到就拖拽一下窗口。

学习到这里就可以针对技术点在进行一下分析了。

上图中,主要有 Command
、Target
、Value
、Description
四项内容。
Command 表示命令,命令就是我们的一些动作,例如打开一个网页,点击一个按钮。
Target 表示目标,就是在网页中找到某个元素。
Value 表示值,这个用到再说吧,非必填项。
扩展一下案例
打开网页之后,获取到网页的标题,然后存储到一个变量 my_title 中,之后在输出该变量。

上图中存在两个红框,store title 表示存储网页 title,即网页标题,注意 Target
是空,然后 Value,表示获取到的网页标题存储到 my_title 这个变量中。
在 echo 命令中可以通过 ${my_title}
将变量的数据打印出来,注意打印放在关闭命令前,否则会报错的。
查看日志,即可看到对应信息的输出。

注意在运行的时候,如果出现下图所示情况,表示 Selenium IDE 处于等待状况,需要手动停止下。

实现百度一下
打开百度除了点击链接以外,还需要实现检索关键词的内容。可以按照下述内容进行配置。

实现这一系列的设置之后,常见的一步操作是导出为 Python 代码。


导出之后,该代码就可以提高工程师的脚本编写效率,毕竟部分步骤已经通过录制脚本实现了。
纯录制脚本然后测试,在真正的自动化测试中还是比较少见的,因为操作起来并没有想象中那么方便,所以很多时候,我们还是写代码啦。
写在后面
本文是滚雪球学 Python 的番外篇,主要涉及的是 Selenium 相关知识,10 讲左右,希望学习之后你能对自动化测试有所了解。在后面的学习过程中,随时可能会用到 Selenium IDE 相关知识,所以本文还是非常有必要学习一下滴。
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/3c9c74755c42958814dd4e63d】。文章转载请联系作者。
评论