服务端用例设计的思(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线程完成数据 ...
随机推荐
- git使用教程&&问题列表
git教程[转] http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 git push ...
- dvwa 源码分析(四) --- dvwaPhpIds.inc.php分析
根据文件名就知道是IDS相关的 <?php if( !defined( 'DVWA_WEB_PAGE_TO_ROOT' ) ) { define( 'DVWA System error- WEB ...
- JAVA-JSP动作元素之forward
相关资料:<21天学通Java Web开发> 结果总结:1.用来转移用户的请求,使得用户请求的页面从一个页面跳转到另一个页面.2.跳转为服务器端跳转,所以用户的地址栏不会发生任何变化.3. ...
- 工厂模式——(Head first设计模式4)
所谓工厂,肯定是和生产有关.工厂模式主要包括工厂方法模式和抽象工厂模式,有些人把简单工厂也作为一种模式,在本文我分别讨论简单工厂模式,工厂方法模式,抽象工厂模式.这些模式中同样也和生产有关.接下来,我 ...
- Unity3d中使用摄像机制作实时显示小地图
Unity3d中使用摄像机制作实时显示小地图,以之前的tank为例.开始制作之前场景中物体如图. 开始制作,步骤1:新建一个camera及一个plane.对齐位置,将camera改名为camera_U ...
- java资料——哈希表(散列表)(转)
哈希表 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度. ...
- Java GUI画圆。
package ydj; import java.awt.*; import javax.swing.*; public class huayuan extends JFrame { public h ...
- 记录github 免登陆用户名密码方式
1.https 代码模式切换为ssh模式: (本博客有文章介绍) 2.~/.ssh/github_rsa.pub 内容添加到github “config“ 目录下面 3.配置~/.ssh/config ...
- linux profile\bashrc\bash_profile之间的区别和联系
/etc/profile 每个用户,首次登录时被执行: /etc/bashrc 每个运行bash shell的用户都执行此文件,当bsh被打开时,该文件被读取: ~/.bash_profile 专用于 ...
- 【转】【Java/Android】Intent的简介以及属性的详解
一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述 ...