许颖媚
(广东省科技基础条件平台中心信息系统工程测评实验室,广东 广州 510033)
基于Sockets的计算机支持协同工作平台测试技术研究
许颖媚
(广东省科技基础条件平台中心信息系统工程测评实验室,广东 广州 510033)
计算机支持协同工作是在计算机支持的环境中,一个群体协同工作完成一项共同的任务。它的基本内涵是计算机支持通信、合作和协调。本文通过对典型的计算机支持协同工作平台系统工作流程的分析,提出录制、分析、增加测试脚本的方法。
计算机支持协同工作;Sockets;测试
随着通信技术、计算机技术以及网络技术的融合,产生了新的研究领域。1984年由美国MIT的Irene Greif和DEC的Paul Cashman提出计算机支持的协同工作(Computer Supported Cooperative Work,CSCW),简称计算机协同工作[1]。CSCW是把地域分散的一个群体,借助计算机及网络技术,共同协调与协作来完成一项任务。它包括群体工作方式研究和支持群体工作的相关技术研究、应用系统的开发等部分。通过建立协同工作的环境,改善人们进行信息交流的方式,消除或减少人们在时间和空间上的相互分隔的障碍,从而节省工作人员的时间和精力,提高群体工作质量和效率。本文通过分析典型计算机支持协同工作平台的工作原理,介绍通过工具测试CSCW平台时录制、分析和增强测试脚本的方法。
指挥平台是典型的计算机支持协同工作系统(简称CSCW系统)。在指挥平台系统建设中,对协同工作的需求是不以人们的意志为转移的,突发公共事件的突发性、复杂性和易放大激化等特点要求处置工作的协同。构建一个协同工作平台,在该平台的支撑下,可以实现对指挥中心、指挥室、视频室席位的可听、可视、可控,处置任务可接管、可交办,各坐席之间实现处置信息通传。
图1 CSCW平台结构图
Client/Serve(rC/S)模式,即“客户端/服务器端”模型开发。客户应用程序向服务器程序请求服务。这种方式隐含了在监理客户机/服务器间通讯时的非对称性[2]。C/S模式能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。但它一般只适用于局域网,并且客户端需要安装专用的客户端软件。
Sockets是建立在传输层(主要是TCP和UDP)上的一种套接字规范。套接字屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了TCP软件和实现了套接字规范的计算机之间的通信成为可能。
指挥平台因其对响应速度要求,是在C/S架构的Windows下,应用在特定局域网环境的应用程序。协作管理模块使用Sockets协议编写的通信模块。通信的内容包括席位协
同状态和事件通传。
席位状态协同:实时显示各工作席工作状态,包括席位登录状态(在线、离席、退出)、事件处理状态(接件、处理、调阅)、电话状态(振铃、通话、空闲)等。
事件通传:将一个事件消息通传到指定一个或多个其他工作台(可以是其他接件台或处件台),请求其他工作席协助处理;其他席位接收后进入协同状态,即“你见即我见”状态。
3.1 录制Windows Sockets协议脚本
对协作管理模块的测试是指挥平台测试的关键点。根据协作管理模块的开发模式,测试时选择LoadRunner Windows Sockets协议。测试时,分别对录制发送消息端程序和接收消息端程序进行测试脚本录制。以消息协同功能程序为例,录制发送消息脚本:
图2 发送消息脚本init()
图3 发送消息脚本Action()
图4 发送消息脚本end()
录制的接收脚本见下图例:
图5 接收消息脚本init()
图6 接收消息脚本Action()
图7 接收消息脚本end()
3.2 测试脚本分析
3.2.1 发送消息脚本分析
通过对发送消息脚本中的data.dw文件的分析,发送消息的流程如下:
(1)执行Sockets命令建立一个新的套接字连接
(2)登录程序
(3)打开事件
(4)接收事件的详情字串
(5)查询事件的协同状态,参与协同
(6)发送协同信息
(7)退出事件
(8)退出程序
(9)关闭Sockets
3.2.2 接收消息脚本分析
图8 收发消息流程
通过对接收消息脚本中的data.dw文件的分析,接收消息的流程如下:
(1)执行Sockets命令建立一个新的套接字连接
(2)登录程序
(3)打开事件
(4)接收事件的详情字串
(5)查询事件的协同状态,参与协同
(6)接收协同信息
(7)退出事件
(8)退出程序
(9)关闭Sockets
3.3 增强Windows Sockets协议脚本
Sockets协议脚本可以通过设置集合点、参数化和设置检查等方式来增强脚本的功能。
3.3.1 集合点
在Loadrunner中,可以通过增加集合点的函数Rendezvous插入到脚本,实现控制各个Vuser在同一时刻执行任务。本论文的CSCW系统在发送客户端发送消息,在服务器端是以排队的方式接收需要通传的信息,然后按照队列顺序把消息发送到接收客户端,并在界面上显示。因此,测试CSCW系统的处理能力,也就是测试服务器端的队列消息处理能力。在测试场景中,只需要让发送消息的脚本不断地迭代执行发送消息部分的脚本代码,即可产生大量的发送消息对服务器的消息处理队列。而消息处理队列会根据消息中的目的接收客户端标识码,发送到相应的接收客户端。因此,CSCW系统的测试,无需使用集合点。
3.3.2 参数化
在CSCW系统中,一个消息会发送到1个以上接收客户端上。并且为了验证接收客户端的是否全部接收到所有消息,即验证是否会出现消息丢失的现象,有必要在测试时,发送不同的消息内容。
在Sockets协议脚本中,直接对data.ws中的数据包内容进行参数化。在发送消息脚本中,通过参数文件Buffer保存每次发送的消息内容。每一次迭代读取一次消息内容,保存在Buffer1字符串。通过lrs_set_send_buffer函数发送指定的消息。
图9 参数化示例
3.3.3 设置检查
由于Loadrunner只提供对接收数据包长度的检查,因此需要手动添加对数据包中一些标志位的检验。在指挥平台
中,消息传送的内容是XML代码,在客户端界面上直接解释展现。而XML代码是以</JXEXML>结尾。因此,在接收消息脚本中为了捕捉完整的XML代码,使用函数lrs_set_receive_option接收</JXEXML>结尾的buffer内容,代码如下:
测试指挥平台,即测试典型的计算机支持协同工作系统,需了解CSCW系统的工作原理,找到关键的协同管理模块,通过录制Windows Sockets协议脚本,并通过设置集合点、参数化和设置检查等方式来增强脚本的功能。
[1]百度百科.CSCW[EB/OL].http://baike.baidu.com/ view/204199.htm
[2]曹向志,于涌高.软件测试项目实践——技术、流程与管理[M].2版.北京:电子工业出版社,2010.
Research on the Testing of Computer Supported Collaborative Work Platform Based on Sockets
Xu Yingmei
(Guangdong Science&Technology Infrastructure Center,Guangzhou 510033,Guangdong)
In computer supported environment,computer supported cooperative work is to complete a common task by a group. Its basic connotations are computer support for communication,cooperation and coordination.This article proposes a method of recording,analyzing and adding the test script,through the analysis of the work process of typical computer supported collaborative work platform.
computer supported cooperative work;Sockets;test
TP311.53
A
1008-6609(2016)08-0020-04
许颖媚,女,广东佛山人,硕士,工程师、信息系统项目管理师、高级程序员,研究方向:信息系统测评,软件测试。
广东省计算中心测评云公共服务平台研发与应用,项目编号:2014B040404051。