• 0
  • 0
分享
  • 你不知道的接口测试之业务功能测试
  • 大椿 2020-10-21 16:45:52 字数 1393 阅读 1850 收藏 0

在上一小节,我们简单介绍了接口文档,以及对于接口本身的测试,从本小节开始我们来介绍一下业务功能的测试。

需求分析

我们先给一份产品需求如下:

  1. 点击“我喜欢”按钮,调起一个弹窗,展示我喜欢的明星列表;

  2. 明星排列顺序按照添加时间倒序排列;

  3. 可分页展示,向上划动,可展示下一页内容,每页最多展示2条内容。

我们逐条分析一下,这几条都分别是由哪些开发同学负责:

  1. 肉眼可见的按钮一定是由前端或者客户端来完成,不是我们测试重点;

  2. 倒序排列,前后端均可完成,但一般是由后端处理完成后,交给前端客户端展示,这是接口测试的重点;

  3. 前后端均可完成。但如果是由前端完成,那么后端需要把所有数据一次性给到前端,我们想一下如果数据量巨大,那么对于后端来说是个灾难,所以最经济的做法是,由后端查出指定页面内容返回,这也是测试重点。

分析过后,我们有了一个基本想法如下:

  • 我需要一个接口来提供数据;

  • 该接口有2个参数,一个是指定的页码,一个是每页展示的数据条数;

  • 每个页面上,信息是按照添加时间倒序排列,最新的在最上面。

接口测试

给定接口文档如下:

  • url: http://127.0.0.1/about_test/getList.php

  • method: GET

  • params:

    • page 整数类型

    • size 整数类型

  • 返回结果模版

{
    "code": 200,   // 200成功,400,错误
    "msg": "请求成功", 
    "result": [
        {
            "id": 3, 
            "name": "周星驰",
            "create_time":1587783346000,   //创建记录的时间
        },
        {
            "id": 4,
            "name": "李连杰",
            "create_time":1587783345000   //创建记录的时间
        }
    ]
}

设计用例(功能):

  • 是否按照创建时间倒序排列

  • 是否返回指定的条数

执行测试用例:

GET 请求:http://127.0.0.1/about_test/getList.php?page=2&size=2

返回结果:

{
    "code": 200,
    "msg": "请求成功",
    "result": [
        {
            "id": 3,
            "name": "周星驰"
        },
        {
            "id": 4,
            "name": "李连杰"
        }
    ]
}

从返回结果,我们可以看到,缺少创建时间字段;没有按照时间排序,需要协调后端开发进行修改。

大家可能发现,这和我们进行简单的“点点点”测试,没有什么区别,因为如果接口缺少字段,或者没有排序,我们一样可以通过UI一眼就看出来,那么接口测试还有什么意义呢?

我们需要一个更好的工具进行测试,我们需要一个更早的时间点开始发现问题!这个时候我们的postman就派上了用场。

总结

分析产品需求,提炼出需要进行接口测试的点;

设计测试用例,执行用例协调开发修改。


作者:茧城寒舍

链接:https://www.jianshu.com/p/df3d1f4a84b2

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   社交媒体 X 周二晚些时候表示,它已经完成了对美国证券交易委员会(U.S. Securities and Exchange Commission)账户被入侵的初步调查,该账户被黑后展示了一个精心设计的虚假帖文,声称美国证券交易委员会已经批准比特币 ETF 进行交易。  "根据我们的调查,此次泄露并非由于X的系统遭到任何破坏,而是由于一个身份不明的人通过第三方获得了与@SECGov账户相关的电话号码的控制权,"X在帖子中确认美国证券交易委员会的账户遭到了泄露。  X 在帖子中说:"我们还可以确认,在账户被泄露时,该账户并未启用双因素身份验证。"  未经...
            0 0 266
            分享
          • 沐沐一直在思考UI自动化有用吗?毕竟UI自动化的投入产出比(ROI)实在太低。对于测试人员而言,UI自动化就像是一个装备,升级打怪不一定用的到这个小装备,但是没有这个装备就会被鄙视。因此从投入的角度分析,选择UI自动化框架时,尽量选择学习成本和维护成本的较低的框架;从产出的角度而言,脚本需要产生效益,就需要更多的受众去使用;如果一定要选择一种UI自动化框架,沐沐一定会选择Cypress。Cypress是基于node.js环境的,安装则极为便利,如果我们测试人员维护好了自动化脚本,就可以直接将js脚本分享给研发人员,辅助研发人员进行自测。如果能将UI自动化普及到整个部门都去使用,辅助提升产品研发...
            1 0 4302
            分享
          • 据报道,当地时间周四,美国交通部表示,他们正在调查埃隆·马斯克(Elon Musk)的脑机接口公司Neuralink涉嫌非法运输危险病原体一事。  美国交通部发言人称,他们之所以决定启动调查,是因为美国责任医师协会(PCRM)周四早些时候致信交通部长皮特·布蒂吉格(Pete Buttigieg),提醒其注意他们获得的相关记录。  PCRM称,他们获得的邮件和其他文档显示,Neuralink从猴子大脑中取出的植入物存在不安全包装和运输问题。这些植入物可能携带传染病病原体,因而违反美国联邦法律。  美国交通部发言人称,他们“非常重视”PCRM的指控:“我们正在进行调查,确保Neuralink完全遵...
            0 0 673
            分享
          •   最新版本的ModelS和ModelX可以运行数千款Steam游戏。但由于车型限制、游戏体验不佳等原因,特斯拉的这一举动遭到不少用户质疑。  马斯克不遗余力地将Steam搬上车,既是打响第三空间卡位战,探索更多软件付费服务的可能性,也是为了增加用户黏性,从而提振销量。  汽车成为第三空间的前提是实现自动驾驶。在此之前,车企在影音娱乐上的内卷,在用户看来更多属于鸡肋功能。  饱受质疑的游戏梦  拥有一间百万人民币级别的私人移动游戏厅,是一种什么样的体验?  在最近的一次假日更新中,特斯拉利用游戏秀了一把车机技术。《赛博朋克2077》这款在PC上都需要高配置的游戏,已经可以在最近两年的Model...
            0 0 986
            分享
          • 读者提问:一句话需求怎么测 ?阿常回答:帮产品做需求实例化1、什么是需求实例化2、为何做需求实例化3、怎么做需求实例化一、什么是需求实例化需求实例化,即用实例来说明需求。实例化需求的核心概念:1、用例子来分析和澄清需求。2、这些例子随后会转化为测试用例。3、最后再通过测试验证需求。二、为何做需求实例化哎,这还不是被逼的嘛!需求只说一句话,既没有背景也没有上下文,这句话到底想传达什么意思,就不是很明确了。用实例的方式说明需求,使得产研测三方能够进行有效的交流沟通,使得大家对于本条需求要交付哪些东西能够快速达成共识。三、怎么做需求实例化一)澄清价值1、澄清业务背景2、系统的上下文3、澄清...
            0 0 729
            分享
      • 51testing软件测试圈微信