自动化测试概念篇
目录
1. 自动化
1.1 自动化概念
自动的代替人的行为完成操作。
自动化在生活中处处可见。

自动洒水机,主要通上水就可以自动化洒水并且可以自动的旋转。
自动洗手液,免去了手动挤压可以自动感应出洗手液
超市自动闸门,不需要手动的开门关门
生活中的自动化案例有效的减少了人力的消耗,同时也提高了生活的质量。
软件中的自动化测试也是如此,通过自动化测试有效减少人力的消耗的同时也提高了测试的质量和效率。
自动化的主要目的就是用来进行回归测试。什么是回归测试?
1.1.1 回归测试
软件有多个版本需要进行功能的整体回归。
为了避免新增功能影响到历史的功能需要进行功能的回归。

1.2 自动化分类
很多人经常听到自动化这个词,但是很容易误以为自动化就是一个东西,自动化是个统称,我们可以理解为我们常说的吃瓜这样的表达方式和自动化是一样的,吃瓜可以是吃西瓜,吃哈密瓜,吃香瓜,自动化也包含多种,如接口自动化,web自动化,移动端自动化等等...
主要介绍各测试分类为什么需要实施自动化,目的和意义
1.2.1 接口自动化
什么是接口自动化测试?
为什么要做?解决了什么问题,目的是什么
测试接口
1.2.2 UI自动化
1.3 自动化金字塔

理想的自动化测试金字塔表达了自动化测试的理想情况,利用较少的时间和精力在单元测试上就能够发现更多有效的问题。
然后实际上在企业中,自动化往往是“冰淇淋蛋筒反模式”

自动化需要大量的初始投资,找到“突破点”,与手动测试相比,我们开始看到它对长期成本产生的
积极影响,也能够清楚,这两种测试活动都是完全兼容,产生短期和长期利益。
2. web自动化测试
然后实际在企业中,我们需要对某一个特定的软件进行自动化的实施,包含但不限于软件所有界面的U自动化测试、所有接口的接口自动化测试。
接下来我们将正式步入web自动化测试的学习,了解企业中是如何使用工具来统一编写和管理自动化用例。
2.1 驱动
上面给大家已经介绍过,web系统的测试前提是需要打开浏览器,通过访问web服务器来对服务器界面进行一系列的操作。对于手工测试来说,这一系列的操作都需要测试人员手动的,一步一步的来执行测试。那么对于自动化程序来说,程序如何才能打开浏览器并执行我们预期的操作流程呢?
驱动一词应用广泛,同学们都不会陌生。
车有了驱动才能够让车跑起来。

计算机有了驱动程序就可以与设备(耳机,摄像头,麦克风,键盘,显示器等等设备)进行通信。

程序想要打开web浏览器就需要安装web驱动(即WebDriver),WebDriver以本地化方式驱动浏览器。
2.1.1 安装驱动管理
若通过安装驱动的方式来启动浏览器,每次浏览器更新后对应的驱动也需要更新,为了解决这个问题,selenium中提供了驱动管理工具webdriver-manager,有了webdriver-manager无需手动安装浏览器驱动,即使浏览器更新也不会影响自动化的执行。
https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location/
https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location/这个网站就是下载驱动的,但是每次下载太麻烦了,所以就提供了驱动管理工具。
命令:pip install webdriver-manager

驱动管理:
webdriver-manager支持的python版本为:3.7~3.11
WebDriverManager是一个开源的命令行工具,它可以自动下载和安装适用于不同浏览器的
WebDriver。通过使用WebDriverManager,我们可以确保浏览器驱动版本始终与浏览器版本保持一致,从而避免因版本不匹配而导致的各种问题。
2.1.2 selenium库
安装selenium库
selenium版本很多,统一使用selenium4.0.0版本
pip install selenium==4.0.0

3. Selenium
万事俱备,只欠东风。
接下来就是使用selenium来编写web自动化测试脚本。
selenium是一个web自动化测试工具,selenium中提供了丰富的方法供给使用者进行web自动化测试。
3.1 一个简单的web自动化示例
1. 检查python解释器,确定selenium库和WebDriverManager库都安装成功并加载到当前项目中

2. 使用selenium编写代码
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
#编写自动化脚本,具体步骤
chrome_driver_path = 'F:\Code\softTest\chromedriver-win64\chromedriver-win64\chromedriver.exe'
#1.打开浏览器 -- 驱动管理
#ChromeIns = ChromeDriverManager().install()
###创建谷歌浏览器驱动对象
driver=webdriver.Chrome(service=Service(chrome_driver_path))
time.sleep(2)
#2.输入百度网址:https://www.baidu.com(网址一定要完整,不要写成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()
3.2 selenium+驱动+浏览器的工作原理
实现web自动化测试需要浏览器、浏览器驱动、selenium自动化脚本。这三者是如何交互最终实现
web的自动化测试?

- 通过selenium编写的自动化脚本代码中在ChromeDriverService中创建一个服务
- 通过创建好的服务打开webdriver,安装在本地的驱动服务IP为localhost,PORT为ChromeDriverService中创建的端口号,该服务地址为selenium向webdriver发送请求的服务地址。
- 向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再次对浏览器操作需携带此id
- 打开浏览器后,所有的selenium的操作(访问地址,查找元素等)均通过创建好的服务链接到webdriver,然后使用execute发送请求
- 驱动收到请求并对请求进行解析,转成浏览器能够解析的脚本并发送给浏览器,浏览器通过请求的内容执行对应动作
- 浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本
4. 笔记
5. 代码
更多推荐



所有评论(0)