拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 【软件测验】自动化测验到底怎么做(单元测验自动化,界面自动化,UI自动化)

【软件测验】自动化测验到底怎么做(单元测验自动化,界面自动化,UI自动化)

白鹭 - 2022-02-24 1970 0 0

文章目录

  • 前言
  • 软件测验三层金字塔
    • 单元测验
    • 界面测验
    • UI测验
  • 自动化测验三种型别
    • 单元自动化测验
    • 界面自动化测验
    • UI自动化测验
  • 结束语


前言

大家好,我是洋子,自动化测验已经是测验领域老生常谈的话题了,今天给大家分享自动化测验到底该怎么做
请添加图片描述

软件测验三层金字塔

在讲自动化测验前,先看下软件测验的分层模型,如下图所示的“三层金字塔”,分为单元、服务和UI三个层级,尽管大家对此的具体描述各不相同(有人将三层分别定义为单元、界面、集成测验;也有人将整个金字塔划分为4-5个层级),但金字塔自底向上的结构是大家公认和遵循的
请添加图片描述

单元测验

单元测验是针对代码单元(通常是类/方法)的测验,单元测验的价值在于能提供最快的反馈,在开发程序中就可以对逻辑单元进行验证,好的单元测验可以帮助改善既有设计,在团队掌握 TDD的前提下,单元测验能辅助重构,帮助提升代码整洁度,

界面测验

界面(API)测验是针对业务界面进行的测验,主要测验内部界面功能实作是否完整,比如内部逻辑是否正常、例外处理是否正确,

界面测验关注的重点更多在于资料层面,如资料处理,资料状态,资料传递

界面测验的主要价值在于界面定义相对稳定,不像界面或底层代码会经常发生变化,所以界面测验比较容易撰写,用例的维护成本也相对较低,在界面层面准备测验的性价比相对较高,手动进行界面测验的常用工具有Postman,浏览器F12除错工具

UI测验

UI测验从用户的角度验证产品功能的正确性,测的是端到端的流程,并且加入用户场景和资料,验证整个程序是否流畅,有时候在UI测验时,还会进行集成测验,集成测验的业务价值最高,它验证的是一个完整的流程,但因为需要验证完整流程,在环境部署、准备用例及实施等方面成本较高,实施起来并不容易,

自动化测验三种型别

前面我们了解到了软件测验的三层模型,所以自动化测验也是基于这三层模型进行展开的,我们可以在单元测验阶段进行单元自动化测验,界面测验阶段进行界面自动化测验,在UI测验阶段进行UI自动化测验,

单元自动化测验

因为单元测验关注的重点更多在于代码的实作与内部逻辑,所以要想进行单元自动化测验,对测验开发工程师的代码能力要求比较高,对于不同的开发编程语言,有对应的单元测验框架,比如Java 有JunittestNG ,C#有Nunit ,Python 有UnitTestPytest ,Go 有 testingGoConvey
GoStubGoMockGoMonkey,运用这些测验框架,再结合一些自动化测验(脚本)平台,CI流水线运行单测插件等我们就可以进行单元自动化测验了,

界面自动化测验

界面自动化当中,可以构造三种界面自动化case,分别是单界面、场景、diff 自动化case

单界面自动化case顾名思义就是对单个界面构造自动化case,包含请求方式,界面名和界面路径,传参,预期回传结果,在校验预期回传结果时通常是会进行断言,常用的断言方式可以选择键值对(键为回传的栏位名,值为回传的资料),JSON Schema和Yaml

场景自动化case则是将多个单界面自动化case根据业务场景集成起来,能够发现业务场景下的界面问题,比如超时,上下游例外等

diff测验简单来说就是比对相同界面在不同版本/不同环境下面的回传内容是否符合预期,diff测验目前很多互联网大厂已经在采用,我们在写自动化case同样要构造diff自动化case,构造的方法和单界面自动化case相同,只是我们需要不同的环境URL地址进行对比

如果使用Java语言,可选择TestNG或者REST Assured 作为测验管理框架,搭配Maven+HttpClient+Jenkins+Allure/ReportNG测验报告+MyBatis+mock+springboot 可以开发一套基于Java的界面自动化测验平台,如果使用Python语言,界面自动化测验管理框架可以是Pytest/Unitest/Airtest/Robot Framework 四选一 ,搭配Requests库+PyMySQL+Allure测验报告+Flask/Django可以开发一套基于Python的界面自动化测验平台

UI自动化测验

无论是Web端还是App端,UI自动化测验都是基于页面元素的识别和定位来模拟用户行为,UI自动化测验工具常见的有Appium,Selenium,搭配Pytest或者Airtest测验管理框架,可以开发出一套UI自动化测验平台,

结束语

自动化测验是一种比手工测验更快发现问题的手段,它能够提高测验效率和质量,近几年来互联网大厂针对人工智能领域,利用机器学习和深度学习算法做了许多探索,如用例自动生成,问题自动分析等等,学会自动化测验还是很有必要性,

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *