不用写代码,也能做好接口测试

 

本文你将了解到

1、接口测试基本概念,包含什么是接口,什么是接口测试,为什么要做接口测试

2、接口测试用例设计

3、怎样不用写代码,也能快速的根据开发的API文档完成接口自动化测试脚本

 

注:如果你对接口基本概念和接口测试用例已熟悉,可以直接跳过,其实看一遍也无防,就当作 温故知新了。

 

适合本文人群

1、之前学习接口测试从入门到放弃的初级测试工程师

2、想快速完成 接口测试脚本编写的测试工程师(强烈推荐)

3、因某种原因(比如公司没有专职测试人员),需要自己写接口测试脚本的开发人员(强烈推荐)

 

一、接口测试基本概念 

首先了解被 测试对象:接口 

 

接口是指外部系统与系统之间以及内部各子系统之间的交互点。

包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口(比如serivce层调用DAO层接口)、同级接口(比如用户注册,会先调用查询用户信息的接口,查看该用户是否已经注册)。

 

不管是内部接口还是外部接口,一般是以API形式出现,通常在规范的API接口文档中,应该包含:接口描述、接口URL、请求方式、请求参数、参数类型、参数含义说明、取值限制、是否必填、返回参数、成功与失败示例等。

 

然后了解对接口进行的测试活动:接口测试 

 

广义的理解 接口测试就是,对模块或系统间接口进行测试;

狭义的理解接口测试就是,对接口的入参、接口处理逻辑、设计的返回内容进行测试。

接口测试形式:单个接口测试(包含性能测试)和通过接口调用进行场景测试。

 

接口测试原理:通过工具或自己撸代码,模拟客户端(根据测试用例定义请求参数)向服务器端请求访问接口,检查服务器端返回内容是否与预期值一致。

 接口测试流程(仅指迭代中的流程):需求评审  -> 接口定义 -> 用例设计 -> 脚本编写 -> 执行脚本 -> 结果分析

 

最后了解做接口测试的意义,即:为什么要做接口测试 

 

简单来说就是,降低测试成本,提高开发效率。

充分来说就是:

 

1、接口测试相对容易实现自动化持续集成。

2、接口测试能让测试提早介入,发现潜在问题;保证接口质量,提高前后端联调开发效率。

3、接口测试进行安全验证比较容易:前后端是否统一校验和敏感信息打印(接口返回内容中的敏感信息)是否加密过。

 

二、接口测试 用例设计 

这里只说单个接口测试用例设计,场景接口测试用例设计和UI功能的场景测试用例一样,只是通过调用接口来实现而已。

设计接口测试用例,主要从接口入参、接口处理逻辑、接口返回参数等3个方面入手:

 

1、设计接口入参测试用例,常见参数类型有:数值、字符串、数组或链表、结构体 

针对这些类型入参,通常我们通过等价类方法和边界值方法 去设计测试用例

等价类方法:关注取值为范围内、取值为范围外的情况;通常会出现 取值在范围外时,接口没有正确返回错误信息的问题。

边界值方法:关注取值范围的边界值、入参的数据类型边界值;通常会出现数据类型边界值溢出问题,比如int类型数据的最大值和最小值时。

为了补充用例,还要考虑特殊值的情况,比如0、空、null、负数、非特定类型值和重复值等;通常会出现接口没有正确处理逻辑导致异常退出的问题。

 

2、设计接口处理逻辑测试用例,主要是验证前后端是否统一校验 

针对接口处理逻辑,通过从以下角度分析:

约束条件分析,常见的约束条件:数值限制、状态限制(登陆状态)、关系限制(绑定了某种关系)、权限限制(会员、非会员等)。

操作对象分析,比如项目ID为PJ000属于用户A的,访问这个项目的接口,需要传项目ID,用户B传参时,使用PJ000这的ID时,检查是否应该不能访问这个项目。

状态转换分析,比如优惠券已使用,是否通过接口仍能使用等情况。

时序分析,比如不按流程顺序执行,是否出现数据异常情况。

 

3、设计接口返回参数测试用例 

针对接口处理逻辑,通过从以下角度分析:

返回结果分析,覆盖所有返回码。

接口超时分析,接口超时通常会出现,未进行超时处理,导致流程阻塞或超时后,又收到接口返回,导致逻辑出错。

 

三、不用写代码,也能做好接口测试:No Code, Still API Test

 

不用写代码,也能做好接口测试,当然需要借助神器,才能完成这项工作,这个神器叫做:eolinker,官网  https://www.eolinker.com

 在用eolinker之前,我是用jmeter做接口测试的,用jmeter之前是用python requests,觉得jmeter效率更高,效率高体现在:

 

1、测试不需要写代码,大家知道 测试用代码写测试脚本跟开发写产品代码一样,需要编写-调试-测试-维护,对于测试来讲,需要消耗太多时间和精力,除非公司有专人做测试开发。

 2、UI模式,填空就可以,很简单,最多就是用Beanshell写少量的函数调用或断言

 

做接口测试只是用到eolinker的自动化测试功能模块,其他功能去官网注册账号后,自行了解,这里只说下eoLinker 自动化测试功能模块的特点,也是我选用的理由:

 

1、开发的API文档编写和测试的接口测试脚本编写,可以都在eolinker上进行,所以写测试脚本时,可以直接从eolinker的API文档功能模块中,导入API接口,写测试脚本只需添加断言,和要传的参数即可。

2、支持UI和Code两个编写模式,就是说可以通过UI填空方式完成测试脚本设计,也可以通过写JS代码,完成测试脚本设计,官方有教程。

3、调用之前接口的返回参数内容,作当前接口的请求参数,eolinker提供了 关联功能,只要点点点就可以完成,比Jmeter还要便捷。

4、还提供比较高级的代码注入功能,可以在请求接口前,做一些前置处理,比如请求参数值加密等,也可以把返回内容进行后置处理,比如把接口的返回内容中某个字段值,设成全局变量

5、测试结果断言提供4种方式:Json校验、XML校验、完全匹配、正则匹配,用的最多是Json校验,如果想校验某个字段内容,不需写正则,只要直接要校验的字段名就可以了。

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信