《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > LoadRunner在無線傳感器網(wǎng)絡(luò)開發(fā)中的應(yīng)用
LoadRunner在無線傳感器網(wǎng)絡(luò)開發(fā)中的應(yīng)用
來源:微型機(jī)與應(yīng)用2010年第14期
吉向東
(襄樊學(xué)院 物理與電子工程學(xué)院,湖北 襄樊441053)
摘要: 討論了LoadRunner在無線傳感器網(wǎng)絡(luò)應(yīng)用系統(tǒng)開發(fā)中的應(yīng)用。無線傳感器節(jié)點(diǎn)和簇節(jié)點(diǎn)作為數(shù)據(jù)采集和預(yù)處理節(jié)點(diǎn),需要向后臺系統(tǒng)發(fā)送大量的數(shù)據(jù)。首次將LoadRunner引入無線傳感器網(wǎng)絡(luò)應(yīng)用開發(fā)過程,對傳感器節(jié)點(diǎn)與后臺系統(tǒng)的通信進(jìn)行仿真,并提出了運(yùn)用LoadRunner進(jìn)行測試和仿真的工作流程。有效地對后臺系統(tǒng)的性能進(jìn)行了測試,同時節(jié)約了硬件系統(tǒng)的研發(fā)成本,縮短了項目工期。
Abstract:
Key words :

摘  要: 討論了LoadRunner無線傳感器網(wǎng)絡(luò)應(yīng)用系統(tǒng)開發(fā)中的應(yīng)用。無線傳感器節(jié)點(diǎn)和簇節(jié)點(diǎn)作為數(shù)據(jù)采集和預(yù)處理節(jié)點(diǎn),需要向后臺系統(tǒng)發(fā)送大量的數(shù)據(jù)。首次將LoadRunner引入無線傳感器網(wǎng)絡(luò)應(yīng)用開發(fā)過程,對傳感器節(jié)點(diǎn)與后臺系統(tǒng)的通信進(jìn)行仿真,并提出了運(yùn)用LoadRunner進(jìn)行測試和仿真的工作流程。有效地對后臺系統(tǒng)的性能進(jìn)行了測試,同時節(jié)約了硬件系統(tǒng)的研發(fā)成本,縮短了項目工期。
關(guān)鍵詞: LoadRunner;無線傳感器網(wǎng)絡(luò);性能測試

1 無線傳感器網(wǎng)絡(luò)
    無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks)是由部署在觀測環(huán)境中的大量微型廉價低功耗的傳感器節(jié)點(diǎn)以無線多跳通信方式構(gòu)成的網(wǎng)絡(luò)系統(tǒng)[1]。根據(jù)信息獲取和處理技術(shù),可以將無線傳感器網(wǎng)絡(luò)劃分為傳統(tǒng)無線傳感器網(wǎng)絡(luò)和多媒體無線傳感器網(wǎng)絡(luò)[2]。
    無線傳感器網(wǎng)絡(luò)將邏輯上的信息世界與真實的物理世界融合在一起,深刻地改變了人與自然的交互方式[3]。可廣泛地應(yīng)用于軍事、工農(nóng)業(yè)控制、生物醫(yī)療、環(huán)境監(jiān)測等諸多領(lǐng)域[4-7]。美國《商業(yè)周刊》認(rèn)為,WSN是全球未來四大高技術(shù)產(chǎn)業(yè)之一,是21世紀(jì)世界最具有影響力的21項技術(shù)之一。MIT新技術(shù)評論認(rèn)為,WSN是改變世界的十大新技術(shù)之一[6]。
    目前國內(nèi)外研究人員對傳統(tǒng)WSN的研究主要集中于網(wǎng)絡(luò)通信技術(shù)、基礎(chǔ)設(shè)施、中間件、傳感器節(jié)點(diǎn)、數(shù)據(jù)管理、嵌入式軟件系統(tǒng)等方面[6]。對于多媒體WSN,北京郵電大學(xué)智能通信軟件與多媒體北京市重點(diǎn)實驗室、中國科學(xué)院計算技術(shù)研究所、哈爾濱工業(yè)大學(xué)已開始對該領(lǐng)域的探索。但是這些研究成果尚處于起步階段,距離實際應(yīng)用還相差甚遠(yuǎn)[2]。目前關(guān)于WSN嵌入式軟件系統(tǒng)方面的研究成果主要是嵌入式操作系統(tǒng),加利福尼亞大學(xué)伯克利分校研究開發(fā)了一個傳感器節(jié)點(diǎn)操作系統(tǒng)TinyOS,加利福尼亞大學(xué)洛杉磯分校研究了傳感器節(jié)點(diǎn)嵌入式操作系統(tǒng)SOS。而對WSN應(yīng)用軟件的研究開發(fā)工作則遠(yuǎn)遠(yuǎn)落后于其他方面的研究,還有大量的工作需要完成, 諸多新問題尚待發(fā)現(xiàn),全新的應(yīng)用尚待開發(fā),任重而道遠(yuǎn)[6]。
    LoadRunner目前已廣泛應(yīng)用于傳統(tǒng)軟件項目的性能測試[8-11],也有研究人員將其運(yùn)用于網(wǎng)絡(luò)可信性評測的仿真研究當(dāng)中[12]。本文首次將其引入無線傳感器網(wǎng)絡(luò)應(yīng)用系統(tǒng)的開發(fā),提出了LoadRunner在無線傳感器網(wǎng)絡(luò)開發(fā)中的測試和仿真流程,有效解決了無線傳感器網(wǎng)絡(luò)應(yīng)用開發(fā)中存在的開發(fā)成本高、開發(fā)周期長、沒有性能測試或者性能測試不充分等問題,取得了良好的效果。
