在互联网产品质量保障精细化的大背景下,根据系统架构从底层通过技术手段发起测试,显得尤为重要,测试分层的思想正是基于此产生的,目前也是较为成熟的测试策略。

一般采用自下而上的测试方式,以最简单的单一前后端系统为例,一般我们先保质底层服务接口的质量,再从前端发起全链路的端到端的业务测试。

** 测试环境准备**

进行测试之前首先需要与开发确认好测试环境,通常情况下,一般情况业务涉及3个测试环境:测试环境、准生产环境及生产环境。测试一般在测试环境实施测试。为了方便快捷切换接口测试环境的 host 指向,我们可借助以下工具进行切 换:Eolink、Nohost、postman 等。

01 后端接口逻辑测试

接口后端逻辑测试思路:输入-业务逻辑-输出。测试人员输入测试用例的入参场景数据,调用接口发起后台服务处理,检查输出结果跟预期是否一致。接口测试用例设计严格按照接口文档设计,出了正常的功能测试外,应根据业务诉求考虑幂等、并发、数据一致性等逻辑。

测试用例设计方法

考虑三个方面:输入-业务逻辑-输出

举例:接口A提供了根据门店ID查询门店详情信息,我们需要关注:输入:门店 ID;业务逻辑:查询(从哪查);输出:返回结果。

针对输入验证点:必填项校验(哪些字段是必填的)、参数长度校验(参数有无长度限制)、参数有效值校验(参数< 0 就是无效值)、参数组合校验、参数如果是枚举值,枚举值所有值都要测试、参数值的默认值校验,例如有些参数不传,会默认为0、某些参数特定的规则:例如资质编号为13 15 18位等。

业务逻辑:

设计方法:分支覆盖—>路径覆盖—>场景覆盖

一定要先明白接口对外提供的功能是什么,同时接口处理逻辑图也要清晰,准确的画出数据图,例如查询接口是从哪个表查询的,写入接口具体是写入到哪个表中,写入的哪个字段,字段具体是什么,举例:数据流图。

不同的业务场景需要不同的数据,要明白不同类型的数据如何构造,如何验证到真实的业务逻辑,下游 mock 有无风险等。

输出:分为正常输出和异常输出

针对输入点,我们预期结果是什么,一定要明确,比如参数为空,返回结果期望是参数为空;正确的参数,返回结果期望返回正确的结果,要确认返回值返回哪些信息,正确的结果的应该返回的每一个字段都需要校验。

测试方式

手工测试

手工测试就是借助浏览器或者部分测试工具(postman、Eolinkhttps://www.eolink.com/等)手动执 行测试用例的过程。针对新开发接口建议首先进行全面的手工测试后再将部分可 重复执行用例加入自动化测试。

自动化测试。

接口测试相对容易实现自动化,且相对 UI 自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,是支持后端快速发版需求,达到低成本高收益的根源。收益比较高的自动化主要体现在核心链路的冒烟和回归上。

接口自动化测试同样需要有需求分析、用例设计,依据用例设计编排测试计划功能,编写自动化测试脚本,实现接口自动化测试、自动执行及自动发送测试报告等环节。可考虑通过 Eolink 实施自动化回归计划的用例编排。

一个好的接口自动化测试框架应该涵盖以下几点:

a) 流程方面:在回归阶段加强接口各种场景的覆盖度,并逐步向系统测试, 冒烟测试阶段延伸,最终达到全流程自动化。

b) 结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等。

c) 问题定位:报错信息、日志更精准,方便问题复现与定位。

d) 结果校验:加强自动化校验能力,如数据库信息校验。

02 前端交互测试

前端页面与后端代码之间的交互测试,可以理解为业务功能测试的一部分。

测试用例准备

根据业务要求编写功能测试用例,最好按业务模块拆分,逻辑清晰,此外针对编辑框可以通过等价类等方法丰富测试场景,按钮功能异常测试等,测试用例要严格评审对齐产品、研发、测试的三方认知。

测试数据准备

测试用例执行之前最好对测试场景进行梳理,需要准备什么样的数据,可以提前准备,比如退货退款场景可以提前铺设购买交易的订单,一些常用测试数据的准备也可以通过Eolink工具一键构造,降低场景数据构造成本。

测试方法

可以使用抓包工具来进行交互层面测试,查看每个交互功能,对应的接口是否正确 (包含请求头、请求参数、响应以及其他约束项),确保前端按照后端的要求正确地进行了调用。

在交互过程中,针对一个接口也会有多个场景,前端会根据不同的入参来调 用不同的场景,根据不同响应结果, 进行响应数据的改写,来获得不同响应,验证不同响应下前端的展示效果。在这里我们也可以使用一些 不同场景的交互测试。推荐 Mock 工具:https://www.eolink.com/

其他关注点

除了上述关注点外,业务质量要求较高的应该做到以下几点:

