首页 > 其他分享 >自动化测试概念篇

自动化测试概念篇

时间:2024-08-02 20:58:34浏览次数:16  
标签:web 浏览器 driver selenium 概念 测试 自动化

目录

一、自动化

1.1 自动化概念

1.2 自动化分类

1.3 自动化测试金字塔

二、web自动化测试

2.1 驱动

2.2 安装驱动管理

三、selenium

3.1 ⼀个简单的web自动化示例

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


一、自动化

1.1 自动化概念

在生活中:
  • 自动洒水机,主要通上水就可以自动化洒水并且可以自动的旋转;
  • 自动洗手液,免去了手动挤压可以自动感应出洗手液;
  • 超市自动闸门,不需要手动的开门关门;
生活中的自动化案例有效的减少了人力的消耗,同时也提高了生活的质量。 软件中的自动化测试也是如此,通过自动化测试有效减少人力的消耗的同时,也提高了测试的质量和效率。
自动化的主要目的就是用来进行回归测试。
回归测试是指在软件代码、使用环境或产品需求发生改变时,通过重新执行已经通过的测试用例,以检测产品中是否出现了新的问题或错误的测试过程。这种测试类型主要适用于软件开发周期中的迭代式开发过程和升级维护过程中。
自动化测试能够取代人工测试吗? 自动化测试不一定比人工测试更能保障系统的可靠性,自动化测试是测试人员手工编写,后续如果有功能的变更,自动化也需要进行不定期的维护和更新。
自动化测试可以 大幅度 降低工作量? 错误。或许表达为自动化测试在一定程度上可以降低工作量更加合理。

1.2 自动化分类

1. 接口自动化测试

2. UI/界面自动化: ①客户端自动化测试 ;② web自动化测试

1.3 自动化测试金字塔

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

往往实际开发中,自动化是“冰淇淋蛋筒反模式”。手工测试才能发现更多的问题,投入的精力也更大。

二、web自动化测试

web自动化测试就是 模拟人在浏览器上的操作行为,自动的打开浏览器,访问某个页面,并进行一系列的搜索和验证等行为。

2.1 驱动

对于自动化程序来说,程序如何才能打开浏览器并执行预期的操作流程呢?那么就需要驱动。程序想要打开web浏览器就需要安装web驱动(即WebDriver),WebDriver 以本地化方式驱动浏览器。

2.2 安装驱动管理

WebDriverManager是一个开源Java库,以完全自动化的方式对Selenium WebDriver所需的驱动程序(如chromedriver、geckodriver、msedgedriver等)进行管理(即下载、设置和维护),自版本5起,WebDriverManager还提供了其他相关功能,如发现本地系统中安装的浏览器的能力,构建WebDriver对象(如ChromeDriver、FirefoxDriver、EdgeDriver等)
<dependency>
  <groupId>io.github.bonigarcia</groupId>
  <artifactId>webdrivermanager</artifactId>
  <version>5.8.0</version>
  <scope>test</scope>
</dependency>

三、selenium

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

3.1 一个简单的web自动化示例

1. 安装selenium库

<dependency>
 <groupId>org.seleniumhq.selenium</groupId>
 <artifactId>selenium-java</artifactId>
 <version>4.0.0</version>
</dependency>

2. 使用selenium编写代码