2 將LoadRunner引入無線傳感器網(wǎng)絡(luò)應(yīng)用開發(fā)
2.1 LoadRunner

    LoadRunner是一種預(yù)測系統(tǒng)行為和性能的工業(yè)標(biāo)準(zhǔn)級負(fù)載測試工具。通過模擬上千萬用戶實施并發(fā)負(fù)載及實時性能監(jiān)測來確認(rèn)和查找問題,它能夠?qū)φ麄€企業(yè)的系統(tǒng)架構(gòu)進(jìn)行測試,最大限度地縮短測試時間,優(yōu)化性能并加速應(yīng)用系統(tǒng)的發(fā)布周期。
    LoadRunner包含Virtual User Generator、Controller和Analysis[11]三個部件。Virtual User Generator可以在Windows、UNIX或Linux機(jī)器上同時產(chǎn)生成千上萬個用戶訪問,極大地減少負(fù)載測試所需的硬件和人力資源。Controller可以設(shè)定負(fù)載方案、業(yè)務(wù)流程組合和虛擬用戶數(shù)量。通過Controller的Rendezvous功能既能建立起持續(xù)且循環(huán)的負(fù)載,又能管理和驅(qū)動負(fù)載測試方案。同時,還可以利用它的日程計劃服務(wù)來定義用戶在什么時候訪問系統(tǒng)以產(chǎn)生負(fù)載,從而將測試過程自動化。Analysis負(fù)責(zé)收集匯總所有的測試數(shù)據(jù),并提供高級的分析和報告工具,以便迅速查找到性能問題并追溯原由。使用LoadRunner的Web交易細(xì)節(jié)監(jiān)測器,可以查看所有的圖象、框架和文本下載所需的時間。另外,Web交易細(xì)節(jié)監(jiān)測器能夠分解用于客戶端、網(wǎng)絡(luò)和服務(wù)器上端到端的反應(yīng)時間,便于確認(rèn)問題,定位查找真正出錯的組件。例如可以將網(wǎng)絡(luò)延時進(jìn)行分解,以判斷DNS解析時間、連接服務(wù)器或SSL認(rèn)證所花費(fèi)的時間。通過使用LoadRunner的分析工具,可以很快地查找到出錯的位置和原因并作出相應(yīng)的調(diào)整。
    LoadRunner內(nèi)含集成的實時監(jiān)測器,在負(fù)載測試過程中,可以隨時觀察到應(yīng)用系統(tǒng)的運(yùn)行性能。性能監(jiān)測器可以實時顯示交易性能數(shù)據(jù),也可以顯示其他系統(tǒng)組件如application server、web server、網(wǎng)絡(luò)設(shè)備和數(shù)據(jù)庫的實時性能,從而更快地發(fā)現(xiàn)系統(tǒng)瓶頸和其他問題所在。LoadRunner還通過可以無限精確重復(fù)進(jìn)行的回歸測試保證系統(tǒng)發(fā)布的高性能。
2.2 運(yùn)用LoadRunner進(jìn)行測試和仿真的工作流程
    運(yùn)用LoadRunner進(jìn)行測試和仿真的工作流程如圖1所示。

2.2.1 制定負(fù)載測試和仿真計劃
    在任何類型的測試和仿真中,計劃都是必要的步驟。充分而詳盡的計劃是成功測試和仿真的關(guān)鍵。確定系統(tǒng)的組成,畫出系統(tǒng)的組成圖。組成圖主要包括系統(tǒng)中所有的組件(如傳感器節(jié)點(diǎn)和簇節(jié)點(diǎn))的數(shù)目,組件部署的方式以及相互之間的通信方式,傳感器節(jié)點(diǎn)、簇節(jié)點(diǎn)、數(shù)據(jù)庫服務(wù)器、系統(tǒng)服務(wù)器的配置。
2.2.2 開發(fā)測試和仿真腳本
    可以使用LoadRunner中虛擬用戶的活動來模擬傳感器節(jié)點(diǎn)和簇節(jié)點(diǎn)與系統(tǒng)的通信,而虛擬用戶的活動就包含在測試腳本中,因此測試腳本對系統(tǒng)測試和仿真而言非常重要。
    開發(fā)測試腳本要使用Virtual User Generator組件。按照測試和仿真計劃定義每一個虛擬用戶的活動、結(jié)合點(diǎn)和事務(wù)。
    Virtual User Generator中的腳本分為vuser_init、vuser_end和Action三部分。其中vuser_init和vuser_end都只能存在一個,不能再分割,而Action還可以分成無數(shù)多個部分。
    對于傳感器節(jié)點(diǎn)和簇節(jié)點(diǎn)需要登陸的系統(tǒng),可以把登陸部分放到vuser_init中,登陸后的通信過程放到Action中,注銷登陸部分放到vuser_end中。如果登陸操作需要放置集合點(diǎn),那么登陸操作也要放到Action中,因為對于LoadRunner,vuser_init中不能添加集合點(diǎn)。在其他情況下,只要把操作部分放到Action中即可。在重復(fù)回放測試腳本時,vuser_init和vuser_end中的內(nèi)容只會執(zhí)行一次,重復(fù)執(zhí)行的只是Action中的部分。
    如果傳感器節(jié)點(diǎn)和簇節(jié)點(diǎn)在與系統(tǒng)通信過程中,提交了一些數(shù)據(jù)(例如要增加數(shù)據(jù)庫記錄)。這些操作都被記錄到了腳本中。當(dāng)多個虛擬用戶運(yùn)行腳本時,都會提交相同的記錄,這不僅不符合實際運(yùn)行情況,而且有可能引起沖突。為了更加真實地模擬實際環(huán)境,需要各種各樣的輸入。LoadRunner提供了參數(shù)化輸入方式。用參數(shù)表示用戶的腳本可以大大縮短腳本的長度,同時還可以使用不同的數(shù)值對腳本進(jìn)行測試。
    參數(shù)化主要包含兩項任務(wù):(1)在腳本中用參數(shù)取代常量值;(2)設(shè)置參數(shù)的屬性以及數(shù)據(jù)源。LoadRunner中支持的參數(shù)類型有DateTime、Group Name、Load Generator Name、Iteration Number、Random Number、Unique Number、Vuser ID、File、User Defined Function等。
2.2.3 創(chuàng)建運(yùn)行場景
    運(yùn)行場景描述在測試和仿真活動中發(fā)生的各種事件。一個運(yùn)行場景包括一個運(yùn)行虛擬用戶活動的Load Generator機(jī)器列表,一個測試腳本的列表以及大量的虛擬用戶和虛擬用戶組。
2.2.4 運(yùn)行測試
    只需按照預(yù)定的場景,執(zhí)行測試和仿真即可。
