UI自动化测试框架详解:一文带你彻底了解

文将详细介绍什么是 UI 自动化测试框架,介绍工作原理和常用的测试工具,以及如何使用这些工具进行自动化测试的实战案例。

用 Apifox,节省研发团队的每一分钟

UI自动化测试框架详解:一文带你彻底了解

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

UI 自动化测试

我们可以看到自动化测试金字塔的顶端是 UI 自动化测试,为啥呢,我想是以下几点原因:

  • UI 界面重复性较强
  • UI 工作量比较大
  • UI 界面离用户最近
  • 分层中包含 UI 自动化测试
UI自动化测试框架详解:一文带你彻底了解

UI 自动化测试案例

接下来我使用以下几个数据,来做一个 UI 自动化测试的小案例:

整体结构

UI 自动化测试案例
整体结构

Business 模块

这是一个公共的封装模块,封装登录模块:

 
from Page_Object.Common_Page.login_page import Login_Page
from HTMLReport import logger
import time
 
 
def login(driver, username, password):
    """
    param driver
    param username
    param password
    return:None
    """
    logger().info(f"{username},{password}")
    login_page = Login_Page(driver)
    login_page.send_username(username)
    login_page.send_password(password)
    login_page.submit()
    time.sleep(2)

Login Case 模块

涉及到的模块有:

  • Common:基于 Selenium 的封装的模块
  • PageObject:页面元素的模块
  • Report:报告的模块
  • TestCase:测试用例模块
  • TestData:测试数据模块
  • TestSuit:测试套件模块
import unittest
from Business.Base_url import url_index
import ddt
from Common.tools.read_txt import read_txt
from HTMLReport import logger
from Page_Object.Common_Page.index_page import Index_Page
from Common.selenium_library import SeleniumBase
from Business.login_business import login
 
 
@ddt.ddt
class Test_login(unittest.TestCase):
 
    def setUp(self):
        self.driver = SeleniumBase().get_web_driver()
 
    def tearDown(self):
 
        SeleniumBase(self.driver).quit()
 
    @ddt.unpack
    @ddt.data(*read_txt('TestData/login_user_password.txt'))
    def test_login(self, username, password, assert_type):
        se = SeleniumBase(self.driver)
        se.get(url_index)
        login(self.driver, username, password)
        se.add_page_screen_shot()
 
        if assert_type == '1':
            logger().info("login success")
            text = Index_Page(self.driver).login_success()
 
            self.assertIn("", text, 'assertion success')
 
        elif assert_type == "2":
            text = self.driver.find_element_by_id("submit").text
            self.assertIn("login", text, 'assertion fail')
 
        elif assert_type == "3":
            text = self.driver.find_element_by_id("submit").text
            self.assertIn("", text, 'assertion fail')
 
        elif assert_type == "4":
            text = self.driver.find_element_by_id("submit").text
            self.assertIn("login", text, 'assertion fail')
 
        else:
            logger().info(f"unknown assertion type {assert_type}")
            self.assertTrue(False, "unknown assertion type")
 

Login Suit 模块

import unittest
 
from TestCase.LoginCase import login_case
 
 
def return_suite():
    suite=unittest.TestSuite()
 
    loader=unittest.TestLoader()
 
    suite.addTests(loader.loadTestsFromTestCase(login_case.Test_login))
 
    return suite

浏览器配置

[local]
local_browser = False
wait_time = 10
 
[browser]
name = chrome
;name = firefox
;name = ie
window_width =
window_height =
 
[grid]
command_executor = http://127.0.0.1:4444/wd/hub
headless = False
proxy =

Run 模块

运行整体的文件

import unittest
from TestSuite.LinesSuite import lines_suite
from TestSuite.LinesSuite import itinerary_suite
 
import HTMLReport
 
suite = unittest.TestSuite()
 
# suite.addTests(login_suite.return_suite())
suite.addTests(lines_suite.return_suite())
suite.addTests(itinerary_suite.return_suite())
 
HTMLReport.TestRunner(
    report_file_name="test",
    title='WEB UI auto',
    description='logon',
    thread_count=3
).run(suite)

UI 测试完衔接 API 测试

UI 测试完,需要顺便测试 API ,这样才算是整个前端的测试完成,今天推荐 Apifox 来进行 API 的测试。

使用 Apifox 进行 API 自动化测试

今天就拿 Apifox 来举例子,Apifox 是一个非常好用的 API 工具,他集测试、文档、Mock、协同于一身,且支持中文、使用免费,功能非常强大!

创建接口

首先我们需要创建一个接口。

Apifox 进行 API 自动化测试
创建接口

设置断言

Apifox 支持可视化断言,非常方便,你甚至不需要写脚本代码~

Apifox 进行 API 自动化测试
可视化断言

直接在 Apifox 提供的表单里填写对应的信息即可,不需要写脚本代码。

Apifox 进行 API 自动化测试
填写信息

点击 保存 按钮。

新建测试用例

然后我们到 自动化测试 的界面,创建一个新的 测试用例。

Apifox 新建测试用例
创建新的 测试用例

填入用例的基本信息,包括 名称、目录。

Apifox 新建测试用例
填入信息

为用例新增接口

进入到创建好的 测试用例 中,选择导入接口。

apifox 为用例新增接口
选择导入接口

导入我们的目标接口。

apifox 为用例新增接口
目标接口导入

设置参数 运行

我们可以设置一些 运行参数,比如这里,我想运行这个接口 50 次。

apifox 设置参数 运行
设置 运行参数

最后点击 运行 就可以查看运行结果了,Apifox 的自动化测试就是这么快速,简单,方便!!

apifox 设置参数 运行
测试报告

关于 Apifox

Apifox 是一体化 API 协作平台,可以实现 API 文档、API 调试、API Mock、 API 自动化测试,是更先进的 API 设计/开发/测试工具。

Apifox 提供了一种全面的 API 管理解决方案。使用 Apifox ,你可以在统一的平台上设计、调试、测试以及协作你的 API,消除了在不同工具之间切换和数据不一致的问题。

个人使用体验还是不错的,点击免费使用

知识扩展: