现需要测试公司的一款C/S架构软件
软件功能
软件分为3个端,Web端、Srevice端(客户端)、Server端(服务端)
客户端连接服务端,在web端进行操作
为确保客户端与服务端发送接收命令,现在设计几个测试方案进行选择:
方案一
方案说明:
- 编写一个客户端,进行与服务端连接和接收发送数据,并与中控进行通信
- 在Web端进行操作,Server端就可向编写好的Service端发送命令,Service接收端接收到命令后,将解析的命令发送给中控
- 同时Web端发送的命令通过另外一个线程发送给中控
- 中控PC进行解析对比,结束后传输指令告诉Web端进行下一个操作
此方案的缺点:
- 需要重编写一个Service接收端,成本高
- 无法确保软件程序本身的Service的接收发送数据的成功性,只是对Web和服务端进行测试
方案二
方案说明:
- Web端、Service端和Server端都是待测的软件程序
- Web端进行操作,Server端向Service时,模拟Service端进行数据接收
- 模拟Service端将接收到的数据传给模拟Server端
- 模拟Server端将模拟Service端发送过来的数据转发给Service端
- Service端将数据逆向发送进行处理
此方案的优点:
- 对客户端和服务端的发送接收数据都进行测试
- 模拟真实的环境,中间件只是做一个黑盒的数据转收发
此方案的缺点:
- 需要重编写一个Service和Server接收发送端,成本高
方案三
方案说明:
- Web端、Service端和Server端都是待测的软件程序
- Web端进行操作,在Server端和Sevice端都进行抓取接收和发送的数据包
- 对抓取的数据包数据进行解析对比校验
此方案的优点:
- 无需编写客户(或者服务)接收/发送端
此方案的缺点:
- 目前暂时未能实现对抓取数据的解析校验
方案四
方案说明:
- 在UI自动化端起两个线程,一个做UI操作,另外一个线程做结果收集和检验,并记录
- 两个线程用同一份驱动数据,两个线程的业务同步用一个状态去同步
- UI操作线程将一个用例从未开始设置为进行中,另外一个线程收到结果后将“进行中”的状态改为“完成”
此方案的缺点:
- 无法获取返回的数据和校验
方案五
方案说明:
- Web端、Service端和Server端都是待测的软件程序
- Web端进行操作,Service端程序对接收到的数据写到特定路径的一个特定文件中
- 测试结束后,将数据传到Web端的PC,进行验证解析
此方案的缺点:
- 需要开发配合,将所有收到的数据信息写入指定的文件中
方案六
此方案是方案一和方案四的结合
方案说明:
- UI自动化程序(里面包含了web自动化操作和一个接受模拟客户端返回结果的线程)
- 模拟客户端接收发送数据
- 让所有模拟客户端连接到服务端后,运行UI自动化在web上操作,操作后模拟端的客户端接收后指令
- 把收到的控制命令通过网络返回给UI自动化的另外一个线程进行校验