1. Web自动化
由计算机设备完成人为指定的任务目标,释放人力,就是自动化。





1.1. 自动化测试
通过计算机程序代替人力去验证程序功能正确性的过程,叫做自动化测试
例:
手动登录路飞学城的步骤
- 打开浏览器
- 输入路飞学城网站url
- 输入正确的账号密码
- 点击登录
自动化测试可以利用程序,代替人为手动的过程。
通过测试工具或者python脚本的方式来代替或辅助手工测试的行为都可以看做自动化。
1.1.1. 自动化测试背景
随着对高效软件产品的需求不断增长,每个软件开发团队都需要在将最终产品推向市场之前进行一系列测试。 测试工程师在软件产品发布之前努力捕获故障或错误,但交付的软件总是存在缺陷。 即使使用最佳的手动测试流程,最终的软件产品仍有可能存在缺陷或无法满足最终用户的要求。 自动化测试是提高软件测试的有效性,效率和覆盖范围的最佳方法。
自动化测试使用专用工具自动执行手动设计的测试用例,无需任何人手为干预。
自动化测试工具可以访问测试数据,控制测试的执行,并将实际结果与预期结果进行比较。 因此,生成被测系统的详细测试报告。
自动化测试涵盖应用程序的功能和性能测试。
- 功能自动化用于功能测试用例的自动化。 例如,回归测试本质上是重复的,是自动化的。
- 性能自动化用于非功能性能测试用例的自动化。 例如,在相当大(例如100个用户)负载下测量应用程序的响应时间。
自动化用于功能自动化的测试工具:
- 由HP提供的Quick Test Professional,QTP是商业的功能测试工具,支持web、桌面自动化测试
- Rational Robot,由IBM提供。
- Coded UI,由Microsoft提供。
- Selenium,开源软件,web自动化测试工具,功能测试为主
- Auto It,开源软件。
自动化用于非功能自动化的测试工具:
- Load Runner,由HP提供,商业性能测试软件,适合复杂场景性能测试
- JMeter,由Apache提供,java开发的测试工具,支持web,接口测试,性能测试
- Burp Suite,由PortSwigger提供。
- Acunetix,由Acunetix提供。
1.2. 为什么要自动化测试
解决如下问题:
- 回归测试:修改旧代码后,重新进行测试以确认没有引入新的错误而导致其他代码报错,自动化测试可以大幅度降低系统测试、维护测试等人力成本。
- 压力测试:检测软件能够承受的压力,同时能够承受的用户并发访问量,统计软件服务器能够处理多少个请求。
- 兼容性测试:自动化在多种浏览器中运行软件,以保证给用户更好的体验。
测试自动化的主要优点是:
- 长期以来,自动化测试一直被认为对大型软件组织有益。 虽然,小型公司通常认为实施起来太昂贵或困难。
- 可以对自动化测试工具进行编程,以便在特定时间构建和执行测试脚本,而无需任何人为干预。例如,自动测试可以在一夜之间自动启动,测试人员可以在第二天早上分析自动化结果。
- 自动化测试工具能够播放预先录制和预定义的动作。
- 自动化测试支持频繁的回归测试
- 它为开发人员提供快速反馈。
- 它提供了无限次的测试用例执行迭代。
- 它提供了有关测试用例的严格文档。
- 自动化测试生成定制的缺陷报告。
- 与手动测试相比,更不容易出错。
测试自动化缺点:
- 无法取代手动测试,只能是辅助手动测试
- 手工测试主观的能发现更多缺陷
- 测试人员需要编程技能要求
1.3. 自动化测试分类
- web自动化测试
- Selenium
- 接口自动化测试
- Jmeter
- 移动端自动化测试
- Appium
- 单元测试自动化测试
- unitest
1.4. 自动化测试工具选择
- 开源免费
- 使用简单
- 后期易于维护
- 支持多语言
- 容易与单元测试框架结合
- 可以支持多浏览器
- 代码自由可控,
1.4.1. 自动化测试生命周期

1.5. WebDriver
- webdriver又名Selenium2,是一个用来进行复杂重复的web自动化测试的工具。提供一种比Selenium1.0更简单易学,有利于维护的API
- Selenium 2 是 Selenium 和 WebDriver 两个项目的合并,即 Selenium 2 兼容 Selenium,它既支持 Selenium API 也支持 WebDriver API
- API介绍:应用编程接口(提供一些方法,供给使用)
- 支持众多浏览器、Firefox、IE、Chrome、safari等
- 用于定位网页元素、操作网页元素
1.6. 环境搭建
目前环境如下:
- python3.6.4
- Windows 7
- Chrome 74.0.3729.169
- Chromedriver
搭建python3解释器环境

下载安装selenium工具
1.通过python3模块管理工具Pip安装selenium
pip3.6 install selenium==2.48.0
或者
pip3.6 install -i https://pypi.douban.com/simple selenium==2.48.0
2.查看包信息
pip3.6 show selenium
准备浏览器驱动
除此之外,我们还需要安装浏览器驱动,比较常见的浏览器我们一般选用Chrome和Firefox了,当然IE和Safari也有自己的驱动:
- Chrome驱动地址:https://npm.taobao.org/mirrors/chromedriver,或者参见http://chromedriver.storage.googleapis.com/index.html
- firefox驱动地:https://github.com/mozilla/geckodriver/releases
- IE驱动地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
- Safari驱动地址:[https://webkit.org/blog/6900/webdriver-support-in-safari-10/](
下载浏览器驱动的时候,要注意驱动和浏览器的版本对照。
下载webdriver过程:
1.下载地址http://chromedriver.storage.googleapis.com/74.0.3729.6/chromedriver_win32.zip 2.下载完毕解压缩,放入安装python解释器的文件夹下Scripts目录

测试运行代码
from selenium import webdriver
# 创建Chrome WebDriver实例,此路径为驱动程序的路径
driver = webdriver.Chrome()
# firefox浏览器打开
# driver = webdriver.Firefox()
# 加载URL网页
driver.get("https://www.luffycity.com/")
# 打印当前页面的title属性内容
print(driver.title)
# 打印网页URL
print(driver.current_url)
# 关闭浏览器
driver.quit()
效果:
