• 12
  • 12
分享
  • 开发平台的接口测试流程及案例演示——软件测试圈
  • 曼倩诙谐 2021-05-08 09:36:45 字数 1563 阅读 2237 收藏 12

  测试人员日常接触的测试多为针对应用系统的测试,如果测试对象是开发平台呢?这里的开发平台指的是开发人员使用的开发框架,与有运行时的应用系统相比,它提供的服务是基础框架和插件,天然的不具有可运行系统的特征。开发平台的测试该怎么测呢?下文从接口测试方面介绍开发平台的测试思路。

  首先来分析一下开发平台的接口测试与应用系统接口测试的区别。

  开发平台与应用系统接口测试的区别

  1.接口及其使用场景的区别

  应用系统的接口包括用户与系统间的接口以及系统与系统间的接口,因有业务规则在内使其使用场景固定,功能明确。

  而开发平台接口的使用场景则复杂的多,开发平台的接口是指其将某类功能封装后的jar包,插件提供给用户的API接口面向开发者的代码编写深度更深,提供的输入输出是一个java对象,或者是一个接口。

  用户(开发者)需要根据自己的应用场景和目的去写代码实现接口里面的内容,并根据自己的目的将插件应用到不同的场景上,对平台提供的接口使用存在各种综合的复杂的情况。

  2.接口测试流程的区别

  应用系统接口测试流程一般是:获取接口文档-根据接口文档设计测试用例-通过接口测试工具进行测试。

  而开发平台无运行时,不能直接发送报文进行测试,需要进行样例交易开发,在样例交易的方法中调用插件提供的接口进行测试,因此开发平台接口测试流程为:通过代码review进行测试设计-开发样例交易-获取样例交易接口文档-设计测试用例-通过接口测试工具进行测试。

  在此有必要补充说明,样例交易的开发依托于插件接口的使用场景,由于插件提供给用户的开放接口数量不等,应用使用时用到的接口数量不等,因此每一个接口的用法和场景是无法穷举的。

  样例交易设计思路以覆盖插件中的一个或多个接口方法为主,设计最基础的功能流程,以验证插件对外提供的接口服务可正常使用。

  下面举例说明针对开发平台接口测试的流程。

  举例说明开发平台的接口测试

  1.测试分析:生成插件API说明

  以线程池插件为例,该插件提供了线程池相关核心功能API,应用可根据需要将线程放入指定线程池中运行。

  在测试分析阶段,通过代码review来对插件提供的功能和内部细节有整体了解,因为该插件在编码过程中是引用开源的线程池框架代码,因此异常场景不仅要考虑本线程池提供的异常,还应将源代码提供的异常处理也纳入进来。

  整理后的插件API说明如图所示。

1-1.png

  2.测试设计:生成测试场景

  下一步是根据插件API清单进行测试设计,该插件的使用场景是用户在开发时调用该方法来添加自定义线程池,测试设计时通过场景法,等价类法,边界值法进行。注重对于方法、参数和异常的覆盖,具体场景分析及设计如下。

1-2.png

  3.测试样例交易开发:生成接口文档

  测试设计完成后,根据具体的使用场景及测试点,由开发人员编写接口方法使用的样例工程并进行部署。样例交易开发完成后,测试人员需要获取针对样例工程的接口文档,还是接上文的线程池插件,举例如下。

1-3.png

  4.设计测试用例

  针对线程池插件API测试交易的接口文档,设计如下测试用例。

1-4.png

  5.通过工具进行接口测试

  根据以上设计,结合接口文档,编写接口测试脚本,通过报文发送工具(JMeter)与样例交易工程进行交互,以验证返回值是否有效。以线程池插件API测试交易-001为例,过程如下:

  step1:打开JMeter,默认创建一个测试计划,在测试计划上右键点击添加,创建一个线程组。

1-5.png

  step2:创建一个Http Request,根据接口文档配置Http请求和报文头信息。

