自动化测试到底怎么做(单元测试自动化,接口自动化,UI自动化)

前言

大家好,自动化测试已经是测试领域老生常谈的话题了,今天给大家分享自动化测试到底该怎么做

软件测试三层金字塔

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

单元测试

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

接口测试

接口(API)测试是针对业务接口进行的测试,主要测试内部接口功能实现是否完整。比如内部逻辑是否正常、异常处理是否正确。

接口测试关注的重点更多在于数据层面,如数据处理,数据状态,数据传递

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

UI测试

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

自动化测试三种类型

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

单元自动化测试

因为单元测试关注的重点更多在于代码的实现与内部逻辑,所以要想进行单元自动化测试,对测试开发工程师的代码能力要求比较高。对于不同的开发编程语言,有对应的单元测试框架,比如Java 有​​Junit​​​、​​testNG​​​ 。C#有​​Nunit​​​ 。Python 有​​UnitTest​​​ 、​​Pytest​​​ 。Go 有 ​​testing​​​ 、​​GoConvey​​​ 、​​​GoStub​​​、​​GoMock​​​、​​GoMonkey​​。运用这些测试框架,再结合一些自动化测试(脚本)平台,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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员二黑

V:testerhei

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值