• 博客主页:Duck Bro 博客主页
  • 系列专栏:软件测试专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

自动化测试概念篇

关键词:自动化测试、Web自动化测试、selenium


目录

  • 自动化测试概念篇
  • 一、自动化
  • 1. 自动化概念(什么是自动化)
  • 1.1 回归测试
  • 2. 自动化分类
  • 2.1 接口自动化测试
  • 2.2 UI自动化(界面测试)
  • 3. 自动化测试金字塔
  • 二、web自动化测试
  • 1. 什么是驱动
  • 2. 安装驱动管理(webdriver-manager)
  • 3. 安装selenium库
  • 三、Selenium
  • 1. 使用selenium编写代码
  • 2. selenium+驱动+浏览器的工作原理



一、自动化

1. 自动化概念(什么是自动化)

自动化是指通过使用机器、计算机和其他机械设备来代替人力劳动,实现特定任务的过程。

自动化的目标是提高效率、减少错误和风险,并降低人力成本。它可以通过编程和控制系统来实现,以实现自动运行、监测和控制。自动化技术包括传感器、机器人、计算机控制系统和人工智能等。

自动化的主要目的就是⽤来进行回归测试。

1.1 回归测试
  • 软件有多个版本需要进行功能的整体回归。
  • 为了避免新增功能影响到历史的功能需要进行功能的回归。

2. 自动化分类

2.1 接口自动化测试

接口自动化测试是一种通过编写代码实现对接口功能进行自动化测试的方法。通过自动化测试可以提高测试效率和准确性,同时可以节省人力成本和时间。

接口自动化测试可以使用各种工具和框架来实现,例如Selenium、RestAssured、Junit、TestNG等。选择合适的工具和框架,可以根据接口类型、测试需求和团队技术栈等进行选择。

2.2 UI自动化(界面测试)

UI测试也称为界⾯测试,常⻅的UI自动化测试包含web自动化测试、移动端自动化测试等等。

  • 移动端自动化测试
    移动端测试通常不是将程序部署在移动端上进行测试,⽽是需要安装模拟器,在电脑上编写自动化测试脚本代码对模拟器上的软件进行操作
  • web自动化测试
    web自动化能够代替我们自动的执行。模拟⼈在浏览器上的操作行为,自动的打开浏览器,访问百度⾸⻚,并进行⼀系列的搜索和验证等行为。

【软件测试专栏】自动化测试概念篇_学习

3. 自动化测试金字塔

理想的自动化测试⾦字塔表达了自动化测试的理想情况,利⽤较少的时间和精⼒在单元测试上就能够发现更多有效的问题。如下图

【软件测试专栏】自动化测试概念篇_c++_02

实际上在企业中,自动化往往是“冰淇淋蛋筒反模式”

【软件测试专栏】自动化测试概念篇_软件测试_03

自动化需要⼤量的初始投资,找到“突破点”,与⼿动测试相⽐,我们开始看到它对⻓期成本产⽣的积极影响,也能够清楚,这两种测试活动都是完全兼容,产⽣短期和⻓期利益。


二、web自动化测试

1. 什么是驱动

驱动是一种软件或程序,可与硬件设备通信,控制和操作硬件设备。驱动程序提供了操作系统与硬件设备之间的接口,使操作系统能够识别和使用硬件设备。

程序想要打开web浏览器就需要安装web驱动(即WebDriver),WebDriver 以本地化⽅式驱动浏览器

2. 安装驱动管理(webdriver-manager)

打开 cmd, 直接输⼊

命令:pip install webdriver-manager

【软件测试专栏】自动化测试概念篇_c++_04

安装完成

【软件测试专栏】自动化测试概念篇_软件测试_05

3. 安装selenium库

打开 cmd, 直接输⼊ (selenium版本很多,这里采用selenium 4.0.0版本)

命令:pip install selenium==4.0.0

【软件测试专栏】自动化测试概念篇_软件测试_06

安装完成

【软件测试专栏】自动化测试概念篇_开发语言_07


三、Selenium

1. 使用selenium编写代码

需要低版本的谷歌浏览器 这里使用104.0.5112.102版本

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
#驱动程序管理的自动化
#创建驱动对象
#1.打开浏览器
driver = 
webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
#2.输⼊百度⽹址:https://www.baidu.com
driver.get("https://www.baidu.com")
#3、找到输⼊框并输⼊“迪丽热巴”
driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("迪丽热巴")
#4、找到“百度⼀下”按钮并点击
driver.find_element(By.CSS_SELECTOR,"#su").click()
#5、关闭浏览器
driver.quit()

运行成功

【软件测试专栏】自动化测试概念篇_学习_08

2. selenium+驱动+浏览器的工作原理

【软件测试专栏】自动化测试概念篇_测试工具_09

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