服务端用例设计的思(tao)路!
服务端的测试简单来说就是除了前端以外的的测试。
总的来说可以分为以下两类:
1. WEB或者APP的提供业务逻辑的服务端接口测试
2. 数据库、缓存系统、中间件、、jar包依赖、输入输出敏感信息等测试.
其中接口测试占据工作工作中的80%,接口测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。下面粗略的列举出测试的几个点。
1. 检查接口请求是否正确,返回数据的正确性与格式
2. 检查接口入参的默认值、参数类型、非空校验、以及边界值检查接口的容错性.
3. 所有功能都需要考虑兼容老版本,列表页的接口需考虑排序值
4. 检查接口的性能以及安全性
5. 对于接口内部依赖接口的不可靠性预防(如:依赖的第三方接口超时)
那么有人要问了,那么对于接口测试如何才能做到完善完备的测试呢?
下面干货来了,在写测试用例时候可以根据该图的思路分支进行用例设计。
对于第二部分的后端的数据库、缓存系统、中间件、文件系统、jar包依赖、输入输出敏感信息等测试这方面其实是要根据各个公司的流程和实际的开发环境来决定的,以下是小编在实际项目中一些总结,请对号入座各取所需
1.性能
a) 项目涉及老系统的QPS是多少?新系统预估的QPS是多少?如何预估的?
b) 项目对外提供接口或者页面的平均响应时间是多少?
c) 修改对系统的请求量是否会有影响?预估变化是多少?要给出计算和评估方式,不能拍脑袋!
d) 修改对系统的处理能力是否会有影响?对CPU和内存开销影响有多大?响应时间是否会变慢?
e) 修改对公共系统是否有影响,如数据库,消息中间件。
2. 内容
页面
i. 资源
所有页面资源要转到公司统一CDN的下,所有资源要写相对路径
所有的地址在上线前都要检查为外网地址
ii. 文字描述
公司名称等名词正确,语句通顺,无错别字。
3. 数据
对老数据的影响
i.此次上线的接口模块产生的一系列活动和效果对老数据的影响
2.金额计算
i. 验证精度匹配
3.接口参数类型
i. 参数是否都是用到了对应类型如:bigdecimal
4.备份
i.是否涉及数据备份?
5.数据清洗
i. 是否需要对老数据进行清理和处理?
6.初始化脚本
i.核对初始化脚本数据正确、是否齐全
4.安全
敏感信息测试
i.请求方式
请求中包含敏感信息的要使用post请求(使用live http header工具查看)
ii. 多余敏感信息
当接口返回中有当前页面不需要的敏感信息时要对接口拆分
iii. 敏感信息隐藏
页面中有屏蔽敏感信息的要查看其原代码是否会明文显示
生成的订单等打码,手机号前三后四作为显示
越权访问
i. 无权限
无权限访问有权限页面或接口(如:未登录访问已登录页面)
ii. 低权限
低权限访问高权限页面或接口
5. 冲突测试
接口并发测试
i. 多线程
是否涉及数据库操作的多线程并发?
多线程是否需要加锁进行处理?
管理后台
i. 管理后台同时操作测试
6. 第三方依赖测试
如果是java:是否引用了第三方的jar包?本次升级是否依赖第三方jar更改?
7.系统结构
新应用
i. POM文件
新服务器
i.数据库访问权限
要有所使用库的访问权限
ii. 配置文件
配置文件名称规则、配置文件内容
系统结构
i.系统结构
外部系统异常,数据持久层异常(redis,memcache,db异常),是否捕捉,是否影响主流程?
外部系统异常,调用第三方接口返回失败,异常,超时,是否捕捉,是否影响主流程?
对外部系统异常必须try catch
8.对外部系统影响,服务提供者与服务消费者
对上游系统
i.是否修改原有接口的数据结构与返回数据的格式?
ii.都有哪些外部系统(上游系统)调用了被修改的接口?
对下游系统
i. 是否新增调用第三方接口(包含下游系统,数据库,消息中间件)?
ii. 对新增调用第三方接口(包含下游系统,数据库,消息中间件)的压力有多少大,多少QPS?
iii.接口调用方是否有缓存?自己是否需要做缓存?
9. 监控
项目上线后是否响应监控?监控是否加告警?
项目发布后应该查看哪些监控?
10.日志
生产环境配置文件
- 日志级别
应为INFO级别
关键业务流程和异常流程是否有日志记录?
11.发布流程
数据脚本
- 最后一个版本由DBA审核通过(业务不同要求不同)
- 内容正确,特别是涉及到展现给用户的文字(包括业务端用户和运营人员)
业务端确认
- 核查收到需求文档中所列各业务端总监确认邮件。
- 确认内容为知晓此事并做相应改动或无影响。
- 系统的业务峰值时间段是什么?是随时发布,还是业务低谷发布?
周知人员
- 协调PM、开发做好发布前准备
- 工作时间发布管理后台,需要PM提前通知运营人员
发布评审
- 复杂项目必须提前定义发布流程,要求拉着QA leader,开发leader一起确认。
总结以上,可以形成一个进行接口测试的模板
服务端用例设计的思(tao)路!的更多相关文章
- vivo 服务端监控架构设计与实践
一.业务背景 当今时代处在信息大爆发的时代,信息借助互联网的潮流在全球自由的流动,产生了各式各样的平台系统和软件系统,越来越多的业务也会导致系统的复杂性. 当核心业务出现了问题影响用户体验,开发人员没 ...
- 基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现
设计概述 服务端通信组件的设计是一项非常严谨的工作,其中性能.伸缩性和稳定性是必须考虑的硬性质量指标,若要把组件设计为通用组件提供给多种已知或未知的上层应用使用,则设计的难度更会大大增加,通用性.可用 ...
- 服务端高并发分布式架构演进之路 转载,原文地址:https://segmentfault.com/a/1190000018626163
1. 概述 本文以淘宝作为例子,介绍从一百个到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则. 特 ...
- 资深P7架构师详解淘宝服务端高并发分布式架构演进之路
1. 概述 本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则. ...
- 简单服务端缓存API设计
Want 我们希望设计一套缓存API,适应不同的缓存产品,并且基于Spring框架完美集成应用开发. 本文旨在针对缓存产品定义一个轻量级的客户端访问框架,目标支持多种缓存产品,面向接口编程,目前支持简 ...
- TYPESDK手游聚合SDK服务端设计思路与架构之二:服务端设计
在前一篇文中,我们对一个聚合SDK服务端所需要实现的功能作了简单的分析.通过两个主要场景的功能流程图,我们可以看到,作为多款游戏要适配多个渠道的统一请求转发中心,TYPESDK服务端主要需要实现的功能 ...
- 谈一款MOBA游戏《码神联盟》的服务端架构设计与实现
一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是一位英雄.客户端和服务端均使用C#开发,客户端使用Unity3D引擎,数据库使用MySQL.这个MOBA类游戏是笔者 ...
- 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现(更新优化思路)
注:本文仅用于在博客园学习分享,还在随着项目不断更新和完善中,多有不足,暂谢绝各平台或个人的转载和推广,感谢支持. 一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是 ...
- SimpleRpc-客户端与服务端工作模型探讨
前言 本篇文章讲述客户端与服务端的具体设计细节.有细心的小伙伴发现,客户端和服务端的工作方式不一样:服务端是多线程计算模型,利用工作线程完成数据的读取,而客户端是单线程(利用Reactor线程完成数据 ...
随机推荐
- Tomcat的URL中文乱码解决以及传输优化
默认的tomcat容器如果直接使用get方式在url中传中文时,传到后台接收会是乱码. 乱码问题 原因: tomcat默认的在url传输时是用iso8859-1编码. 解决方案一: 在使用get传输参 ...
- JavaScript高级 面向对象(1)--添加一个div标签
说明(2017.3.28): 1. JavaScript是一种基于对象的多范式编程语言,不是面向对象,但离开对象不能活. 范式编程是指编程习惯.方式,分为过程式.对象式和函数式编程. 2. 面向对象是 ...
- 利用struts2<s:token>标签防止用户重复提交
当用户填写完表单后,在提交过一次后,若用户做如下操作比如再次点击提交.刷新页面.提交页面呈现后点击后退按钮,都会导致表单重复提交.如果信息需要存储到后台数据库中,重复提交就会再次向数据库中插入用户信息 ...
- java原生序列化和Kryo序列化性能比较
简介 最近几年,各种新的高效序列化方式层出不穷,不断刷新序列化性能的上限,最典型的包括: 专门针对Java语言的:Kryo,FST等等 跨语言的:Protostuff,ProtoBuf,Thrift, ...
- android开发中用到的px、dp、sp
先介绍一下这几个单位: px : pixels(像素),相应屏幕上的实际像素点. dip :device independent pixels,与密度无关的像素,基于屏幕密度的抽象单位. 在每英寸16 ...
- C语言 · 黑色星期五
算法训练 黑色星期五 时间限制:1.0s 内存限制:512.0MB 问题描述 有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜” ...
- C语言 · 数字三角形
算法训练 数字三角形 时间限制:1.0s 内存限制:256.0MB 问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字 ...
- inux内存映射和共享内存理解和区别
可以看到内存映射中需要的一个参数是int fd(文件的标识符),可见函数是通过fd将文件内容映射到一个内存空间, 我需要创建另一个映射来得到文件内容并统计或修改,这时我创建这另一个映射用的仍是mmap ...
- Oracle主表列表上显示从表字段拼成的字符串
select t.*,t1.person_names from itil_duty_group t ,( select p.duty_group_id, WMSYS.WM_CONCAT(p.perso ...
- javascript商务通
//左侧就医服务新 document.write("<style type='text/css'>"); document.write(".left_swt{ ...