2.2.5 監(jiān)視場景
    在運(yùn)行過程中,可以監(jiān)視各個服務(wù)器的運(yùn)行情況(Database Server、Web Server等)。監(jiān)視場景可通過添加性能計數(shù)器來實現(xiàn)。
2.2.6 分析測試和仿真結(jié)果
    在這一步中,需要分析大量的數(shù)據(jù)和圖表,生成各種不同的報告,最后得出結(jié)論。
2.3 運(yùn)用LoadRunner對無線傳感器應(yīng)用系統(tǒng)進(jìn)行測試和仿真
    無線傳感器節(jié)點(diǎn)與系統(tǒng)之間基于GPRS通過TCP協(xié)議進(jìn)行通信,系統(tǒng)開發(fā)過程中,為了縮短項目周期,硬件研發(fā)與軟件研發(fā)同步進(jìn)行。在項目初期即確定了傳感器節(jié)點(diǎn)和后臺系統(tǒng)之間的接口、交換數(shù)據(jù)的格式。硬件研發(fā)中選取了幾種方案,但是沒有定型,計劃在項目進(jìn)行中根據(jù)軟硬件之間的銜接情況做出最后的決定,然而系統(tǒng)對性能的要求比較苛刻,如果根據(jù)項目預(yù)定的規(guī)模分別按照幾種方案制出所有的傳感器節(jié)點(diǎn),其研發(fā)成本會相當(dāng)高,經(jīng)討論決定引入LoadRunner來進(jìn)行傳感器節(jié)點(diǎn)的仿真,以壓縮研發(fā)成本,同時,又可以測試后臺系統(tǒng)的性能是否能夠滿足用戶需求。
    由于篇幅所限,這里僅附上Virtual User Generator的部分用戶腳本:
    (1)在vuser_init中打開相應(yīng)的TCP連接
