现需要测试公司的一款C/S架构软件

软件功能

软件分为3个端,Web端、Srevice端(客户端)、Server端(服务端)

客户端连接服务端,在web端进行操作

为确保客户端与服务端发送接收命令,现在设计几个测试方案进行选择:

方案一

CS架构测试案例 c/s架构测试_CS架构测试案例

方案说明:

  1. 编写一个客户端,进行与服务端连接和接收发送数据,并与中控进行通信
  2. 在Web端进行操作,Server端就可向编写好的Service端发送命令,Service接收端接收到命令后,将解析的命令发送给中控
  3. 同时Web端发送的命令通过另外一个线程发送给中控
  4. 中控PC进行解析对比,结束后传输指令告诉Web端进行下一个操作

此方案的缺点:

  1. 需要重编写一个Service接收端,成本高
  2. 无法确保软件程序本身的Service的接收发送数据的成功性,只是对Web和服务端进行测试

方案二

CS架构测试案例 c/s架构测试_Server_02

方案说明:

  1. Web端、Service端和Server端都是待测的软件程序
  2. Web端进行操作,Server端向Service时,模拟Service端进行数据接收
  3. 模拟Service端将接收到的数据传给模拟Server端
  4. 模拟Server端将模拟Service端发送过来的数据转发给Service端
  5. Service端将数据逆向发送进行处理

此方案的优点:

  1. 对客户端和服务端的发送接收数据都进行测试
  2. 模拟真实的环境,中间件只是做一个黑盒的数据转收发

此方案的缺点:

  1. 需要重编写一个Service和Server接收发送端,成本高

方案三

CS架构测试案例 c/s架构测试_Web_03

方案说明:

  1. Web端、Service端和Server端都是待测的软件程序
  2. Web端进行操作,在Server端和Sevice端都进行抓取接收和发送的数据包
  3. 对抓取的数据包数据进行解析对比校验

此方案的优点:

  1. 无需编写客户(或者服务)接收/发送端

此方案的缺点:

  1. 目前暂时未能实现对抓取数据的解析校验

方案四

CS架构测试案例 c/s架构测试_测试_04

方案说明:

  1. 在UI自动化端起两个线程,一个做UI操作,另外一个线程做结果收集和检验,并记录
  2. 两个线程用同一份驱动数据,两个线程的业务同步用一个状态去同步
  3. UI操作线程将一个用例从未开始设置为进行中,另外一个线程收到结果后将“进行中”的状态改为“完成”

此方案的缺点:

  1. 无法获取返回的数据和校验

方案五

方案说明:

  1. Web端、Service端和Server端都是待测的软件程序
  2. Web端进行操作,Service端程序对接收到的数据写到特定路径的一个特定文件中
  3. 测试结束后,将数据传到Web端的PC,进行验证解析

此方案的缺点:

  1. 需要开发配合,将所有收到的数据信息写入指定的文件中

方案六

此方案是方案一和方案四的结合

方案说明:

  1. UI自动化程序(里面包含了web自动化操作和一个接受模拟客户端返回结果的线程)
  2. 模拟客户端接收发送数据
  3. 让所有模拟客户端连接到服务端后,运行UI自动化在web上操作,操作后模拟端的客户端接收后指令
  4. 把收到的控制命令通过网络返回给UI自动化的另外一个线程进行校验