互联网产品前后端分离测试(Eolink 分享)的更多相关文章

  1. 【开源】分享一个前后端分离方案-前端angularjs+requirejs+dhtmlx 后端asp.net webapi

    一.前言 半年前左右折腾了一个前后端分离的架子,这几天才想起来翻出来分享给大家.关于前后端分离这个话题大家也谈了很久了,希望我这个实践能对大家有点点帮助,演示和源码都贴在后面. 二.技术架构 这两年a ...

  2. 【开源.NET】 分享一个前后端分离的轻量级内容管理框架

    开发框架要考虑的面太多了:安全.稳定.性能.效率.扩展.整洁,还要经得起实践的考验,从零开发一个可用的框架,是很耗时费神的工作.网上很多开源的框架,为何还要自己开发?我是基于以下两点: 没找到合适的: ...

  3. 【开源】【前后端分离】【优雅编码】分享我工作中的一款MVC+EF+IoC+Layui前后端分离的框架——【NO.1】框架概述

    写博客之前总想说点什么,但写的时候又忘了想说点什么,算了,不说了,还是来送福利吧. 今天是来分享我在平时工作中搭建的一套前后端分离的框架. 平时工作大多时候都是在做管理类型的软件开发,无非就是增.删. ...

  4. Python Flask高级编程之RESTFul API前后端分离精讲 (网盘免费分享)

    Python Flask高级编程之RESTFul API前后端分离精讲 (免费分享)  点击链接或搜索QQ号直接加群获取其它资料: 链接:https://pan.baidu.com/s/12eKrJK ...

  5. 分享我在前后端分离项目中Gitlab-CI的经验

    长话短说,今天分享我为前后端分离项目搭建Gitlab CI/CD流程的一些额外经验. Before Gitlab-ci是Gitlab提供的CI/CD特性,结合Gitlab简单友好的配置界面,能愉悦的在 ...

  6. 一个Java程序猿眼中的前后端分离以及Vue.js入门

    松哥的书里边,其实有涉及到 Vue,但是并没有详细说过,原因很简单,Vue 的资料都是中文的,把 Vue.js 官网的资料从头到尾浏览一遍该懂的基本就懂了,个人感觉这个是最好的 Vue.js 学习资料 ...

  7. 前后端分离时代,Java 程序员的变与不变!

    事情的起因是这样的,有个星球的小伙伴向邀请松哥在知乎上回答一个问题,原题是: 前后端分离的时代,Java后台程序员的技术建议? 松哥认真看了下这个问题,感觉对于初次接触前后端分离的小伙伴来说,可能都会 ...

  8. [原创]基于VueJs的前后端分离框架搭建之完全攻略

    首先请原谅本文标题取的有点大,但并非为了哗众取宠.本文取这个标题主要有3个原因,这也是写作本文的初衷: (1)目前国内几乎搜索不到全面讲解如何搭建前后端分离框架的文章,讲前后端分离框架思想的就更少了, ...

  9. 某神秘公司 RESTful、共用接口、前后端分离、接口约定的实践

    阅读本文大概需要 4.6 分钟. 本文来自 https://juejin.im/post/59eafab36fb9a045076eccc3 前言 随着互联网高速发展,公司对项目开发周期不断缩短,我们面 ...

随机推荐

  1. Kafka Kerberos 安全认证

    本主要介绍在 Kafka 中如何配置 Kerberos 认证,文中所使用到的软件版本:Java 1.8.0_261.Kafka_2.12-2.6.0.Kerberos 1.15.1. 1. Kerbe ...

  2. 【Python情感分析】用python情感分析李子柒频道视频热门评论

    一.事件背景 今天是2021.12.2日,距离李子柒断更已经4个多月了,这是我在YouTube李子柒油管频道上,观看李子柒2021年7月14日上传的最后一条视频,我录制了视频下方的来自全世界各国网友的 ...

  3. 痞子衡嵌入式:浅谈i.MXRT1xxx系列MCU时钟相关功能引脚的作用

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1xxx系列MCU时钟相关功能引脚作用. 如果我们从一颗 MCU 芯片的引脚分类来看芯片功能,大概可以分为三大类:电源.时钟 ...

  4. layui数据表格导入数据

    作为一个后端程序员,前端做的确实很丑,所以就学习了一下layui框架的使用.数据表格主要的问题就是传输数据的问题,这里我用我的前后端代码来做一个实际的分解. 前端部分 可以到layui官网示例中找到数 ...

  5. 846. Hand of Straights - LeetCode

    Question 846. Hand of Straights Solution 题目大意:打牌,判断牌是否能全部按顺子出 思路:构造一个list,存储1,2,3,4,5,6,7,8并排序,构造一个m ...

  6. 138_Power BI&Power Pivot特殊半累加度量

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 半累加度量(semi-additive measure),在DAX建模分析的时候经常遇见:应用场景诸如银行存款. ...

  7. SQL年龄计算方法

    第一种方法: 用DATEDIFF函数,DATEDIFF(YEAR,beginDate,endDate). 测试语句: 1 DECLARE @birthdayDate DATE 2 DECLARE @e ...

  8. 解决WIN7无法安装高版本Node.js问题

    网上很多文章都让去安装低版本node 由于业务需求,低版本node npm 有一些包支持的不好 npm出cb() never call 本着更新npm 顺带弄个高版本的node 单独更新npm npm ...

  9. Kubernetes Job Controller 原理和源码分析(二)

    概述程序入口Job controller 的创建Controller 对象NewController()podControlEventHandlerJob AddFunc DeleteFuncJob ...

  10. Mac Book安装Windows发烫的问题

    Mac Book安装Windows后,电脑发烫,风扇一直高速旋转.针对此问题百度搜索了一下, 大多数人说更改电源选项,由"平衡"模式改为"节能"模式,亲身体验了 ...