2023最新全方面了解接口自动化,看完还不会你锤我

一、自动化分类

现在流行的是金字塔状的分层测试,将测试从上到下分为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. 系统内部,服务和服务之间的接口系统和系统之间的接口

可以是公司内部不同系统之间调用的接口,也可以是不同公司不同系统之间的接口。

例如:微信、微博提供的第三方登录接口,支付宝提供的第三方支付接口。

下层服务对上层服务的接口

系统内部,服务于服务之间的调用,大多指程序之间的调用。本质是程序开发的函数或方法,提供入参与返回值。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自动化,开源,支持多种开发语言

二、接口自动化与Web自动化的区别

(1)接口自动化是没有界面的,不需要对界面元素定位操作,不需要考虑界面延迟的问题,执行效率更高

(2)接口自动化用的是requests测试库,Web自动化用的selenium测试库

(3)接口自动化的覆盖率可以达到100%(绝大部分的接口都可以实现自动化) Web自动化的覆盖率能达到80-90%算OK(可能会有某些功能是没办法实现自动化的)

三、怎么做接口自动化

1.1、流程

A. 确定业务范围,哪些业务功能的接口可以做自动化——接口自动化的覆盖率可以达到 100%

B. 时间进度安排,人员分配

C. 确定自动化测试框架

D. 准备数据——准备接口用例数据

E. 编写接口自动化脚本

1.2、搭建接口自动化测试环境

1、安装python3.x——配置python的环境变量

2、安装PyCharm——python开发工具

3、安装测试库:

Requests库—— 提供了丰富的用来发请求,对请求进行处理的API函数

xlrd,xlwt库—— 提供了对Excel文件进行操作的API函数

Pymysql库—— 提供了对Mysql数据库进行操作的API函数

paramsunittest库—— 实现参数化的库

Json库—— 提供了对Json格式的数据进行操作的API函数

(python自带的基础库) Re库—— 可以使用这个库中的API函数对HMTL数据进行操作

1.3、准备数据

准备接口用例数据 我们把接口用例数据放入在Excel表格中,因为每一个接口都包含:请求地址,请求方式,请求参数,以及响应数据;所以在Excel表格中按照以下方式来组织我们的接口用例数据,包含以下几个内容: 用例名称,请求地址,请求方式,请求头,请求参数,预期结果(断言) 然后我们会封装一个函数去读取Excel数据,以参数的形式传递到脚本中,具体操作步骤如下:

3.4、编写自动化测试脚本

3.5、工程管理维护与优化

1、数据驱动——实现接口用例数据与脚本的分离 我们把接口用例数据放入在Excel表格中,因为每一个接口都包含:请求地址,请求方式,请求参数,以及响应数据;所以在Excel表格中按照以下方式来组织我们的接口用例数据,包含以下几个内容: 用例名称,请求地址,请求方式,请求头,请求参数,预期结果(断言) 然后我们会封装一个函数去读取Excel数据,以参数的形式传递到脚本中,具体操作步骤如下:

2、unittest框架

作用:用来管理用例,加载用例,执行用例

原理:有几个核心组件

1、测试固件 setUp() 每条用例执行之前,首先会执行这个setUp()方法,在setUp()方法中完成准备初始化工作 比如:连接数据库,后期在将Web UI功能自动化的时候,可以在这里去打开浏览器,配置 tearDown() 每条用例执行完成之后,回收一些资源,比如:关闭数据库,关闭浏览器

2、测试用例 每一条用例需要实现一个用例方法,每个用例方法都必须要以test开头

3、测试套件 执行用例的时候,需要创建测试套件,把用例加入测试套件。

4、加载器 用来加载用例的,把测试用例加入测试套件中

5、执行器 用来执行测试套件中的用例的 如何使用unittest框架来编写用例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值