目录
一、自动化
1.自动化概念
1.1 回归测试
2. 自动化分类
2.1 接口自动化
2.2 UI自动化
3. 自动化测试金字塔
二、web自动化测试
1. 驱动
1.1 安装驱动管理
1.2 selenium库
三、selenium
1. 一个简单的web自动化示例
2. selenium+驱动+浏览器的工作原理
一、自动化
1.自动化概念
自动化测试是指使用自动化工具或框架来执行测试用例的过程。它能够显著减少人工测试的重复性工作,提高测试的准确性和效率。
例如:
- 自动洒水机,只要通上水就可以自动化洒水并且可以自动的旋转。
- 自动洗手液,免去了手动挤压,可以自动感应出洗手液。
- 超市自动闸门,不需要手动的开门关门。
生活中的自动化案例有效的减少了人力的消耗,同时也提高了生活的质量。
软件中的自动化测试也是如此,通过自动化测试有效减少人力消耗的同时也提高了测试的质量和效率。
自动化的主要目的就是用来进行回归测试。那什么是回归测试呢?
1.1 回归测试
回归测试是自动化测试中的一个重要组成部分,它确保在软件更新或修改后,原有功能仍然按预期工作。自动化回归测试可以快速验证软件的稳定性和可靠性。
软件版本更新后,为了避免新增功能影响到历史的功能需要进行功能的回归。
🌴高频面试题
1.自动化测试能够取代人工测试吗?
自动化测试不一定比人工测试更能保障系统的可靠性,自动化测试是测试人员手工编写,后续如果有功能的变更自动化也需要进行不定期的维护和更新。
2.自动化测试可以大幅度降低工作量?
错误。
坑!!!“⼀定程度上”和“大幅度”的表达方式需要特别注意。
2. 自动化分类
自动化测试可以根据测试对象和测试层面的不同进行分类。
2.1 接口自动化
接口自动化测试专注于测试系统组件之间的接口。它通过模拟请求和验证响应来确保接口的正确性和性能。
2.2 UI自动化
UI自动化测试关注用户界面元素的测试,包括按钮点击、表单填写等交互操作。它确保用户界面的可用性和一致性。
UI测试也称为界面测试,常见的UI自动化测试包含web自动化测试、移动端自动化测试等等。
🌴移动端自动化测试
移动端,顾名思义,就是部署在手机上的应用程序。移动端自动化测试主要测试程序部署在手机上能否按照预期的结果的进行操作。
移动端测试通常不是将程序部署在移动端上进行测试,而是需要安装模拟器,在电脑上编写自动化测试脚本代码对模拟器上的软件进行操作。
移动端测试难度相对较大,移动端测试的稳定性要比接口自动化测试和web自动化测试的稳定性要差很多,原因主要是移动端测试受到的环境影响比较多。
🌴web自动化测试
模拟人在浏览器上的操作行为,自动的打开浏览器,访问百度首页,并进行一系列的搜索和验证等行为。
3. 自动化测试金字塔
自动化测试金字塔是一种分层的测试策略,从底层的基础测试到顶层的端到端测试,每一层都构建在下一层的基础上,以实现高效的测试覆盖。
理想的自动化测试金字塔表达了自动化测试的理想情况,利用较少的时间和精力在单元测试上就能够发现更多有效的问题。
然而实际上在企业中,自动化往往是“冰淇淋蛋筒反模式”:
自动化需要大量的初始投资,找到“突破点”,与手动测试相比,我们开始看到它对长期成本产生的积极影响,也能够清楚,这两种测试活动都是完全兼容,产生短期和长期利益。
二、web自动化测试
Web自动化测试是针对Web应用程序的自动化测试,它利用特定的工具和框架来模拟用户与Web页面的交互。
1. 驱动
web系统的测试前提是需要打开浏览器,通过访问web服务器来对服务器界面进行⼀系列的操作。对于手工测试来说,这一系列的操作都需要测试人员手动的⼀步⼀步的来执行测试。那么对于自动化程序来说,程序如何才能打开浏览器并执行我们预期的操作流程呢?
驱动一词应用广泛,相信大家都不陌生。
汽车有了驱动才能够跑起来。
计算机有了驱动程序就可以与设备(耳机,摄像头,麦克风,键盘,显示器等等设备)进行通信。
程序想要打开web浏览器就需要安装web驱动(即WebDriver),WebDriver 以本地化方式驱动浏览器。
1.1 安装驱动管理
若通过安装驱动的方式来启动浏览器,每次浏览器更新后对应的驱动也需要更新,为了解决这个问题,selenium中提供了驱动管理工具webdriver-manager,有了webdriver-manager无需手动安装浏览器驱动,即使浏览器更新也不会影响自动化的执行。
命令:pip install webdriver-manager
驱动管理:
- webdriver-manager支持的python版本为:3.7~3.11
- WebDriver Manager是⼀个开源的命令行⼯具,它可以自动下载和安装适用于不同浏览器的WebDriver。通过使用WebDriver Manager,我们可以确保浏览器驱动版本始终与浏览器版本保持一致,从而避免因版本不匹配而导致的各种问题。
1.2 selenium库
命令:pip install selenium==4.0.0
三、selenium
万事俱备,只欠东风。接下来就是使用selenium来编写web自动化测试脚本。selenium是⼀个web自动化测试工具,selenium中提供了丰富的方法供给使用者进行web自动化测试。
1. 一个简单的web自动化示例
1)检查python解释器,确定selenium库和WebDriverManager库都安装成功并加载到当前项目中
2)使用selenium编写代码
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.ie.service import Service
from webdriver_manager.chrome import ChromeDriverManager
#编写自动化脚本具体步骤
#1.打开浏览器---驱动管理
ChromeIns=ChromeDriverManager().install()
#创建谷歌浏览器驱动对象
driver = webdriver.Chrome(service=Service(ChromeIns))
time.sleep(2)
#2.输入百度网址:https://www.baidu.com
driver.get("https://www.baidu.com")
time.sleep(2)
#3.找到输入框并输入“网易云音乐”
driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("网易云音乐")
time.sleep(2)
#4.找到“百度一下”按钮并点击
driver.find_element(By.CSS_SELECTOR,"#su").click()
time.sleep(2)
#5.关闭浏览器
driver.quit()
2. selenium+驱动+浏览器的工作原理
实现web自动化测试需要浏览器、浏览器驱动、selenium自动化脚本。这三者是如何交互最终实现web自动化测试的呢?请看下图:
- 通过selenium编写的自动化脚本代码中在ChromeDriverService中创建一个服务。
- 通过创建好的服务打开webdriver,安装在本地的驱动服务IP为localhost,PORT为ChromeDriverService中创建的端口号,该服务地址为selenium向webdriver发送请求的服务地址。
- 向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再次对浏览器操作需携带此id。
- 打开浏览器后,所有的selenium的操作(访问地址,查找元素等)均通过创建好的服务链接到webdriver,然后使用execute发送请求。
- 驱动收到请求并对请求进行解析,转成浏览器能够解析的脚本并发送给浏览器,浏览器通过请求的内容执行对应动作。
- 浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本。