• 0
  • 0
分享
  • 阿里资深技术专家带你聊一聊服务端的接口测试——软件测试圈
  • 恬恬圈 2023-12-29 10:48:40 字数 1866 阅读 875 收藏 0

  服务器的接口测试通常从功能开始,如请求参数和响应参数的验证,业务逻辑或业务规则的验证,数据库操作的验证。功能正常后,将根据需要进行安全相关的检查、性能测试和一系列扩展测试,如与版本历史的兼容性测试、接口超时验证和设计合理性验证等。用例设计也是从这些方面进行分析和设计的,下面的思维导图是测试关注的一个大致方向:

1.jpeg

  详情如下:

  用于输入

  输入主要指界面的参数。在我们通常的测试中,我们会首先考虑正常参数和异常参数,包括异常参数和数据。在用例设计中,等价类划分和边界值分析被广泛使用。

  A.正常参与

  正常参数通俗易懂,即根据界面设计文件的参数标准,输入正常参数,响应按照界面设计文件约定的条件正常返回。

  B.异常参数

  参数异常包括:空参数、多参数或少参数、错误参数。

  C.异常数据

  数据异常:数据类型错误、非空参数为空、长度不符合设计、不在字典范围内的数据、非法成员、特殊字符或敏感字符、具有相关性的参数数据异常等。

  对于处理逻辑

  在接口测试之前,通用R&D将提供接口设计文件或与业务相关的设计图纸和流程图。对于业务流程的处理逻辑,我们可以从参数、事件的操作对象、业务的状态进行改变。

  A.限制条件分析

  数值限制:字典、等级、行业相关限制、金额限制、分数限制等。

  状态限制:有效|无效、在线|离线、黑化|洗涤等。

  关系的限制:存在或不存在、绑定或解除绑定等。

  权限限制:管理员、普通用户等。

  B.对象分析

  对象分析主要是操作合法和非法的对象。比如银行卡用户给卡充值,可能有:用户A给非用户A的卡充值;用户用自己的卡充值,卡已经过期;a用户使用自己的卡充值,卡被列入黑名单或挂失。

  C.状态转换分析

  比如支付业务,第一次支付成功,票据取消后会进行退款。如果第二次支付不成功,支付会失败,状态之间的切换是否正常,状态如何显示,是否可控,是否存在异常状态,空白状态业务如何处理。

  D.时间序列分析

  在一些复杂的活动中,一个活动是由一系列动作按照指定的顺序执行的,这就形成了一个动作流。只有按照这个顺序执行动作,我们才能等待预期的结果。其他分支动作程序在执行过程中会发生什么?

  比如斑马停车风险管控业务,如果车辆进站后直接掉头不进入高速业务,该如何处理?

  针对输出

  在考虑异常时,我们通常会想到正常情况和无效情况,但它们可能不会覆盖所有的错误代码。接口定义返回的错误代码可以帮助我们补充这部分用例,比如网络异常、规则无效、参数无效、业务id无效、任务无效、服务器异常等。通过补充errorcode的值,可以设计更多的用例。

  这种基于输出的设计案例可以发现前后端是否正常输出结果,提示是否友好,敏感信息是否出现等等。

  数据库操作

  A、数据库操作是否频繁,在写数据库的过程中是否会占用大量的CPU,写完数据库后是否会释放进程。

  B.业务数据入库是否正常,是否有重复数据入库,是否有乱码;日志数据入库正常吗?

  C、数据更新是否正常,尤其是时间字段,时间是否为24小时格式。

  D.数据删除和备份正常吗?

  安全性

  敏感信息(如银行账号、密码、转账金额)是否加密。

  性能相关

  A、什么情况下接口会并发,什么是并发场景,什么情况下并发会导致问题?

  B.最大并发、响应时间、吞吐量和资源消耗。

  接口超时

  接口正常返回,那么如果接口不返回呢?因此,接口超时后的处理也是测试中需要考虑的一部分。如果超时处理不当,可能导致进程阻塞,或者超时后收到接口返回,导致逻辑混乱。

  与历史版本的兼容性分析

  废弃的协议或接口,代码不做注释,在某些情况下,可能会触发版本历史中废弃的协议或接口,导致用户使用或调用功能后出现意外问题和损失。

  在同一个系统中,不同服务之间的接口相互调用时,新接口是否受到历史接口的影响,尤其是新旧接口是否处理某一功能,是否存在业务不兼容的情况。

  这就需要测试人员对一个系统进行长时间的测试,所以他们可能会想到这个场景,清楚地知道什么时候哪个版本被重构了,放弃了那些接口,增加了那些接口,哪些场景会触发历史接口的某个规则。

  接口设计合理

  接口字段是否冗余,接口是否返回调用者期望的信息,接口定义是否满足所有调用者的需求,接口是否方便调用,接口是否可扩展,接口参数是否方便使用,接口的业务规则是否正确,整个服务的使用会对接口产生什么影响?


