主讲人:五娃----百人计划成员,职场老鸟,自动化测试实战者。
直播概要:
接口是什么
怎么测?
测哪些 ?
接口测试意义 & 价值 ?
如何通过python实现接口自动化
1、接口测试测的什么
一种软件测试,集成测试的一部分,不等于接口自动化测试、不仅仅限制于功能性接口测试,还有接口性能测试,接口安全测试等
系统与系统之间的调用、上层服务对下层服务的调用、服务之间的调用
2、接口测试的意义
- 稳 --相对稳定
当接口自动化创建后,相对稳定的运行
接口相对稳定,不会频繁更换,顶多增加字段或者新增接口(相对于UI测试来说,维护、编写成本很大,实际过程中一点点的放弃了UI自动化测试) - 低 --低成本
因为接口的相对稳定性,不需要大量的重新编写脚本,做好基础的维护,用例的扩充,能满足日常的使用范围 - 快 --执行速度快,反馈速度快
(涉及到持续集成,把接口集成到jenkins上,自动触发或定时任务触发,触发后就反馈结果)
3、接口测试流程
根据概要设计文档(开发输出接口文档)-设计接口测试计划-接口测试方案-接口测试用例(包含评审)-接口测试执行-接口自动化集成到jenkins-结果反馈
4、接口用例设计
困惑点,这个东西如何下手,接口测试用例如何设计
以服务间的接口为例:
设计原则:
1、根据接口文档进行单接口用例设计
2、根据接口文档以及需求文档进行多接口设计
看接口自动化的目的,回归测试:业务流程、单个接口运行起来没问题
目的:
1、主要检查返回的接口是否和接口文档中定义的一样(返回的字段、返回的数据类型)
2、检查返回的结果是否和数据库中的保持一致
做到什么程度,需要根据公司实际情况来衡量的
Note:
1、单一接口功能的测试主要测试返回的数据结构是否和接口文档给出的一致
2、接口的正常功能是否完成
3、接口的参数检查测试,接口的异常测试
1、多接口组合测试,实际上是在测试一个业务流
(理财产品,登录-(选择理财产品输入金额)购买-回到账户内展示,3个接口)
为什么需要结合接口文档、需求文档?
1)按照开发改的接口文档保证每个接口是通的
2)返回的字段和他改的接口的字段是一致的
3)改回的值和数据库值是一致的
跟开发沟通时发现,前端开发反馈问题,需要**字段后端没有提供,属于测试漏测,没考虑全
根据公司和开发的质量做衡量
2、在测试过程中依次调用多个接口
接口样例说明
1)接口文档5要素:接口地址、接口请求的方式、请求参数(名称、类型、是否必填、字段代表意义)、返回参数的说明(返回字段的意义,类型)、返回的结果(样例)
2)公司无文档:抓包,后补接口测试
互联网公司广泛使用Python来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web 等。
python内部执行过程如下:
python解释器在加载 .py 文件中的代码时,会对内容进行编码
Q&A 互动环节
1、完成后怎么应用到jenkins?
在构建处选择Execute shell.然后Command python 路径/文件.py
2、有一次接口返回异常,直接显示0.00元,正好测试环境数据库这个字段是空。
null和为空有时候还是不清楚,数据库存的是null,就要看前端是怎么处理的,正常来说,如果后台存的是null,接口字段返回的是空字符串,如果存的是空,返回的确实是空,还要看前端如何处理,前端对空和空字符串都显示为空,那么按照前后端的约定前端要么显示为空要么空字符串,确定前端对于后端提供的数据是空或者空字符串时,前端是如何展示的
3、接口是否有评审 ?
需要评审的,不评审的话属于测试主观认为测到了,跟开发评审时发现有些内容是漏掉了,测完了反馈给开发看下有无遗漏,根据前后端联调、后端跟客户端联调时他们的沟通记录,查看下是否有漏测行为,并不是所有公司都会按照约定熟成的流程去评审任何东西,测试用例评审属于流程上的指定,开发流程上并没有要求开发文档、接口文档输出后一定要发评审,这种算流程上的漏洞或者缺陷,每个公司视情况而定
4、接口用例的覆盖,是否像功能测试那样各种异常都要覆盖
明确接口测试的目的,系统 or 集成测试---手动的,保证接口通不通,还是说为了真的做接口测试
线上接口回归:目的保证线上接口是通的,增强用例接口
测试接口 or 对接口的自动化全量测试,测接口健壮性,正向与反向,基于不同目的选择不同的测试颗粒度
5、用例设计是否和功能用例设计差不多?
看测试目的,目的不同,用例设计时维度可以不同
6、功能未开发完,接口做好了,应该提前介入测试接口吗? 如果前端并未做接口联调,后台接口已经完成,是否要做接口测试?
已经有的是要测的,测的深度自己把握
保证后端提供的接口是通的,和接口文档上的内容是一样的,这时不需要验证数据的正确性,等前后端连调时
7、我们公司是开发写好了,然后我们安装postman去测试,这个意思就是我们自己写,不需要开发那边去写
开发自测只会测接口是否通,测试--是否通
8、生成报告的方法:unishark
9、怎么把接口测试封装到一起,然后一起生成测试报告
testsheet,每个类组装成,组装完之后通过命令行执行入口文件,作为文件
10、接口断言只判断返回码可以吗
每个字段都要判断,包括字段的值
11、系统和系统之间的调用,上层下层的调用,服务和服务之间接口,能举个例子说说吗?
淘宝的订单和支付系统
业务层的数据调用数据层的
我选择商品,创建订单,商品与订单之间的接口