软件测试-自动化测试

一、自动化

(一)自动化概念

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

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

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

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

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请求并解析请求,其实也就是:驱动相当于服务器的功能

相关推荐
牛奶咖啡131 小时前
DevOps自动化运维实践_使用再生龙对Linux系统进行备份还原
运维·自动化·devops·linux系统的备份还原·linux系统克隆备份·再生龙
Youngchatgpt1 小时前
如何在 Excel 中使用 ChatGPT:自动化任务和编写公式
人工智能·chatgpt·自动化·excel
GAOJ_K2 小时前
同步带模组稳定运行的关键
人工智能·科技·自动化·制造
电化学仪器白超2 小时前
EC20CEHDLG-128-SNNS调试记录
python·单片机·嵌入式硬件·自动化
志栋智能2 小时前
安全超自动化:从被动防御到主动响应的革命
运维·网络·数据库·人工智能·安全·web安全·自动化
Gofarlic_OMS2 小时前
LS-DYNA许可证全局状态及集群计算资源使用可视化监控大屏
运维·开发语言·算法·matlab·自动化
arvin_xiaoting3 小时前
OpenClaw AI助手实战:自动化Azure DevOps PR审查与技能扩展
人工智能·自动化·azure
电商API_180079052473 小时前
如何将小红书评论数据封装到API实现自动化分析?测试API实战指南
运维·chrome·自动化
数智联AI团队3 小时前
AI搜索发布新一代智能体平台,以技术创新重塑自动化AI交互体验
运维·人工智能·自动化