vuser_init()
{
    int rc;
    lrs_startup(257);        //建立連接
    rc=lrs_create_socket("userid","TCP","RemoteHost=
192.168.1.101:16688",LrsLastArg);
    if(rc==0)
        //連接成功建立
        lr_output_message("Socket  was successfully created ");
    else
        //連接建立失敗,報告錯誤碼
        lr_output_message("An error occurred while creating
the socket, Error Code: %d", rc);
    return 0;
}
    (2)在Action中對傳感器簇節(jié)點(diǎn)與系統(tǒng)的通信進(jìn)行仿真,為了真實模擬簇節(jié)點(diǎn)與系統(tǒng)的通信過程,對發(fā)送的數(shù)據(jù)databuf進(jìn)行了參數(shù)化,部分代碼如下:
    ……    //建立集合點(diǎn)
    lr_rendezvous("send");    //事務(wù)開始
    lr_start_transaction("send");
    //模擬簇節(jié)點(diǎn)向系統(tǒng)發(fā)送數(shù)據(jù)
    lrs_send("userid", "databuf", LrsLastArg);
    ……
    lr_end_transaction("send");
    ……
    vuser_end中關(guān)閉TCP連接,腳本略。
    (3)在確定運(yùn)行場景時,根據(jù)系統(tǒng)需求,對集合點(diǎn)send處的用戶確定為100,可以模擬100個簇節(jié)點(diǎn)同時向系統(tǒng)發(fā)送數(shù)據(jù)。在運(yùn)行場景的過程中,對服務(wù)器CPU、內(nèi)存和硬盤相關(guān)的計數(shù)器進(jìn)行了觀測,分別如圖2、圖3、圖4所示,同時觀測了服務(wù)器的.net、sql server相關(guān)計數(shù)器(均處于正常范圍),網(wǎng)絡(luò)接口的發(fā)包出錯情況和收包出錯情況(檢測過程中均為0),結(jié)果表明,系統(tǒng)能夠很好地滿足設(shè)計要求。

    無線傳感器網(wǎng)絡(luò)作為21世紀(jì)的一項重要高新技術(shù),已經(jīng)得到廣大工程技術(shù)人員和科研人員的廣泛關(guān)注。本文在無線傳感器網(wǎng)絡(luò)應(yīng)用開發(fā)中首次將LoadRunner引入開發(fā)過程,對傳感器節(jié)點(diǎn)和簇節(jié)點(diǎn)與后臺系統(tǒng)的通信進(jìn)行了模擬和仿真,有效地提高了無線傳感器網(wǎng)絡(luò)系統(tǒng)開發(fā)中硬件和軟件研發(fā)的并行度,縮短了開發(fā)周期,大大降低了開發(fā)成本,取得了良好的效果。
參考文獻(xiàn)
[1] AKYILDIZ I F,SU W,SANKARASUBRAMANIAM Y,et al. Wireless sensor networks:a survey[J].Computer Networks,2002,38(4):393-422.
[2] 馬華東,陶丹.多媒體傳感器網(wǎng)絡(luò)及其研究進(jìn)展[J].軟件學(xué)報,2006,17(9):2013-2028.
[3] 孫利民,李建中,陳渝,等.無線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.
[4] 李建中,李金寶,石勝飛.傳感器網(wǎng)絡(luò)及其數(shù)據(jù)管理的概念、問題與進(jìn)展[J].軟件學(xué)報,2003,14(10):1717-1727.
[5] 任豐原,黃海寧,林闖.無線傳感器網(wǎng)絡(luò)[J].軟件學(xué)報,2003,14(7):1282-1291.
[6] 李建中,高宏.無線傳感器網(wǎng)絡(luò)的研究進(jìn)展[J].計算機(jī)研究與發(fā)展,2008,45(1):1-15.
[7] 李志剛,周興社.傳感器網(wǎng)絡(luò)[J].計算機(jī)應(yīng)用研究,2004(12):9-12.
[8] 李怡,周國祥.基于LoadRunner的一種性能測試流程方案研究與設(shè)計[J].計算機(jī)應(yīng)用研究,2009,26(11):4143-4145.
[9] 赫建營,晏海華,劉超,等.一種有效的Web性能測試方法及其應(yīng)用[J].計算機(jī)應(yīng)用研究,2007,24(1):275-277.
[10] 浦云明,范明紅,許明娜.Web應(yīng)用系統(tǒng)負(fù)載測試[J].計算機(jī)應(yīng)用與軟件,2009,26(11):120-123.
[11] 文俊浩,桑春艷,何盼.電子政務(wù)系統(tǒng)性能測試應(yīng)用研究[J].計算機(jī)科學(xué),2009,36(4):179-180.
[12] 龐永剛,王慧強(qiáng),鄭瑞娟.用于網(wǎng)絡(luò)可信性評測的事件注入技術(shù)仿真研究[J].系統(tǒng)仿真學(xué)報,2008,20(10):2713-2717.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 日韩毛片在线影视 | 亚洲精品不卡午夜精品 | 欧美 亚洲 一区 | 久久香蕉精品视频 | 中文字幕日本一区波多野不卡 | 丁香五月亚洲综合在线 | 国产午夜不卡在线观看视频666 | 欧美成人免费高清二区三区 | 香蕉视频久久久 | 国产精品一区二区三区高清在线 | 狠狠插狠狠干 | 看全色黄大色黄大片毛片 | 国产精品成人观看视频国产 | 人人爽人人干 | 狠狠躁天天躁夜夜躁夜天战 | 看国产黄色片 | 日韩在线视频不卡 | 欧美视频日韩专区午夜 | 制服 丝袜 亚洲 中文 综合 | 日韩午夜视频在线观看 | 红色一级毛片 | 亚洲夜夜骑| 性欧美video超清 | 亚洲免费人成 | 亚洲春色第一页 | 日韩大片高清播放器好 | 日韩精品国产自在久久现线拍 | 久久成人免费 | 伊人免费视频 | 亚洲综合色一区二区三区另类 | a级aaaaaaaa毛片 | 亚洲人成网站在线观看播放 | 中文字幕午夜乱理片11111 | 一一本大道香蕉大 | 国产三级视频网站 | 日韩视频区 | 国产大片免费观看中文字幕 | 国产亚洲一路线二路线高质量 | 日韩精品亚洲一级在线观看 | 中文字幕免费高清视频 | 看全色黄大色黄大片毛片 |