文档章节

接口测试用例设计

AwesomeQA
 AwesomeQA
发布于 2017/08/24 13:50
字数 1558
阅读 37
收藏 1

1、接口测试概念

       接口测试:测试系统间接口的一种测试,测试的对象主要是接口,主要是测试外部系统与所测系统之间以及内部系统之间的交互点。

 

2、接口测试方法

    a、可以通过开发脚本代码进行测试。

    b、可以通过开源免费的接口调用调试工具测试,如:Postman等。

    c、可以通过App手动测试,结合抓包工具分析,如:Fillder/Charles等。

 

3、接口测试范围

      接口范围包括:

       一、被测项目中同层之间的接口(如DAO层、Service层),一个接口调用了其他的接口。

       二、外部系统与系统之间的交互点(如一个App调用了第三方支付宝的API)。

       三、各个子系统之间的交互点(如App客户端调用了服务端的Http接口)。

      被测接口范围:

      通常接口会很多,接口测试范围的筛选,参考测试人力资源、项目特点、接口重要性与优先级来进行。其中第一种属内部接口,构造测试稍复杂需开发配合实施,通常优先覆盖第二、三种接口。

      接口测试的重点测试范围:

      优先测试覆盖核心业务,复杂业务的接口

 

4、如何设计接口测试用例

      接口测试出发点是被测接口逻辑存在错误,参考这个为出发点,更容易发现问题。

      设计接口测试用例,我们可简单的考虑两个基本要素,即:入参、出参,正确/错误的入参,逻辑判断后,接口是否做出正确的处理,返回正确的出参。

      接口测试用例有3类(逻辑测试,异常测试,路径测试):

       1)逻辑测试:主要是根据开发提供的接口文档来设计测试用例,接口文档包含的要素(前提条件,输入参数,参数类型,业务逻辑,返回输出描述等),此类主要测试在正常输入的情况下,是否能得出正确的输出结果。主要使用的用例设计方法是等价类划分,边界值等。

       2)异常测试:接口逻辑的测试中主要测试接口正常逻辑,即对外提供的接口服务是基本可用的,但仅逻辑测试不能保证数据的安全及程序接口在异常情况下的逻辑处理的正确性。

             (a) 空值,null;

             (b) 参数属性(如:未赋值的参数):

             (c) 异常业务参数(如:构造不满足业务异常业务参数):

             (d) 参数个数、参数类型错误(如:接口文档中定义必填参数2个int,输入参数仅1个,类型非int);

       3)路径测试:当被测接口的实现方法中,判断逻辑复杂分支多,且判断中又调用了其他的接口,此时必须要进行路径覆盖测试。

 

5、接口测试关注点

 

6、接口自动化测试工具

       1)Java(HttpClient) + Junit/TestNG;

       2)Jmeter

       3)SoapUI

       4)Python requests/urllib 库;

       ......

 

##### 接口测试用例设计二 #####

1)优先级--针对所有接口

1、暴露在外面的接口,因为通常该接口会给第三方调用;

2、供系统内部调用的核心功能接口;

3、供系统内部调用非核心功能接口;

 

2)优先级--针对单个接口

1、正向用例优先测试,逆向用例次之(通常情况,非绝对);

2、是否满足前提条件 > 是否携带默认参值参数 > 参数是否必填 > 参数之间是否存在关联 > 参数数据类型限制 > 参数数据类型自身的数据范围值限制;

 

3)设计分析

通常,设计接口测试用例需要考虑以下几个方面:

1、是否满足前提条件

有些接口需要满足前置条件,才可成功获取数据。常见的,需要登陆Token;

逆向用例:针对是否满足前置条件(假设为n个条件),设计0~n条用例;

2、是否携带默认值参数

正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其它不填写,设计1条用例;

3、业务规则、功能需求

这里根据实际情况,结合接口参数说明,可能需要设计n条正向用例和逆向用例;

5、参数是否必填

逆向用例:针对每个必填参数,都设计1条参数值为空的逆向用例;

6、参数之间是否存在关联

有些参数彼此之间存在相互制约的关系;

逆向用例:根据实际情况,可能需要设计0~n条用例;

7、参数数据类型限制

逆向用例:针对每个参数都设计1条参数值类型不符的逆向用例;

8、参数数据类型自身的数据范围值限制

正向用例:针对所有参数,设计1条每个参数的参数值在数据范围内为最大值的正向用例;

逆向用例:针对每个参数(假设n个),设计n条每个参数的参数值都超出数据范围最大值的逆向用例;针对每个参数(假设n个),设计n条每个参数的参数值都小于数据范围最小值的逆向用例;

 

以上几个方面考虑全的话,基本可以做到如下几个方面的覆盖:

主流程测试用例:正常的主流程功能校验;

分支流测试用例:正常的分支流功能校验;

异常流测试用例:异常容错校验;

 

如何考虑用例覆盖数量

1、根据接口的使用对象(外部,系统内部),有选择的去、留部分用例;

2、根据接口的是否核心接口,有选择的去、留部分用例;

3、根据参数说明,及实际情况,有选择的去、留部分用例;

© 著作权归作者所有

共有 人打赏支持
AwesomeQA
粉丝 5
博文 70
码字总数 55188
作品 0
海淀
QA/测试工程师
如何做好接口测试?

sgbtmy:基于selenium的自动化框架开发,我主要是想问一下,你的框架除了前台的自动化,后台的数据的测试是否集成在你的测试框架中?   小刀:你好,个人理解的你所说的后台的数据的测试是...

不最醉不龟归
2016/11/13
16
0
优秀测试用例设计的策略

咱们测试同学日常工作中最为基础核心的内容就是设计测试用例,什么样的测试用例是好的测试用例?我们一般会认为数量越少、发现缺陷越多的用例就是好的用例。  那么我们如何才能设计出好的...

静忍168
2017/10/09
0
0
如何做好接口测试?【转载】

sgbtmy:基于selenium的自动化框架开发,我主要是想问一下,你的框架除了前台的自动化,后台的数据的测试是否集成在你的测试框架中?   小刀:你好,个人理解的你所说的后台的数据的测试是...

红焖鲤鱼
2015/09/11
772
0
接口测试总结

1.什么是接口测试 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,...

不最醉不龟归
2016/11/11
29
0
如何设计接口的测试用例

这篇文章简单总结下我是如何设计接口测试用例的。 今天在帮同事review代码的时候,发现他的代码遗漏了一些场景的处理,就顺便跟他多聊了些为对这个话题的看法。 在这里假设一个接口设计如下:...

杜琪
2017/11/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
今天
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
今天
1
0
20180818 上课截图

小丑鱼00
今天
1
0
Springsecurity之SecurityContextHolderStrategy

注:下面分析的版本是spring-security-4.2.x,源码的github地址是: https://github.com/spring-projects/spring-security/tree/4.2.x 先上一张图: 图1 SecurityContextHolderStrategy的三个......

汉斯-冯-拉特
今天
1
0
LNMP架构(Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl)

Nginx负载均衡 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器、分离出图片作为单独服务,这些是简单的数据的负载均衡,将压力分散到不同的机器上。有时...

蛋黄_Yolks
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部