服务端的测试简单来说就是除了前端以外的的测试。

总的来说可以分为以下两类:

1.     WEB或者APP的提供业务逻辑的服务端接口测试

2.     数据库、缓存系统、中间件、、jar包依赖、输入输出敏感信息等测试.

其中接口测试占据工作工作中的80%,接口测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。下面粗略的列举出测试的几个点。

1.    检查接口请求是否正确,返回数据的正确性与格式

2.    检查接口入参的默认值、参数类型、非空校验、以及边界值检查接口的容错性.

3.    所有功能都需要考虑兼容老版本,列表页的接口需考虑排序值

4.    检查接口的性能以及安全性

5.    对于接口内部依赖接口的不可靠性预防(如:依赖的第三方接口超时)

那么有人要问了,那么对于接口测试如何才能做到完善完备的测试呢?

下面干货来了,在写测试用例时候可以根据该图的思路分支进行用例设计。

对于第二部分的后端的数据库、缓存系统、中间件、文件系统、jar包依赖、输入输出敏感信息等测试这方面其实是要根据各个公司的流程和实际的开发环境来决定的,以下是小编在实际项目中一些总结,请对号入座各取所需

1.性能

a)        项目涉及老系统的QPS是多少?新系统预估的QPS是多少?如何预估的?

b)        项目对外提供接口或者页面的平均响应时间是多少?

c)        修改对系统的请求量是否会有影响?预估变化是多少?要给出计算和评估方式,不能拍脑袋!

d)        修改对系统的处理能力是否会有影响?对CPU和内存开销影响有多大?响应时间是否会变慢?

e)        修改对公共系统是否有影响,如数据库,消息中间件。

2. 内容

  1. 页面

    i. 资源

    1. 所有页面资源要转到公司统一CDN的下,所有资源要写相对路径

    2. 所有的地址在上线前都要检查为外网地址

    ii. 文字描述

    1. 公司名称等名词正确,语句通顺,无错别字。

3. 数据

  1. 对老数据的影响

  i.此次上线的接口模块产生的一系列活动和效果对老数据的影响

2.金额计算

i. 验证精度匹配

3.接口参数类型

i. 参数是否都是用到了对应类型如:bigdecimal

  4.备份

i.是否涉及数据备份?

5.数据清洗

i. 是否需要对老数据进行清理和处理?

6.初始化脚本

i.核对初始化脚本数据正确、是否齐全

4.安全

  1. 敏感信息测试

i.请求方式

    1. 请求中包含敏感信息的要使用post请求(使用live http header工具查看)

ii. 多余敏感信息

    1. 当接口返回中有当前页面不需要的敏感信息时要对接口拆分

iii. 敏感信息隐藏

    1. 页面中有屏蔽敏感信息的要查看其原代码是否会明文显示

    2. 生成的订单等打码,手机号前三后四作为显示

  1. 越权访问

i.  无权限

    1. 无权限访问有权限页面或接口(如:未登录访问已登录页面)

ii. 低权限

    1. 低权限访问高权限页面或接口

5. 冲突测试

  1. 接口并发测试

i. 多线程

    1. 是否涉及数据库操作的多线程并发?

    2. 多线程是否需要加锁进行处理?

  1. 管理后台

i. 管理后台同时操作测试

6. 第三方依赖测试

  1. 如果是java:是否引用了第三方的jar包?本次升级是否依赖第三方jar更改?

7.系统结构

  1. 新应用

i. POM文件

  1. 新服务器

i.数据库访问权限

    1. 要有所使用库的访问权限

ii.  配置文件

    1. 配置文件名称规则、配置文件内容

  1. 系统结构

i.系统结构

    1. 外部系统异常,数据持久层异常(redis,memcache,db异常),是否捕捉,是否影响主流程?

    2. 外部系统异常,调用第三方接口返回失败,异常,超时,是否捕捉,是否影响主流程?

    3. 对外部系统异常必须try catch

8.对外部系统影响,服务提供者与服务消费者

  1. 对上游系统

i.是否修改原有接口的数据结构与返回数据的格式?

ii.都有哪些外部系统(上游系统)调用了被修改的接口?

  1. 对下游系统

i.  是否新增调用第三方接口(包含下游系统,数据库,消息中间件)?

ii. 对新增调用第三方接口(包含下游系统,数据库,消息中间件)的压力有多少大,多少QPS?

iii.接口调用方是否有缓存?自己是否需要做缓存?

9. 监控

  1. 项目上线后是否响应监控?监控是否加告警?

  2. 项目发布后应该查看哪些监控?

10.日志

  1. 生产环境配置文件

    • 日志级别
  1. 应为INFO级别

  2. 关键业务流程和异常流程是否有日志记录?

11.发布流程

  1. 数据脚本

    • 最后一个版本由DBA审核通过(业务不同要求不同)
    • 内容正确,特别是涉及到展现给用户的文字(包括业务端用户和运营人员)
  1. 业务端确认

    • 核查收到需求文档中所列各业务端总监确认邮件。
    • 确认内容为知晓此事并做相应改动或无影响。
    • 系统的业务峰值时间段是什么?是随时发布,还是业务低谷发布?
  1. 周知人员

    • 协调PM、开发做好发布前准备
    • 工作时间发布管理后台,需要PM提前通知运营人员
  1. 发布评审

    • 复杂项目必须提前定义发布流程,要求拉着QA leader,开发leader一起确认。

