代码编织梦想

阿里 qa 导读:久违了,夏去秋至,阿里巴巴技术质量新人手册又开始更新啦~ 上期我们给大家带来的是成为测试多面手中的移动测试篇,今天我们继续和大家讲讲服务端测试。

format,png

服务端测试

服务端测试有两种:一种是直接对 WEB 或者 APP 的 API 接口进行测试;另一种是对更后端的数据库、缓存系统、中间件、文件系统等进行测试,核心就是输入输出是否符合服务设计。必备的测试手段包括:

  1. 接口测试

  2. 性能测试

  3. 稳定性测试

  4. 异常测试

其中稳定性测试中涉及:异常、超时、重试幂等、性能等

基于 API 的服务端测试

这种服务端就是为 WEB/APP 端提供一些后台的接口,一般都是用 HTTP、HSF、MTOP 接口的方式提供。这种后台的测试从流程上来说是跟随着发布节奏来的,根据时间、提测以及持续集成目标,可以采用不同的测试方法:

  • 手工接口测试

根据接口设计,测试人员可以借助中间件平台,自有工程,第三方工具进行接口测试了。接口测试过程中,特别需要关注异常场景测试,单接口异常测试主要包括输入异常、操作异常、依赖服务异常,测试验证时关注「容错逻辑」以及「异常返回码是否符合接口约定」

  1. 输入异常:包括入参为特殊字段类型、非法长度、边界值等

  2. 操作异常:例如操作为特殊业务流程、非法修改数据等非正常业务操作

  3. 依赖服务异常:包括访问超时、服务挂掉、异常返回码等场景

  • 手工集成测试

待需求的前端和上下游都交付之后就可以进入集成测试阶段,在这个环节测试人员除了协调各涉及端的测试进度、测试环境和自己域的业务验证之外,同样需要关注异常测试,集成阶段的异常主要包括输入异常、接口异常、操作异常,测试验证时关注「异常文案交互是否符合业务预期」

  1. 输入异常:包括入参为特殊字段类型、非法长度、边界值等

  2. 接口异常:例如接口超时、非约定返回码等

  3. 操作异常:业务流程中高频导致的并发、乱序等非法操作场景

「异常测试」主要分为功能异常、服务端异常

功能异常主要通过各种入参模拟进行验证,接口测试目前可用自建平台、postman 以及其他任意接口测试平台

测试常用功能介绍:

  1. 保存参数、导入参数:平台支持保存当前参数模板,方便下次导入调用,但需注意仅支持保存一套参数

  2. 自定义 Timeout:可以自定义时间,越过接口原超时限制,mock 超时场景下接口返回

  3. 指定 Provider 调用:指定 IP 进行调用,便于调试和问题定位

  4. 活用执行结果信息:接口执行失败需要上下游配合排查定位时,traceId、Provider 是关键排查参数

注意事项:

  1. 特定角色才能在控制台进行 hsf 接口测试(例如测试负责人)

  2. 入参输入建议切换到 Code 模式下编辑,以免类型转换错误

服务端异常目前主要可通过一些强弱依赖平台进行验证,很多平台支持对线上流量自动进行分析并生成用。

  • 持续集成

借助类似 Jenkins 工具平台完成手工测试的自动化持续集成,实现接口级别的回归和链路级别的回归。

对更后端的数据库、缓存系统、文件系统等中间件进行测试

对于这类后端服务来说,接口只是暴露给外用的部分,内部逻辑通常是非常复杂的,所以,除了针对接口做测试之外,测试人员还需要细致地了解这些服务端产品的技术框架及技术实现,需要了解到模块的级别,对于系统框架图、时序图等都有很好的理解,针对这些理解去设计用例和执行。下面介绍几种常见中间件的测试思路和方法:

  • 模拟消息发送,验证消费消息后的代码逻辑

打开消息控制台,找到对应的 topic 点击发送,输入 body 消息后确定发送

format,png 消息控制台
  • 验证 metaq 消息是否按照约定发送

打开 metaq 控制台,点击进入“消息查询”,查看消息体和轨迹,验证是否符合期望

  • DTS 任务的调试

schedulerx 分布式系统调度任务的调试和排查可以使用控制台

  1. 编辑:输入 job 运行参数

  2. 触发一次:手动触发

  3. 指定机器:可以勾选指定 job 运行的服务器

往期推荐

超实用的 Python 库推荐!

Nose | 超轻的单元测试框架-入门

超实用的18个 Python 高效编程技巧

点亮在看!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_40442753/article/details/111087807

过于逼真!差点以为这是微信的源码...-爱代码爱编程

公众号关注 “程序IT圈” 设为 “星标”,和13万程序员一起成长!本文整理于网络文末留言赠书,不要错过 开篇 电商平台最不能缺的就是即时通讯,例如通知类下发,客服聊天等。今天,就来给大家分享一个开源的即时通讯系统。如对文章不感兴趣可直接跳至文章末尾,有获取源码链接的方法。 但文章内容是需要你简单的过一遍的,相信你能get到不少

简单易懂的多线程(通过实现Runnable接口实现多线程)-爱代码爱编程

通过实现Runnable接口实现多线程 在开发中,我们应用更多的是通过 Runnable 接口实现多线程。在实现 Runnable 接口的同时还可以继承某个类。所以实现Runnable 接口的方式要通用一些。 1.编写实现类,实现Runnable接口并实现所有方法(run方法); package com.bjsxt.thread; public cl

基于Vue的前端架构,我做了这15点-爱代码爱编程

关注公众号 前端开发博客,回复“加群” 加入我们一起学习,天天进步 作者:codexu 链接:https://juejin.cn/post/6901466994478940168 1.分解需求 技术栈 考虑到后续招人和现有人员的技术栈,选择 Vue 作为框架。公司主要业务是 GIS 和 BIM,通常开发一些中大型的系统,所以 v

测开入门篇《环境管理、编码规范、项目结构》-爱代码爱编程

坚持原创输出,点击蓝字关注我吧 作者:清菡博客:oschina、云+社区、知乎等各大平台都有。 目录 一、前提准备二、虚拟环境1.virtualenv的安装和应用2.pipenv的安装和使用3.导出虚拟环境为requirements.txt文件4.pipenv的相关使用命令5.需要在虚拟环境中起项目三、Python代码规范四、工程结构化测试平台

北漂的这两年-爱代码爱编程

     18年毕业来到北京,换了一份工作。到现在已经度过了两年零六个月,加上之前的实习,现在也算是上了三年的班,就像似上了三年学。好在第二家公司给我提供了免费公寓,非常感激。我也特别怀念第一家公司的经历,如果说第二家公司给了我很多发挥的空间,那么第一家公司给予我的是宽阔的眼界,让我看到了行业最厉害的人是怎么样的。但工作一年之后我还是离职了,主要的原

JAVA中的跳转语句—break、continue-爱代码爱编程

一、break语句     在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。 例子1演示: public class chaptertwo{ public static void main(Str

心法利器[12] | 任务方案思考:序列标注(NER)篇-爱代码爱编程

【前沿重器】 全新栏目,本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。 往期回顾 心法利器[7] | 漫谈语义相似度与语义向量表征心法利器[8] | 模型热更新小记心法利器[9] | 算法项目从0到1孵化过程心法利器[10] | 算法项目从1到N的进化心法利器[11] |

【机器学习基础】逻辑回归 + GBDT模型融合实战!-爱代码爱编程

作者:吴忠强,东北大学,Datawhale成员 一、GBDT+LR简介 协同过滤和矩阵分解存在的劣势就是仅利用了用户与物品相互行为信息进行推荐, 忽视了用户自身特征, 物品自身特征以及上下文信息等,导致生成的结果往往会比较片面。而这次介绍的这个模型是2014年由Facebook提出的GBDT+LR模型, 该模型利用GBDT自动进行特征筛选和组合,

图像配准的前世今生:从人工设计特征到深度学习-爱代码爱编程

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 机器之心编译 参与:Nurhachu Null,Geek AI 作者:Emma Kamoun 作为计算机视觉的重要研究课题,图像配准经历了从传统方法走向深度学习的重要革命。本文将回顾图像配准技术的前世今生,为读者提供一个该领域的宏观视野。 图像配准是计算机

测开入门篇《环境管理、编码规范、项目结构》-爱代码爱编程

坚持原创输出,点击蓝字关注我吧 作者:清菡博客:oschina、云+社区、知乎等各大平台都有。 目录 一、前提准备二、虚拟环境1.virtualenv的安装和应用2.pipenv的安装和使用3.导出虚拟环境为requirements.txt文件4.pipenv的相关使用命令5.需要在虚拟环境中起项目三、Python代码规范四、工程结构化测试平台

解决Anaconda安装库出现ProxyError错误以及pip安装错误-爱代码爱编程

以上错误背景: 百度关于ProxyError: Conda cannot proceed due to an error in your proxy configuration.Check for typos and other configuration errors in any '.netrc' file in your home director

关于计算ico文件hash值脚本-爱代码爱编程

如何利用ico文件查找出网站的真实IP地址,分享一个计算网站ico文件hash值的工具(python2和python3双版本代码) python2的工具脚本代码python3的工具脚本代码 python2的工具脚本代码 import mmh3 import requests response = requests.get('https://w