软件测试-自动化测试

一、自动化

(一)自动化概念

自动的代替人的行为完成操作。

  • 比如自动洒水机、自动洗手液、超市自动闸门,生活中的自动化案例有效的减少了人力的消耗,同时也提高了生活的质量。

软件的版本迭代更新速度较快,如果每次更新都需要进行手工测试,测试消耗时间长,每个版本都有重复的测试过程。然而自动化测试不仅可以提高测试质量和效率,而且有效的减少人力的消耗。

自动化的主要目的就是用来回归测试。

1. 回归测试

为什么要进行回归测试? ---> 为了避免新增功能影响到历史的功能

> 自动化脚本出现报错可能的原因

  1. 测试人员编写的自动化测试脚本有误
  2. 本次更新了历史功能,导致自动化需要更新
  3. 开发人员编写的代码影响了历史功能 --- 自动化发现了bug
常见面试题
1.自动化测试能够取代人工测试吗?

自动化测试不一定比人工测试更能保障系统的可靠性,自动化测试是测试人员手动编写 ,后续如果有功能的变更,自动化也需要进行不定时的维护和更新

2.自动化测试可以大幅度降低工作量?

错误(坑!!"一定程度上"和"大幅度"的表达方式也需要注意)

tips:测试笔试中的选择题尽量不要选择说的太死或者太绝对的选项

软件测试的生命周期:需求分析、测试计划、测试设计、测试开发、测试执行、测试评估

(二)自动化分类

  1. 自动化测试分为:接口自动化测试 和 UI / 界面自动化测试。

  2. UI自动化测试:移动端自动化测试、web端自动化测试

注意:我们目前所针对的是web端自动化测试

二、web自动化测试

程序模拟人的操作来执行测试

比如:百度搜索关键词"王一博"并展示相关词条

>>> 手工测试

  1. 打开浏览器
  2. 请求网址:https://www.baidu.com
  3. 找到百度输入框,输入关键词"王一博"
  4. 找到 百度一下 按钮并点击
  5. 关闭浏览器

>>> 自动化测试和手工测试步骤是一样的

  1. 打开浏览器
  2. 请求网址:https://www.baidu.com
  3. 找到百度输入框,输入关键词"王一博"
  4. 找到 百度一下 按钮并点击
  5. 关闭浏览器

对于web自动化测试来说,测试的前提需要打开浏览器,通过访问web服务器来对服务器界面进行一系列的操作。对于手工测试来说,这一系列操作的需要测试人员手动测试,比如直接双击浏览器来进行操作。而Web自动化测试如何打开浏览器进行操作呢?

  • 对于程序来说,想要打开浏览器就需要安装web驱动(即WebDriver),WebDriver以本地化方式驱动浏览器

(一)安装驱动程序

1. 手动下载驱动

下载入口:https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location/

选择和你的浏览器版本匹配的web驱动程序下载:

浏览器存在不同版本,不同版本的浏览器对应不同的驱动版本。要求驱动版本和浏览器的版本必须匹配。匹配可以指相同版本,也可以指版本有非常小的差异。

手动下载驱动要求比较多,且存在问题也比较明显:

1)要下载不同浏览器的驱动,谷歌浏览器-谷歌浏览器驱动,edge浏览器-edge浏览器驱动

2)根据浏览器的版本下载与之对应版本的驱动

3)浏览器是有自动更新的功能(默认打开),如果每次浏览器更新,都要手动下载相应的web驱动程序,太麻烦了。

因此我们可以引入WebDriverManager 依赖来管理驱动,无需手动下载驱动。

2. 由驱动管理程序自动下载与浏览器版本匹配的驱动(推荐)

驱动管理:是一个开源Java库,以完全自动化的方式对Selenium WebDriver所需要的驱动程序进行管理

引入的配置:

java 复制代码
<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>5.8.0</version>
    <scope>test</scope>
</dependency>

三、Selenium

selenium是一个web自动化测试工具,selenium中提供了丰富的方法供给使用者进行web自动化测

试。接下来就是使用selenium来编写web自动化测试脚本。

(一)web自动化示例

百度搜索关键词"王一博"并展示相关词条

1. 新建一个maven项目
2. 安装selenium库

在pom.xml中添加依赖,然后reload

java 复制代码
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.0.0</version>
</dependency>
3. 引入WebDriverManager 依赖来管理驱动

在pom.xml中添加依赖,然后reload

java 复制代码
<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>5.8.0</version>
    <scope>test</scope>
</dependency>
4.src -> test -> java -> new -> 创建表 -> 创建java源文件(创建编写测试和执行测试的源文件)
5. 使用selenium编写代码

在编写测试的源文件中创建方法来编写测试用例,然后再运行的源文件中进行调用运行。

java 复制代码
public void example_test(){
    //驱动程序管理的自动化
    WebDriverManager.edgedriver().setup();//使用插件管理工具webdrivermanager
    EdgeOptions options = new EdgeOptions();//添加浏览器配置

    //允许访问所有链接
    options.addArguments("--remote-allow-origins=*");

    //1、打开浏览器
    WebDriver driver = new EdgeDriver(options);
    //2.输入百度网址:https://www.baidu.com
    driver.get("https://www.baidu.com");
    //3、找到输入框并输入"王一博"
    driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("王一博");
    //4、找到"百度一下"按钮并点击
    driver.findElement(By.xpath("//*[id=\"su\"]")).click();
    //5、关闭浏览器
    driver.quit();
}

(二)selenium+驱动+浏览器的工作原理

驱动要接收selenium脚本发送过来的http请求并解析请求,其实也就是:驱动相当于服务器的功能。

相关推荐
Sakura_j_h_3 小时前
从零写一个 MCP stdio Server:用 Python 校验博客文章格式
开发语言·python·自动化·ai工具·mcp·json-rpc
lisw051 天前
基于神经网络的机器人导航系统的设计与执行!
神经网络·机器人·自动化
严肃小白兔1 天前
Cloudflare 更新 API Token 管理:从最小权限到自动化凭据安全
网络·安全·自动化
2601_968793141 天前
Python Requests 轻量自动化:无需浏览器,实现真人级账号浏览模拟
开发语言·python·自动化
无忧_wy1 天前
MoneyPrinterTurbo 自动化视频生成实战指南
运维·人工智能·自动化·音视频
喵喵匠2 天前
一份 Markdown 发十个平台:cspub 一稿多投
自动化·markdown·效率工具·仓颉·cli工具
小杨爱科普2 天前
制造业上自动化改造,改造部分的专利到底归谁
运维·经验分享·自动化
yurenshi16682 天前
多平台内容发布的工程化实践:模板、校验与排期自动化(2026)
自动化·矩阵运营·内容发布
东莞市壹星自动化设备有限公司3 天前
透明圆瓶内部特征怎样定位:折射追踪与近远相位分支
嵌入式硬件·自动化·需求分析·几何学·骨骼绑定
BioTender3 天前
Xaira 发布 X-Automate:将物理 AI 与智能体 AI 引入实验室自动化
运维·人工智能·自动化