zoukankan      html  css  js  c++  java
  • 深入理解B/S与C/S架构

    首先来介绍一下B/S与C/S架构

    C/S架构简要介绍

    在了解什么是B/S架构之前,我们有必要了解一下什么是C/S架构:

    C/S架构是第一种比较早的软件架构,主要用于局域网内。也叫 客户机/服务器模式。

    它可以分为客户机和服务器两层:

    第一层:  在客户机系统上结合了界面显示与业务逻辑;

    第二层:  通过网络结合了数据库服务器。

    简单的说就是第一层是用户表示层,第二层是数据库层。

      这里需要补充的是,客户端不仅仅是一些简单的操作,它也是会处理一些运算,业务逻辑的处理等。也就是说,客户端也做着一些本该由服务器来做的一些事情,如图所示:

    C/S架构软件有一个特点,就是如果用户要使用的话,需要下载一个客户端,安装后就可以使用。比如QQ,OFFICE软件等。

    什么是B/S架构

    B/S架构的全称为Browser/Server,即浏览器/服务器结构。

    Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。

    B/S架构的系统无须特别安装,只有Web浏览器即可。

    其实就是我们前端现在做的一些事情,大部分的逻辑交给后台来实现,我们前端大部分是做一些数据渲染,请求等比较少的逻辑。

    B/S架构的分层:

    与C/S架构只有两层不同的是,B/S架构有三层,分别为:

    第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。

    第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。

    第三层数据层:主要是接受客户端请求后独立进行各种运算。

    如图所示:

    对于功能测试,其实都是一样的,判断功能是否有问题并不取决于系统的架构,而是根据客户的需求,来判断预期结果与实际结果之间的差异。以下罗列出的主要是考虑到这两种架构本身所导致测试的偏重点。

    我们也许都知道B/S架构中客户端向服务端请求是通过http方式的,C/S架构中客户端向服务端请求是通过socket方式的,其实很类似

    1. 建立客户端的socket,确定要连接的服务器的主机名和端口
    2. 发送连接请求到服务器,并等待服务器的回馈信息
    3. 连接成功后,与服务器进行数据的交互
    4. 数据处理完毕后,关闭自身的socket连接

    B/S架构:

    l cookie和session

    由于http协议的无状态性,从而导致了cookie的诞生,对于程序基于cookie与session的编程,通常我们需要测试cookie是否按预定的时间进行保存,刷新对Cookies有什么影响等;例如在浏览器端禁用cookie,那么登录时,通常是登录不进系统的,目前见到的大部分系统都存在这样的问题,实际如果系统做的很完善的情况下,是可以解决此问题的,或者能给用户一个有好的提示等。

    l 前台验证和后台验证

    对于后台验证,作为C/S程序可能并不需要过多考虑,因为它的代码都是在后台编写的;

    关于web程序绕过前台进行后台验证的测试,在这里不再多说,相信网上有很多工具可以实现。

    l 安全性测试

    在因特网上部署的系统尤其重要,测试的过程中我们通常会进行sql注入,cookie欺骗,html标签,特殊字符,字符长度是否与数据库中一致,上传文件时选择一些特殊的文件(如.aspx,jsp,php等)等等

    l 兼容性测试(客户端是浏览器,存在众多不确定性)

    B/S的唯一客户端就是浏览器,而浏览器又有成千上万种,不同的浏览器内核不同,解读页面控件和脚步语言的结果也不一样,可能导致不同的浏览器对系统显示有差别或者部分功能不可用

     C/S程序一般是典型的中央集权的机械式处理,交互性相对低,通常是部署在局域网内的,对网络环境要求低

    l 兼容性

    我们知道B/S的压力在服务端,C/S客户端可以分担一些压力,但是C/S对客户端的环境要求相对较高,包括OS环境(根据目前使用情况来说,主要是在win7系统或同期版本中出现权限问题,或受OS位数的影响),安装过程是否与其他软件冲突,安装顺序,.Net framework版本,客户端升级等均有不同程度要求,同时维护成本较高。

    l 安装/卸载测试

    1. C/S结构通常我们先要安装(其实也可以不用安装,直接运行exe文件,也就是我们所说的绿色版本,具体可以根据实际需要),安装界面,路径,安装后的功能是否可用,重复安装,安装失败后是否回滚等等均在测试范围之类。
    2. 有安装就有卸载,windows自带了一个卸载功能,c:windowssystem32msiexec.exe,我们在生成安装包的同时可以调用此文件。当然也可以使用第三方的卸载工具,如360卸载等。

    l 快捷键的使用

    Windows操作习惯性讲究快捷,所以通常用户会在常用模块要求使用快捷键来操作

    l UI测试

    Web程序同样也会考虑到UI测试,在这里主要是考虑异于web的地方。例如窗口的缩放,拖动,任务栏管理器的启用与禁用,以及多窗口的操作及排列等,通常都是要符合windows的操作习惯。

    l 明显的性能问题

    通常在对程序最小化后系统资源占用多少有一定要求,或者允不允许同时打开多个进程,运行长时间后系统出现卡死等明显的性能问题均在考虑范围之内

  • 相关阅读:
    Linux进程管理工具Supervisor
    RSA加密传输代码示例
    静态网站创建工具Docusaurus
    Proactor和Reactor模型
    机器学习中的七宗罪
    Tokio internals: Understanding Rust's asynchronous I/O framework from the bottom up
    开源软件创建SOC的一份清单
    How to setup SOC using open-source tools
    彼得定律
    深入浅出通信原理连载
  • 原文地址:https://www.cnblogs.com/xuzhaoyang/p/11008012.html
Copyright © 2011-2022 走看看