总结以上,可以形成一个进行接口测试的模板

服务端用例设计的思(tao)路!的更多相关文章

  1. vivo 服务端监控架构设计与实践

    一.业务背景 当今时代处在信息大爆发的时代,信息借助互联网的潮流在全球自由的流动,产生了各式各样的平台系统和软件系统,越来越多的业务也会导致系统的复杂性. 当核心业务出现了问题影响用户体验,开发人员没 ...

  2. 基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现

    设计概述 服务端通信组件的设计是一项非常严谨的工作,其中性能.伸缩性和稳定性是必须考虑的硬性质量指标,若要把组件设计为通用组件提供给多种已知或未知的上层应用使用,则设计的难度更会大大增加,通用性.可用 ...

  3. 服务端高并发分布式架构演进之路 转载,原文地址:https://segmentfault.com/a/1190000018626163

    1. 概述 本文以淘宝作为例子,介绍从一百个到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则. 特 ...

  4. 资深P7架构师详解淘宝服务端高并发分布式架构演进之路

    1. 概述 本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则. ...

  5. 简单服务端缓存API设计

    Want 我们希望设计一套缓存API,适应不同的缓存产品,并且基于Spring框架完美集成应用开发. 本文旨在针对缓存产品定义一个轻量级的客户端访问框架,目标支持多种缓存产品,面向接口编程,目前支持简 ...

  6. TYPESDK手游聚合SDK服务端设计思路与架构之二:服务端设计

    在前一篇文中,我们对一个聚合SDK服务端所需要实现的功能作了简单的分析.通过两个主要场景的功能流程图,我们可以看到,作为多款游戏要适配多个渠道的统一请求转发中心,TYPESDK服务端主要需要实现的功能 ...

  7. 谈一款MOBA游戏《码神联盟》的服务端架构设计与实现

    一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是一位英雄.客户端和服务端均使用C#开发,客户端使用Unity3D引擎,数据库使用MySQL.这个MOBA类游戏是笔者 ...

  8. 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现(更新优化思路)

    注:本文仅用于在博客园学习分享,还在随着项目不断更新和完善中,多有不足,暂谢绝各平台或个人的转载和推广,感谢支持. 一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是 ...

  9. SimpleRpc-客户端与服务端工作模型探讨

    前言 本篇文章讲述客户端与服务端的具体设计细节.有细心的小伙伴发现,客户端和服务端的工作方式不一样:服务端是多线程计算模型,利用工作线程完成数据的读取,而客户端是单线程(利用Reactor线程完成数据 ...

随机推荐

  1. mysql show variables

    1. back_log 指定MySQL可能的连接数量.当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很短)检查连接并且启动一个新线程. back_log ...

  2. qsort的使用

    转自 http://blog.csdn.net/eroswang/archive/2009/04/15/4075580.aspx 最近用到了qsort,简单整理一下,方便以后的查找 qsort,包含在 ...

  3. 一款效果非常不错的jquery插件 -Lightbox

    今天为大家介绍一款非常不错的jquery图片查看插件-Lightbox.这款图片查看插件体验很好,不仅有左右两个小箭头可以浏览上一张和下一张图片,还支持鼠标的左右键浏览上一张和下一张图片.有点类似go ...

  4. buildroot 搭建ftpd 服务器记录

    vsftpd 搭建失败,应该是buildroot 文件系统还有操作没有理解透,还需要不断的学习. 所以用轻量级的 ftpd 进行替代, 步骤如下: // ---> make busybox-me ...

  5. [log]利用logrotate对Linux log进行管理

    转自:http://feikiss.iteye.com/blog/1402181 https://linux.cn/article-4126-1.html Syslog-ng服务是Linux系统中重要 ...

  6. Jackson2.1.4 序列化对象时对属性的过滤

    //对field(所有字段)进行过滤 //对get方法进行过滤 //对isBoolean这样的方法进行过滤 //里面的具体配置有 ANY,DEFAULT,NON_PRIVATE,NONE,PROTEC ...

  7. eclipse新建python项Project interpreter not specified

    安装好pydev后新建python项目时提示”Project interpreter not specified“的错误,这是因为没有导入python开发环境所致 解决方法如下:1.找到eclipse ...

  8. ubuntu下配置java环境

    配置JDK环境 下载 登录oracle的网站去下载JDK7 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads ...

  9. SEO之基于thinkphp的URL伪静态

    最近基于thinkphp开发了个导购网站,现在有时间,将遇到的伪静态问题整理下,与大家分享.1.设置URL伪静态在config.ini.php中设置,如果只想前台URL伪静态,那么只在前台的confi ...

  10. Hibernate 注解中CascadeType用法汇总

    这两天,参加一个课程设计,同时这个项目又作为一个模块镶嵌到其他项目中,考虑如此,应与原先的架构相同,因牵扯到留言和相互@功能,故数据库之间OneToOne,OneToMany,ManyToMany之风 ...