public void example_test()
{
 //驱动程序管理的⾃动化
 WebDriverManager.chromedriver().setup();
 ChromeOptions options = new ChromeOptions();
 
 //允许访问所有链接
 options.addArguments("--remote-allow-origins=*");
 
 //1、打开浏览器
 WebDriver driver = new ChromeDriver(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();
 }
public class runCase {
    public static void main(String[] args) throws InterruptedException {
        example_demo test = new example_demo();
        test.example_test();
    }
}

 运行测试代码之后,测试完成,也可以在代码中添加sleep,以便更好的观察,更改代码为:


   //测试百度搜索关键词:迪丽热巴
    public void example_test() throws InterruptedException {
        //驱动程序管理的⾃动化
        WebDriverManager.chromedriver().setup();

        //增加浏览器配置:创建驱动对象要强制指定运行访问所有的链接
        ChromeOptions options = new ChromeOptions();

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

        //1、打开浏览器
        WebDriver driver = new ChromeDriver(options);
        Thread.sleep(3000);

        //2.输⼊百度⽹址:https://www.baidu.com
        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();
    }

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

实现web自动化测试需要浏览器、浏览器驱动、selenium自动化脚本。

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

标签:web,浏览器,driver,selenium,概念,测试,自动化
From: https://blog.csdn.net/m0_60462557/article/details/140752931

相关文章

  • 1.机器视觉的概念及其功能
    机器视觉是什么?机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统的特点是提高生产的柔性和自动化程度。在一些不适合于人工作业的危险工作环境或人工视觉难以满足要求的场合,常用机器视觉来替代人工视觉;同时在大批量工业生产过程中,用人工视觉检查产品质量效率低且精......
  • c语言中的地址与指针的概念,及变量的指针和指向变量的指针变量
    C语言中的地址、指针、以及变量的指针与指向变量的指针变量。1.地址(Address)在C语言中,每个变量在内存中都有一个唯一的内存地址。这个地址是变量存储的位置的标识符。可以通过& 运算符来获取一个变量的地址。#include<stdio.h>intmain(){  intx=10;  ......
  • 【GeoScene】一、创建、发布路网服务,并在代码中测试最短路径分析
    前言网上关于GeoScene及GeoSceneAPIforJavaScript的资料太少了,官方的技术支持又太慢了,最近把在项目中踩过的坑分享出来;**版本信息**GeoScenePro4.0GeoSceneEnterprise3.1GeoSceneAPIforJavaScript4.27.4一、创建网络分析图层1、在地理数据库中新建......
  • 测试 pkg - 无法访问目录之外的 pkg
    我正在尝试学习如何创建pkg和测试。我研究发现,为了测试,您创建一个单独的文件夹power_decos/├──pytest_cache/├──venve/├──装饰器/│├──|||init.py│├──装饰器1.py|├──装饰器2.py├──测试/├──in......
  • Selenium + Python 自动化测试01(准备篇)
        本篇文章主要讲述Selenium+Python自动化测试-准备篇。主要时相关软件介绍,下载,安卓等。一、Selenium简介    1、Selenium是什么?        官网描述:        Primarily,itisforautomatingwebapplicationsfortestingpurposes,......
  • 抽象的概念
    抽象类的概念什么是抽象抽象是把多个事物的共性的内容抽取出来,本质就是把我们关注的内容抽取出来。(比如:宝马、奔驰都属于汽车,汽车是抽象出来的概念)在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来......
  • Burp Suite Professional 2024.7 发布 - Web 应用安全、测试和扫描
    BurpSuiteProfessional2024.7(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:https://sysin.org/blog/burp-suite-pro/,查看最新版。原创作品,转载请保留出处。BurpSuiteProfessiona......
  • Jenkins+Jmeter部署性能测试平台
    安装部署Jenkins现在网上信息很多本次不再赘述安装Jmeter本次也不做赘述,另外搜资料吧Jmeter脚本设置Jenkins设置1.安装插件performance,buildwithparameter2.新建项目里配置勾建方式勾建步骤cd/home/jmeterWorkplace/performancetesting/script/home/app/apache......
  • 测试面试宝典(四十五)—— 怎么定位bug是APP端还是服务器端的问题?
    一、观察错误现象首先,仔细观察出现的错误现象。如果是界面显示异常、交互响应卡顿或崩溃等,可能是APP端的问题。但如果数据加载不完整、请求失败提示不明等,可能与服务器端有关。比如,APP界面元素布局混乱,很可能是APP端的布局代码出现错误;而一直提示“服务器繁忙,请稍后再......
  • 基于Web的心理测试/基于PHP大学生心理健康网站/课程设计
    摘 要计算机网络与信息化管理相配合,可以有效地提高管理人员的工作效能和改进工作的质量。良好的心理测试可以使管理员工作得到更好的管理和应用,并有助于管理员更好地管理心理测试,并有助于解决一些心理不健康的用户。因此一套好的心理测试可以起到很大的效果。该管理系统......