三种自动化测试(接口自动化,UI 自动化,单元测试)保姆级教程

自动化测试

自动化测试是指将人为的软件测试转换成自动化,让机器(也就是代码)来进行自动测试。自动化测试包括UI自动化,接口自动化,单元测试自动化。

  • 单元测试:即对项目或者业务中的一段代码进行单元测试,一般以一个类为一个单元进行测试,Java 中的单元测试框架是 Junit,测试方法必须使用 @Test 修饰;
  • 接口测试:即 API 测试,常见的接口自动化测试工具有 JMeter,Postman 等;
  • UI 测试:即对一些界面进行测试,测试框架有 Windows客户端测试的 AutoIT,web测试的 Selenium 以及TestPlant, eggPlant,Robot framework,QTP等。

单元测试

Java 单元测试一般在 IDEA 中使用 Junit 框架进行测试,目的是为了验证一个类中的方法是否符合预期,代码编写是否正确 。在这里介绍 SpringBoot 整合 Junit5 的单元测试,例如当我们需要测试一个类中的方法是否正确时,需要在 test 目录中创建 测试类:

快捷创建测试类:

通过 Alt + Insert ,选择 Test 创建测试类:

在测试类中,对于项目/业务中类的方法进行测试时,都需要使用 @Test 注解进行修饰 ,如下:

Junit 一些注意事项:

  • 测试方法必须使用 @Test 修饰
  • 测试方法必须使用public void进行修饰(可以是静态方法,即 static 修饰),不能带参数
  • 测试类一般使用Test作为类名的后缀
  • 测试单元中的每个方法必须可以独立测试,方法间不能有任何依赖
  • 测试代码的包应该和被测试代码包结构保持一致

常用注解(Junit5):

  1. @Test:将一个普通方法修饰成一个测试方法;
  2. @BeforeEach:会在每一个测试方法被运行前执行一次(有几个测试就执行几次);
  3. @AfterEach:会在每一个测试方法运行后被执行一次(有几个测试就执行几次);
  4. @BeforeAll:表示在所有单元测试之前执行(无论有几个测试都只执行一次);
  5. @AfterAll:表示在所有单元测试之后执行(无论有几个测试都只执行一次);
  6. @Timeout: 表示测试方法如果超过了指定时间将会返回错误。

接口测试

在这里简单介绍如何使用 Postman 进行接口测试(例如测试腾讯视频中的接口)

  1. 先找到接口
    打开页面,按下F12,点击NetWork,再点击Fetch/XHR,刷新一下接口就会显示出来 ,如下
  2. 将接口导入到 Postman 中
    找到一个接口,右键进行复制,复制框里面4个其中的任意一个都可以
    打开 Postman

    没有什么报错的话就导入成功了(若出现报错可以试试复制其它几个),如下:
  3. 进行测试
    测试点:
    • http 的请求方式 :get,post,delete 等等;
    • 参数测试:传递所有参数,传递部分参数,不传递参数,传递其它参数等;

UI 测试

对于 UI 自动化测试本文主要讲如何使用 Selenium 框架对 Web UI 进行自动化测试。

什么是 Selenium

Selenium是web应用中基于UI的自动化测试框架,支持多平台、多浏览器、多语言 。

本文将基于 Selenium + Java 开展对自动化测试的学习。

原理:

搭建环境

从原理图中看出,既然要通过自动化代码操控浏览器就需要一个"媒介",那么首先就需要下载这样的一个媒介,来通过媒介操控浏览器。

在这里我使用的是 Chrome 浏览器(推荐使用),就需要下载一个 Chrome 浏览器的 webdriver 浏览器驱动 ,在下载的过程中需要注意浏览器的版本号与驱动的版本号相对应 。Chrome 浏览器驱动传送门

webdriver 浏览器驱动下载

上图就是驱动的版本,找到与你的 Chrome 浏览器相对应的版本即可,例如你的浏览器版本是 114.0... 就可以下载以 114.0 开头的驱动。若此页面没有与你浏览器对应的版本号,可以点击可用性信息中心,如下:

点击之后的界面如下图:

然后找到相对应的版本下载:

下载完成后解压即可:

配置驱动

分为两种,根据实际情况进行配置:
第一种:Java 环境变量已经配置

那么只需要将 chromeddriver.exe 放到你的配置的 Java JDk bin 目录下即可。

例如:

第二种:没有配置 Java 环境变量

则需要针对刚才下载好的驱动进行配置

  1. 先将 chromeddriver.exe 应用程序放到谷歌浏览器所在的目录中;
  2. 复制谷歌浏览器的路径,将该路径配置到环境变量中;

自动化测试化项目创建

首先通过 IDEA 创建一个 Maven 项目,在创建好的 Maven 项目 pom.xml 里面配置 Selenium 依赖:

xml 复制代码
<dependencies>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</version>
        </dependency>
        
    </dependencies>

然后就只需要正常编写测试代码即可。例如:通过 Selenium 框架打开 Chrome 浏览器进入百度搜索页面,并在输入框中输入指定内容进行搜索

java 复制代码
private static void test2() throws InterruptedException {
        // 创建驱动
        WebDriver webDriver = new ChromeDriver();
        // 打开百度
        webDriver.get("https://www.baidu.com");
        // 通过 css 选择器找到百度输入框
        WebElement element = webDriver.findElement(By.cssSelector("#kw"));
        // 在百度搜索框输入内容
        element.sendKeys("江边鸟");
        // 通过 css 选择器找到搜索按钮 并点击搜索
        sleep(3000);
        webDriver.findElement(By.cssSelector("#su")).click();
        //webDriver.findElement(By.cssSelector("#su")).submit();
        // 在输入框中清除 江边鸟
        sleep(3000);
        webDriver.findElement(By.cssSelector("#kw")).clear();
    }

当执行上述代码后:
程序就会将 Chrome 浏览器自动打开,并在百度搜索引擎当中输入 "江边鸟",然后进行搜索,最后在将输入框中的内容进行清除

上述代码都是 Selenium 框架中的 API ,专门针对 webUI 进行自动化测试,只需要编写自动化代码,剩下的交给程序。对于 Selenium 框架的更多 API 详解,请参考后面的文章。

相关推荐
狂师33 分钟前
AI 测试 Skill 大全,我日常在用的 27个,夯爆了!
人工智能·测试·全栈
狂师1 天前
我开发了一款免费开源的测试开发刷题学习网站
面试·开源·测试
我命由我123452 天前
Python 实用操作 - 文件操作(打开与关闭文件、读取文件、文件写入)
java·开发语言·前端·javascript·数据库·python·java-ee
从琳开始9892 天前
从Socket到TCP回显服务器:Java网络编程完整指南
java·服务器·网络·tcp/ip·java-ee
CoderYanger2 天前
Java EE 进阶:6.SpringBoot 配置文件(第二弹)
java·spring boot·spring·面试·职场和发展·java-ee·程序员创富
ClouGence2 天前
2026 年 AI 自动化测试工具盘点,哪些真正值得用?
测试
猫猫.1533 天前
IO、存储、硬盘、文件系统详细总结
java·java-ee
别讲概念3 天前
JavaEE(5)网络原理初识
网络·java-ee·智能路由器
别讲概念3 天前
JavaEE(6)TCP_IP
网络·tcp/ip·java-ee