1-6.png

1-7.png

  step3:设置检查点:添加断言。

1-8.png

  step4:配置监听器:添加结果树。

1-9.png

  step5:点击执行,执行完成后通过结果树查看结果。

1-10.png


作者:武博   

来源:51Testing软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   当我入行做测试头两份年,觉的测试工作有时候似乎挺苦逼的,我太难了……  前言  说实话,我真想从上面去掉"似乎"两个字,软件测试人,就是苦逼!有的人曾抱怨过开发很糟糕,但我们没办法要求开发在会写代码的同时还要把代码写好,没有过多的bug,因为这就是我们的工作;有的人曾吐槽过自己的老板很较真,但我们没办法不接受领导们的批评指责,因为批评代表我们还有继续提升的价值……除了批评外,我想每个测试员都怕被无时无刻的刨根究底,无止无休的问长问短。  你测的怎么样了?  现在如果你问我做测试做了这么久最怕被问什么?我想一定是领导那句:测得怎么样了?!  回头想想,以前在公司做测试工作...
            0 0 1665
            分享
          •   随着分布式建设工作的推进,核心系统正在逐步下移,分布式系统不但降低成本,具有比集中式更佳的性能,同时也便于系统扩展、维护。分布式统一入口系统在整个系统中担任类似网关的角色,为不同请求提供统一入口,验证请求合法性、安全性,转换请求报文的格式等功能,将请求按照策略转发到其他分布式系统处理请求。由于分布式系统之间需要相互调用、转发,才能正常完成业务需求,为了避免分布式核心系统之间相互调用造成的连带影响,保护分布式统一入口系统及其他关联分布式核心系统,提供交易级、微服务级、子系统级等5种维度的流量控制方案,主要针对TCP请求进行流量控制,流量控制采用配置中心配置、文件配置两种方式,实现对交易请求的...
            14 15 706
            分享
          •   三星决定比其他公司更早抓住 AGI 半导体部门这座潜在的"金矿"。据报道,公司已在硅谷成立了一个新的半导体开发组织,旨在开发下一代 AGI 芯片。三星电子,尤其是其代工部门在提升半导体能力方面进展迅速,该公司宣布了新的下一代工艺,并最终找到了客户。不过,在人工智能时代,三星与台积电等竞争对手相比并没有取得长足进步。  这是因为该公司在半导体采购方面无法吸引英伟达(NVIDIA)等公司的注意,但随着世界过渡到以 AGI 为主导的技术领域,这家韩国巨头似乎计划领先一步。  人工通用智能(AGI)显然是继 GenAI 之后的下一个大事件,其目的显而易见,因为这项技术有望复制人...
            0 0 1013
            分享
          •   一 JSCover简介  JSCover是测试JavaScript的代码覆盖率工具,它是基于流行的JSCoverage工具开发的,通过在浏览器中执行之前向JavaScript代码中插桩实现的。JSCover提供三种方式来测试代码的覆盖率:服务器模式(web server mode),文件系统模式(file-system mode),代理服务器模式(proxy server mode)。JSCover是一个测试JavaScript代码覆盖率的免费工具,在https://sourceforge.net/projects/jscover/files/网站中下载JSCover工...
            15 15 2770
            分享
          • 在日常的编写SQL中,我们都会遇到一些自以为很简单实际却又不怎么熟练的内置函数,虽然我们不一定都用的上,但是要用上的时候我们得知道。为了记录最近遇到的坑,决定把它以场景模式记录下来,方便日后使用,也是一次记忆的加深场景1:当你sql查询出来的字段没有值,或者为null时,做数据分析时,这些个为null的字段会造成很大的困扰,所以我们需要给可能出现null的字段添加一个默认值,这个时候SQL的内置函数IFNULL()与COALESCE() 就能很好的满足我们的需求 IFNULL() 函数作用: IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返...
            0 3 2685
            分享
      • 51testing软件测试圈微信