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

本文你将了解到 python


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

2、接口测试用例设计数据库

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


注:若是你对接口基本概念和接口测试用例已熟悉,能够直接跳过,其实看一遍也无防,就看成 温故知新了。api


适合本文人群  数组


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

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

3、因某种缘由(好比公司没有专职测试人员),须要本身写接口测试脚本的开发人员(强烈推荐)cookie


1、接口测试基本概念  ide


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


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

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

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


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


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

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

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


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


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


最后了解作接口测试的意义,即:为何要作接口测试 


简单来讲就是,下降测试成本,提升开发效率。

充分来讲就是:


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

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

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


2、接口测试 用例设计 


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


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


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


针对这些类型入参,一般咱们经过等价类方法和边界值方法 去设计测试用例

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

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


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


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


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

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

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

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

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


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


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

返回结果分析,覆盖全部返回码。

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


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


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


在用eolinker以前,我是用jmeter作接口测试的,用jmeter以前是用python requests,以为jmeter效率更高,效率高体如今:


1、测试不须要写代码,你们知道 测试用代码写测试脚本跟开发写产品代码同样,须要编写-调试-测试-维护,对于测试来说,须要消耗太多时间和精力,除非公司有专人作测试开发。

2UI模式,填空就能够,很简单,最多就是用Beanshell写少许的函数调用或断言


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


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


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


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


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


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


6、能够定时执行测试用例,执行完后,发送测试报告到指定人员邮箱中。


编写接口测试用例脚本 工做流程:开发编写API接口文档 -> 导入开发的API接口,测试根据编写好的测试用例,编写测试用例


eolinker的一个“添加接口项目接口”测试为例,作如下工做:


1、编写添加名为“添加接口项目”和“查询项目列表”API接口文档

2、导入API接口,编写“添加项目成功”测试用例:

     a. 添加项目,校验返回码。

     b. 调用“查询项目列表接口”,检查项目是否成功添加。(像这种新增接口,我之前校验,用过链接数据库,而后查表内容,发现执行脚本的时候,速度有点慢,后来改用调用查询列表接口的方法校验)

3、执行测试脚本,查看测试报告。


Pre 准备 


接口1:添加接口项目接口


1.png

添加接口项目接口的请求头


2.png

添加接口项目接口的返回内容


接口2:查询项目列表接口


3.png

查询项目列表接口的请求头


4.png

查询项目列表接口的返回内容


从上面获得2个接口API文档信息:


注:实际项目中是有一份开发写好的API文档,多是Word上,多是RAP上,也有多是在eolinker上,我在这里只是为了举例,经过F12取了2个接口的信息(以下面),写了2个不完整的API文档做为本文的操做示例。


接口1:添加接口项目接口


接口URLhttps://www.eolinker.com/apiManagementPro/Project/addProject

请求方法:POST

请求参数:

companyHashKey

projectName

projectVersion:1.0

projectType:0

返回内容:

{"type":"project","statusCode":"000000","projectHashKey":"Nr2PNlf82c6a7995d30286e041944fd40e4c01d58b3edeb"}


接口2:查询项目列表接口


接口URLhttps://www.eolinker.com/apiManagementPro/Project/getProjectList

请求方法:POST

请求参数:companyHashKey

返回内容:

{"type":"project","itemNum":4,"statusCode":"000000","projectList":[{"projectHashKey":"83uUHhud0519435001f268f0871eee88090cc68dc00cac7","projectName":"demo_project","projectType":0,"projectDesc":"","projectUpdateTime":"2018-10-08 18:26:57","projectVersion":"1.0","userType":0,"permission":{"userType":0,"endTime":"2099-01-01","isExpire":0}}]}


Step 1  编写添加名为“添加API接口管理项目”和“查询项目列表”API接口文档


5-.gif

一、  添加API接口管理项目接口 API文档


666.gif

二、  查询项目列表接口  API文档


Step 2  导入API接口,编写“添加项目成功”测试用例 


注:这里访问接口须要登陆,此次就不说接口受权的内容了,后面会作个专题,这里我直接用cookie模拟登陆状态


7-.gif

导入API接口,添加项目,校验返回码


注:这里用到了正则,由于返回的projectList是数组,JSON校验中,目前不支持数组校验


8.gif

将导入的API接口编辑成测试用例脚本


Step 3  执行测试脚本查看测试报告


9.gif

执行测试脚本,查看测试报告


如此,就很快速地完成了一个测试用例脚本的编写啦!(点下 所有测试,去泡杯茶,回来看测试报告的日子,指日可待!!)


补充:


1、关于登陆,获取接口受权的处理,能够写到前置用例中(也有后置用例),如同python unittestsetUptearDown做用。

2、有单独的环境管理模块,包含设置默认的hostname、请求头部信息、全局变量和额外参数等,上个图看下


10.png

环境管理界面


最后总结:                                                                                                                                                                                          


文向接口测试学习者描述了接口、接口测试为什么物,经过对接口测试的基本概念了解,再掌握接口测试用例的设计方法及思路,最后借助优秀的工具,达到简易、快速的工做效果;


我的见解,不喜勿喷:有些测试可能为了表现本身也是个开发人员,会写代码,便使用大量的代码去写自动化测试脚本,文中我也提到测试写代码是有很大成本的,固然不是说不建议测试会开发,


咱们能够去开发一些测试工具来协助本身的测试工做,一来锻炼开发能力,二来了解软件运做原理,方便测试过程当中,更清楚软件内部结构;


项目一般给咱们测试的时间很少,为了保障项目按质按量按时的完成,简易、快速的工做状态是咱们所迫切的,因此咱们能够借助一些优秀的工具去达到咱们的目的。


END...

相关文章
相关标签/搜索