作者:软件测试小P    

来源:http://www.51testing.com/html/10/n-7792010.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   作为产品经理,你会接到来自用户、市场、运营、老板等各个方面的需求,虽然产品在不断的更新迭代,但是需求还是会源源不断的增加,你会感觉怎么需求越做越多,好像没有减少。如果你有这种感觉,这时候就需要用需求池这个工具,来管理这些源源不断的需求了。  所以,我们在工作中要建立自己的“需求池”,让需求宽进严出,以保证开发的需求都是有助于产品发展的。而如何有效利用需求池进行需求管理是产品经理需要认真思考的地方。  本文主要讲以下几点:  1、什么是需求池  需求池是产品经理个人或产品团队为确保产品需求被及时/完整/有序地接收/描述/排序/跟进的需求管理机制,需求池的构成,通常包含需求池 和需求模板。  ...
            0 0 1355
            分享
          • 前言HTTP接口测试很简单,不管工具、框架、还是平台,只要很的好的几个点就是好工具。测试数据问题:比如删除接口,重复执行还能保持结果一致,必定要做数据初始化。接口依赖问题:B接口依赖A的返回值,C接口依赖B接口的返回值。加密问题:不同的接口加密规则不一样。有些用到时间戳、md5、base64、AES,如何提供种能力。断言问题:有些接口返回的结构体很复杂,如何灵活的做到断言。对于以上问题,工具和平台要么不支持,要么很麻烦,然而框架是最灵活的。unittest/pytest + requests/https 直接上手写代码就好了,既简单又灵活。那么同样是写代码,A框架...
            9 9 1270
            分享
          • 读者提问:成为软件测试,需要具备一定的逻辑思维能力吗 ?阿常回答:肯定要啊。周二一位读者朋友小明问阿常这个问题:小明测试零基础、想要转行做测试,他认为测试很简单,不需要敲代码,不需要理解业务逻辑。显然,他的理解是有偏差的。小白如何转测试?软件测试可分为两类,业务测试工程师(测试具体的业务需求)和测试开发工程师(研发工具或平台给前者使用)。软件测试工程师的职业规划前者肯定是需要理解业务逻辑的;后者则需要敲代码,并且是基于对业务逻辑的理解上敲代码。所以想要成为一名合格的测试,必须具备一定的逻辑思维能力。测试逻辑思维能力的应用测试人员的逻辑思维能力主要运用在以下三方面:需求分析与评审测试方案设计与评...
            0 0 1047
            分享
          • 读者提问:想问下数据库中主键、外键、索引分别指的是什么?能用通俗一点的话解答下么?阿常回答:我们可以把数据库比做一个小区,我们每个人就是具体的“数据”,我们的每个家就是一张表,每个家都会有一个唯一的门牌号,这就是主键。那什么是外键呢,就是当你想和其它房间的人建立关联关系时,会找一个双方都认可的人,做为联系人,这个人就是外键,他会有一些约束。而索引就是别人为了快速找到你,会先去问下小区的保安,他那边会有一个全小区的住户和房子的联系表,这样你就不用一家家的去敲门了。阿常碎碎念:以上问答首发于知识星球「软件测试圈」,源于@小布丁向阿常的提问。看完今天的分享对你是不是有所启发呢,有任何想法都欢迎大家留...
            0 0 914
            分享
          • 新浪科技讯北京时间12月6日晚间消息,据报道,知情人士今日称,Twitter CEO埃隆·马斯克(Elon Musk)已将Twitter旧金山总部的部分办公室改造成了卧室,以便通宵工作的员工们使用。两位知情人士称,Twitter的员工们周一发现,公司总部的一些办公室和会议室里面变得光秃秃的,只有床垫和窗帘。当然,有的房间布置得比较齐全,有一张大床、一个床头柜、一盏台灯、两把扶手椅,以及明亮的橙色地毯。目前尚不清楚共有多少间办公室被改造成了卧室,但一位知情人士称,每层楼可能有四到八间卧室,这些房间看起来“挺舒服”。另一位知情人士称,其中几间卧室位于一个基本没有使用过的楼层上。其中一间卧室的垃圾桶...
            0 0 1009
            分享
      • 51testing软件测试圈微信