当前位置: 首页 > news >正文

06.自动化测试概念

自动化测试概念

  • 1. 自动化
    • 1.1 回归测试
    • 1.2 自动化分类
  • 1.3 自动化测试金字塔
  • 2. web自动化测试
  • 3.Selenium

1. 自动化

​ **自动化测试(Automated Testing):**是指使用软件工具或脚本来自动执行测试任务,代替人工进行重复性、繁琐的测试空座。

自动化的主要目的是用来进行回归测试

1.1 回归测试

​ **回归测试:**在软件维护阶段,当软件发生变更时,更新执行之前的测试用例以确保不会影响已有功能的正确性的一种测试活动。

在检查变更而导致的意外副作用,并确保软件质量不受影响。

1.2 自动化分类

  • **接口自动化测试(API Automation Testing):**是指使用工具或脚本自动发送请求并验证接口返回结果的过程。主要针对应用测试编程接口(API)

    用于验证系统中不同模块、服务或第三方系统之间通过接口进行通信时是否正常工作。

  • **UI自动化测试(User Interface Automation):**也称页面测试,常见的UI自动化测试包含Web自动化测试、移动端自动化测试等等。

    • **Web自动化测试:**主要针对通过浏览器访问的应用程序进行测试。其目的是验证网页上的各种元素是否正确响应用户的操作。
    • **移动端自动化测试:**针对智能手机和平板电脑的应用程序进行的测试,包括原生应用、混合应用及移动Web应用。

1.3 自动化测试金字塔

理想的自动化测试表达了自动化测试的理想情况,利用较少的时间和精力在单元测试上就能够发现更多有效的问题

在实际中往往是 “冰激凌蛋筒反模式”,利用较少的时间和精力在单元测试上就能够发现更多有效的问题。

在这里插入图片描述

2. web自动化测试

驱动:

​ 在Web自动化测试中,驱动是指控制浏览器的底层接口程序。负责与浏览器建立通信,并将你的测试脚本中的操作指令翻译成浏览器可以理解的动作。

驱动 = 浏览器的遥控器

安装驱动管理:

WebDriverManager是一个开源的工具库,以完全自动化的方式对Selenium WebDriver 所需的驱动程序。

<!-- 使用Maven构建项目,在pom.xml文件中添加依赖--><dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.9.3</version>
</dependency>

3.Selenium

Selenium是一个强大的工具集,主要用于Web应用程序的自动化测试。它允许开发者和测试人员编写本来模拟用户与网页的交互,从而实现对Web应用的功能测试。

例:

<!-- 安装selenium -->
<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.23.0</version> 
</dependency><!-- 使用Maven构建项目,在pom.xml文件中添加依赖--><dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.9.3</version>
</dependency>
package com.mohunhun;import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;public class Test {public void example_tet() throws InterruptedException {//驱动程序管理的自动化/*自动检测操作系统类型(Windows、Mac、Linux)自动下载与当前系统兼容的最新版本的 chromedriver*///WebDriverManager.chromedriver().setup();//配置本地驱动System.setProperty("webdriver.chrome.driver", "C:\\Users\\31681\\Desktop\\chromedriver-win64\\chromedriver.exe");ChromeOptions options = new ChromeOptions();Thread.sleep(3000);//允许访问所有链接options.addArguments("--remote-allow-origins=*");Thread.sleep(3000);//1.打开浏览器WebDriver driver = new ChromeDriver(options);Thread.sleep(3000);//2.输入百度网络driver.get("https://www.baidu.com/");Thread.sleep(3000);//3.找到输入框并输入“迪丽热巴”driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("迪丽热巴");Thread.sleep(3000);//4.找到“百度一下” 按钮并点击driver.findElement(By.xpath("//*[@id=\"su\"]")).click();Thread.sleep(3000);//5.关闭浏览器driver.quit();}public static void main(String[] args) throws InterruptedException {Test test = new Test();test.example_tet();}}

selenium + 驱动+浏览器工作原理:

  1. 通过 selenium 编写自动化脚本代码中在 ChromeDriverService 中创建一个服务
  2. 通过创建好的服务打开 webdriver,安装在本地的驱动服务ip为 localhost,PORT为ChromeDriverService中创建的端口号,该服务地址为 selenium 向 webdriver 发送请求的服务地址
  3. 向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并取得 sessionid,如果再次对浏览器操作需携带次 id
  4. 打开浏览器后,所有的 selenium 的操作均通过创建好的服务链接到 webdriver,然后使用 execute 发送请求
  5. 驱动收到请求并对请求进行解析,转成浏览器能够解析并发送给浏览器,浏览器通过请求的内容执行对应动作
  6. 浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本
http://www.dtcms.com/a/267481.html

相关文章:

  • 极简 Docker Compose + Nginx + Certbot 自动化 HTTPS 部署指南
  • 深度学习4(浅层神经网络)
  • Python之--基本知识
  • 马来西亚华韵海外华侨联合会宣布李子昂先生荣升名誉理事
  • HarmonyOS学习2---工程目录UIAbility
  • mysql 图形化界面工具 DataGrip 安装与配置
  • 基于人体骨架动作识别的神经信息处理技术(8 ANUBIS数据集)
  • UI前端与数字孪生结合实践案例分享:智慧水利的水情监测与预警系统
  • 信号与槽的总结
  • spring加载外部properties文件属性时,读取到userName变量值和properties文件的值不一致
  • 每日学习问题记录
  • 四、jenkins自动构建和设置邮箱
  • Matplotlib 安装部署与版本兼容问题解决方案(pyCharm)
  • nginx部署发布Vite项目
  • H3C WA6322 AP版本升级
  • 2 大模型高效参数微调;prompt tunning
  • (LeetCode 每日一题) 1394. 找出数组中的幸运数 (哈希表)
  • Vue前端项目接收webSocket信息
  • uniapp 国密sm2加密
  • 国产数据库之达梦DM:破甲成蝶
  • php协程
  • 【内存】Linux 内核优化实战 - net.ipv4.tcp_tw_reuse
  • Spring boot之身份验证和访问控制
  • FreeCAD傻瓜教程-拉簧拉力弹簧的画法及草图的附着位置设定和Part工作台中形体构建器的妙用
  • C#扩展方法全解析:给现有类型插上翅膀的魔法
  • spring中 方法上@Transation实现原理
  • Flink-Source算子状态恢复分析
  • 机器视觉对位中的常见模型与技术原理
  • HTML网页应用打包Android App 完整实践指南
  • 【Project】基于kafka的高可用分布式日志监控与告警系统