許穎媚
(廣東省科技基礎條件平臺中心信息系統工程測評實驗室,廣東 廣州 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。