小虾米资讯
AD1android:#Python# Python接口自动化——自动化测试分层(1)
2021-03-15 14:50:44 / 我要吐槽AD2
从本期开始,我们会围绕“Python接口自动化”做专题连载,今天开始做第一讲——自动化测试分层。目录:1. 1.1.1 单元自动化测试2. 1.1.2 接口自动化测试3. 1.1.3 UI自动化测试现在流行的是金字塔状的分层测试,将测试从上到下分为UI测试层、接口测试层、单元测试层三层。在传统的UI自动化的基础之上更多实施基于代码的低级别自动化测试,而不仅仅通过用户界面进行端到端的测试。按照测试方法中黑盒、白盒、灰盒的观点来看:单纯的UI自动化-灰盒测试不能达到很好的需求覆盖,还需要实施接口自动化-灰盒测试,和单元自动化-白盒测试。并且由于需求端的频繁更改,在接口实施自动化的投入相对最少,实施最稳定,具有很高的收益。1.1.1 单元自动化测试单元/模块自动化是直接对代码逻辑进行自动化测试,大多数由开发实施,少部分公司会由白盒测试实施。常用的工具有Java的Junit、testNG,Python的unittest,pytest等。驱动代码,桩代码和Mock代码:●驱动代码是用来调用被测函数的,而桩代码和Mock代码是用来代替被测函数调用的真实代码的驱动代码、桩代码和Mock代码三者的逻辑关系。●驱动代码(Driver)指调用被测函数的代码,在单元测试过程中,驱动模块通常包括调用被测函数线的数据准备、调用被测函数以及验证相关结果三个步骤。●代码桩(Stub)是用来代替真代码的临时代码。比如,某个函数A的内部实现中调用了一个尚未实现的函数B,为了对函数A的逻辑进行测试,那么就需要模拟一个函数B,这个模拟的函数B的实现就是所谓的桩代码。某些情况下当项目结构层次较多时,还可以细分为:1. 单元测试2. 模块测试单元测试:对程序最小单元的测试,一般是对类、对象、方法、函数的测试;模块测试:对具有明显功能特征的代码进行的测试,认为单元测试只涉及这层测试的一部分。1.1.2 接口自动化测试1.1.2.1 接口测试的分类按照系统的调用方式不同,接口可以分为三种:1. 系统和系统之间的接口2. 下层服务对上层服务的接口3. 系统内部,服务和服务之间的接口系统和系统之间的接口可以是公司内部不同系统之间调用的接口,也可以是不同公司不同系统之间的接口。例如:微信、微博提供的第三方登录接口,支付宝提供的第三方支付接口。下层服务对上层服务的接口应用层可以认为是UI层功能,对于web就是登录、注册、查询、删除等。Service层,可以理解为服务器提供数据的处理数据库,主要用来存放数据,例如用户信息、商品信息等。各层之间的交互就是通过接口,应用层和Service主要通过HTTP接口,Service层和数据库层通过DAO(Data Access Object)数据库访问,例如pymysql。系统内部,服务和服务之间的接口:系统内部,服务与服务之间的调用,大多指程序之间的调用。本质是程序开发的函数或方法,提供入参与返回值。1.1.2.2 接口测试的意义●更早的发现问题●缩短产品研发周期●发现更底层的问题接口测试比UI测试更简单全面覆盖底层的代码逻辑,UI层被称为弱验证,容易被绕过,很难发现后端的一些异常情况处理能力,而接口测试很容易验证。1.1.3 UI自动化测试UI自动化是目前做的最多的自动化,是自动化测试中最接近用户侧的测试,尝试将黑盒的功能和UI测试用程序或功能来执行。UI层的自动化工具一般按照平台来分:有windows、Linux、Android、IOS、Web、微信小程序等。目前常用的UI自动化的工具大致可以按照平台的不同分为:1. 桌面自动化工具2. web端自动化工具3. App自动化工具桌面自动化工具桌面自动化目前实施的相对较少,工具很多,但是几乎没有特别主流的工具常用的有:AutoIt3,pywin32 ,Microsoft UI Automation。Web端自动化工具selenium是目前最主流的web自动化工具,几乎完美支持所有主流浏览器和主流编程语言,轻量并开源。App自动化工具目前最主流的是Appium,支持android和ios自动化,开源,支持多种开发语言。OK,本期干货分享就到这里,我是汇智妹,日常分享IT技术文章和IT圈热议的那些事儿;职场技能提升、助你步步高升,有对IT行业感兴趣的小伙伴记得粉一波哦~比心♥
- 上一篇: 82金像奖颁礼中低调现身的Danny
- 下一篇:拍卖无证号拒绝先改手机再付钱有问题吗
Powered By © 小虾米资讯 2015
(本站部分文章来源于网络或网友爆料,不代表本站观点,如有侵权请联系及时删除 )