服务端测试
首先服务端的测试包含哪些东西呢?.
实际上,服务端的测试简单来说就是除了前端以外的的测试,
总的来说可以分为以下两类:
- WEB或者APP的提供业务逻辑的服务端接口测试
- 数据库、缓存系统、中间件、jar包依赖、输入输出敏感信息等测试.
1.WEB或者APP的提供业务逻辑的服务端接口测试
接口测试占据工作工作中的80%,接口测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。下面粗略的列举出测试的几个点。
- 检查接口请求是否正确,返回数据的正确性与格式
- 检查接口入参的默认值、参数类型、非空校验、以及边界值检查接口的容错性.
- 所有功能都需要考虑兼容老版本,列表页的接口需考虑排序值
- 检查接口的性能以及安全性
- 对于接口内部依赖接口的不可靠性预防(如:依赖的第三方接口超时)
2. 数据库、缓存系统、中间件、jar包依赖、输入输出敏感信息等测试.
- 中间件测试
1 名字服务:测试中间件对透明的名字服务的支持和正确性
2 负载均衡:测试中间件对自动在系统中完成负载平衡的支持和正确性
3 请求优先权:测试中间件对服务请求优先级的支持和正确性
4 可用性支持:测试中间件对进程可用性检查、超时检查等可用性支持和正确性,保证应用运行环境稳定
5 安全性:测试中间件对保证应用服务安全运行和数据传输加密的支持和正确性
6 动态配置:测试中间件对动态重配置节点和参数的支持和正确性
7 分布式事务处理:测试对跨多个数据源、数据源异构异地的事务,中间件提供保证其数据完整性的支持和正确性
8 交易通信机制:测试中间件对同步、异步和会话等交易通讯模式的支持和正确性
9 交易运行模式:测试中间件对一阶段提交、两阶段提交、请求转发和请求嵌套等交易模式的支持和正确性
10 队列服务:测试中间件对应用请求回答队列及其LIFO、FIFO、用户定义的出队和原始的ATMI调用特性队机制的支持和正确性
- 缓存系统
Cookie、Session、Cache等方法
- Cookie
当用户访问一个Web系统后,服务器为了在下一次用户访问时,判断该用户是否为合法用户、是否需要重新登陆,或者希望客户端记录某些数据信息时,可设计Cookie以某种具体的数据格式记录在客户端硬盘中。
通常情况下,Cookie可记录用户的登陆状态,服务器可保留用户信息,在下一次访问时可显示该用户上一次访问时间,对于购物类网站,也可利用Cookie实现购物车功能。
进行Cookie测试时需关注Cookie信息的正确性(服务器给出信息格式),当用户主动删除Cookie信息后,再次访问时,验证能否无须重新登陆。电子商务类网站可添加商品信息后删除Cookie,刷新后查看购物车中的商品能否成功清除。
- Session
Session一般理解为会话,在Web系统中表示一个访问者从发出第一个请求到最后离开服务,这个过程维持的通信对话时间。当然,Session除了表示时间外,还可能根据实际的应用范围包含用户信息和服务器信息。
当某个用户访问Web系统时,服务器将在服务器端为该用户生成一个Session,并将相关数据记录在内存或文件中,某个周期后,如果用户未做任何操作,则服务器将释放该Session。为了识别每个用户会话,服务器生成Sessionid来标识。
从安全性角度考虑,用户使用软件系统进行业务操作时,除了需提供正确的帐号信息外,还可能需要提供正确的Sessionid,服务器将会对帐号及Sessionid进行验证。
例子:
用户登陆成功后,服务器将会产生一个sid来保证该用户的安全性。如果登陆邮箱后,浏览器记录了该链接,关闭浏览器后重新打开该链接时,因为服务器端分配的sid已经变更,服务器将拒绝该访问,需重新登陆,以此来保证安全性。
- Cache
Web系统将用户或系统经常访问或使用的数据信息存放在客户端Cache(缓存)或服务器端Cache中,以此来提高响应速度。与Cookie和Session不同,Cache是服务器提供的响应数据,为了提高响应速度,存放在客户端或服务器端。
用户发出请求后,首先根据请求的内容从本地读取,如果本地存在所需的数据,则直接加载,减轻服务器的压力,若本地不存在相关数据,则从服务器的Cache中查询,若还不存在,则进行进一步的请求响应操作。很多时候,服务器用Cache提高访问速度,优化系统性能。在Web系统前端性能测试时,需关注Cache对测试结果的影响。
当网页访问以后,客户端将保存相关的数据信息,再次访问时,浏览器首先判断本地是否有待请求的数据,如果有,则直接读取,不再从服务器获取