• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Python的智能家居自動化測試腳本設(shè)計及實現(xiàn)

      2015-06-22 14:40:00范雨曉
      電視技術(shù) 2015年5期
      關(guān)鍵詞:測系統(tǒng)測試用例腳本

      沈 杰,潘 科,劉 昕,范雨曉

      (工業(yè)和信息化部 電信研究院西部分院(重慶電信研究院),重慶401336)

      基于Python的智能家居自動化測試腳本設(shè)計及實現(xiàn)

      沈 杰,潘 科,劉 昕,范雨曉

      (工業(yè)和信息化部 電信研究院西部分院(重慶電信研究院),重慶401336)

      根據(jù)智能家居系統(tǒng)的特點和要求,詳細(xì)介紹了所研發(fā)的自動化測試平臺。在此平臺基礎(chǔ)上,通過Python腳本的設(shè)計,擴(kuò)展了對智能家居業(yè)務(wù)的描述,設(shè)計了對測試腳本的架構(gòu)方案,并且以門磁設(shè)備的測試用例為例,詳細(xì)描述了腳本編寫過程和方法及實現(xiàn)其功能的自動化測試。通過Python語法編寫而成的測試方法,具有良好的描述能力,并且產(chǎn)生的測試方法易于維護(hù),該方法對于開展智能家居自動化測試具有重要意義。

      智能家居;腳本設(shè)計;自動化測試

      利用腳本來描述測試用例,是具有標(biāo)準(zhǔn)語法、數(shù)據(jù)和指令的描述集合,在自動化測試過程中,通過腳本解釋器來執(zhí)行測試用例是一種非常有效的測試方法[1-2]。在測試系統(tǒng)中引入腳本技術(shù),測試需求使用面向測試的腳本語言來編寫測試計劃,描述一個或多個測試用例的執(zhí)行,可以大大提高測試效率。測試人員根據(jù)被測系統(tǒng)要求,通過對各種資源進(jìn)行配置,驅(qū)動被測系統(tǒng)運(yùn)行,對輸入輸出接口進(jìn)行結(jié)果判定。

      1 智能家居自動化測試平臺

      1.1 測試原理

      智能家居作為物聯(lián)網(wǎng)典型應(yīng)用,其結(jié)構(gòu)也遵從三層結(jié)構(gòu)模型。在應(yīng)用層端呈現(xiàn)出的是移動智能終端(如手機(jī)、平板)或者Web網(wǎng)頁等,在傳感層端呈現(xiàn)出的是各種感知設(shè)備或執(zhí)行設(shè)備。因此,將智能家居系統(tǒng)業(yè)務(wù)應(yīng)用看成一個“類黑盒”的產(chǎn)品,研究端到端的方法來開展自動化測試。為了達(dá)到自動化測試的目的,把智能家居系統(tǒng)手機(jī)端和傳感端都分別看成一個輸入輸出接口,通過測試系統(tǒng)進(jìn)行測試激勵和數(shù)據(jù)采集。在APP端,把手機(jī)連入測試系統(tǒng),在手機(jī)中嵌入一個上測試代理Agent文件,該Agent文件封裝了手機(jī)系統(tǒng)API接口及其部分控件,架起測試系統(tǒng)與手機(jī)通信的橋梁。在傳感設(shè)備端,需要對傳感設(shè)備模擬不同傳感信號,以便使傳感器產(chǎn)生報警信息,那么就需要一個信號模擬器,負(fù)責(zé)模擬輸入傳感元件發(fā)出的電信號;對于在傳感端是受控設(shè)備來說,就需要采集受控設(shè)備收到控制命令后的執(zhí)行動作,因此需要一個信號采集器,負(fù)責(zé)采集識別受控節(jié)點接收到的控制信息。筆者開發(fā)的信號仿真測試儀,適配各種傳感端設(shè)備,架起了測試系統(tǒng)與傳感端通信橋梁,最后形成一個智能家居系統(tǒng)業(yè)務(wù)功能自動化閉環(huán)測試。

      1.2 測試平臺結(jié)構(gòu)

      基于ISO/IEC9646分布式測試方法模型,虛擬化了測試系統(tǒng)中的下測試器LTA(Lower Testing Agent)和被測系統(tǒng)中的上測試器UTA(Upper Testing Agent),設(shè)計了智能家居的測試結(jié)構(gòu),如圖1所示。測試系統(tǒng)和被測系統(tǒng)分別屬于不同的兩個實體,對被測系統(tǒng)來說,通過對應(yīng)用端的手機(jī)APP和感知延伸端的開關(guān)、門磁、煙感等執(zhí)行設(shè)備和感知設(shè)備進(jìn)行抽象化,提供系統(tǒng)服務(wù)層接口,進(jìn)行數(shù)據(jù)單元的信息交互。在測試系統(tǒng)中,測試集成開發(fā)環(huán)境軟件(Integrated Development Environment,IDE)是整個測試系統(tǒng)的核心,協(xié)調(diào)管理后臺處理的各個資源模塊,并提供測試腳本開發(fā)的編程及運(yùn)行環(huán)境。下測試器LTA通過信號仿真測試儀來實現(xiàn)電信號接口,執(zhí)行測試IDE中的信號激勵或者采集被測系統(tǒng)感知延伸端的響應(yīng)。上測試器UTA直接和測試IDE相連,接收測試命令,產(chǎn)生對被測系統(tǒng)的激勵,同時作為應(yīng)用輸出,監(jiān)測系統(tǒng)響應(yīng)動作,最后都通過測試系統(tǒng)來判斷測試結(jié)果。

      圖1 測試平臺結(jié)構(gòu)

      2 自動化測試腳本設(shè)計

      2.1 Python腳本描述擴(kuò)展

      Python語言是一種面向?qū)ο?、解釋型、跨平臺的計算機(jī)程序設(shè)計語言。本文基于Python語言特點,結(jié)合本項目中已經(jīng)開發(fā)的IDE軟件,開發(fā)針對智能家居產(chǎn)品的測試腳本技術(shù),并在實際的系統(tǒng)測試中對其進(jìn)行驗證[3-4]。

      根據(jù)智能家居端到端的測試特性,擴(kuò)展了Python腳本在測試系統(tǒng)中對智能家居業(yè)務(wù)的描述特性,包括測試配置和測試策略,分別如下:

      1)測試配置

      (1)參數(shù)配置——被測系統(tǒng)各種應(yīng)用參數(shù)設(shè)置;

      (2)環(huán)境配置——對被測系統(tǒng)環(huán)境設(shè)置。

      2)測試策略

      (1)激勵信息——對被測系統(tǒng)施加的各種激勵;

      (2)采集信息——獲取各種輸出信息;

      (3)驗證點比對——比較什么,和誰比較以及如何比較;

      (4)執(zhí)行策略——對測試次數(shù)、測試步驟等策略信息何時進(jìn)行操作,以什么樣的規(guī)律進(jìn)行。

      2.2 腳本層次化

      鑒于智能家居業(yè)務(wù)是以開展平均無故障時間(Mean Time Between Failure,MTBF)測試,需要長時間持續(xù)進(jìn)行,這就需要測試系統(tǒng)具備自動化測試能力[5-6]。然而,考慮到智能家居系統(tǒng)業(yè)務(wù)的復(fù)雜樣和多樣性,測試時需要包含不同的測試控制功能,使用不同類型的測試公共函數(shù)。因此,把測試腳本按樹形結(jié)構(gòu)進(jìn)行層級分級設(shè)計。一方面便測試人員對數(shù)據(jù)的配置和選擇,另一方面有利于測試腳本的維護(hù)和管理。

      按層級來對每個設(shè)備分別實現(xiàn)獨立的測試模塊,即測試用例TestCase、測試套件TestSuite及測試任務(wù)TestTask。

      測試用例TestCase:確定執(zhí)行前所需要的測試環(huán)境、先決條件,確定所要測試的目標(biāo),確定對輸入數(shù)據(jù)的要求和期望的輸出。

      測試套件TestSuite:封裝基本功能,對復(fù)用函數(shù)提供API接口(如APP登錄/登出流程,手機(jī)屏幕滑動等函數(shù)模塊),在腳本編寫時直接調(diào)用模塊,以此加強(qiáng)測試套件的通用性,方便于測試人員二次開發(fā)。

      測試任務(wù)TestTask:執(zhí)行被測系統(tǒng)的業(yè)務(wù)用戶操作,為測試用例的具體實現(xiàn)。

      2.3 腳本架構(gòu)設(shè)計

      根據(jù)智能家居所提供業(yè)務(wù)來說,在測試系統(tǒng)的IDE中,通過對測試腳本架構(gòu)和測試數(shù)據(jù)分離的設(shè)計思路,可以對該部分進(jìn)行封裝接口,形成共用結(jié)構(gòu)的套件。該套件由系統(tǒng)時間、日志記錄、數(shù)據(jù)對象庫、文件列表、測試資源管理共5部分形成一個測試腳本架構(gòu)。功能分別如下:

      1)系統(tǒng)時間:測試系統(tǒng)提供時間標(biāo)記或系統(tǒng)同步功能;

      2)日志記錄:測試人員可自編程日志打印和存儲記錄;

      3)資源對象庫包含:測試設(shè)備資源和驗證點圖片資源,包括對不同被測設(shè)備接入的設(shè)備管理和測試策略中各個驗證點管理;

      4)文件列表:可導(dǎo)入/導(dǎo)出不同相關(guān)聯(lián)數(shù)據(jù);

      5)測試資源管理:對測試設(shè)備、測試腳本的資源調(diào)度管理,以達(dá)到對測試任務(wù)管理、測試狀態(tài)監(jiān)控、測試報告的全部測試流程。

      每一個TestCase即為一個測試用例,它由不同的UserCodeModule組合而成,在本架構(gòu)中為了更加方便、人性化地設(shè)計測試腳本,TestCase之間采用可以互相嵌套的策略,即TestCase不僅可以包含UsercodeModule,也能包含TestCase。因此,在進(jìn)行某一個測試用例的編寫來說,直接調(diào)用測試套件快速生成一個框架,通過對相類似的測試用例使用關(guān)鍵字驅(qū)動、屬性修改、數(shù)據(jù)源中進(jìn)行存放、編輯等方式加載在測試Modules中,然后根據(jù)具體的測試用例實現(xiàn),編輯被測業(yè)務(wù)的具體操作,從而能快速生成測試腳本。自動化測試腳本的架構(gòu)圖如圖2所示。

      在測試腳本的運(yùn)行程序中,需要設(shè)置腳本程序的啟動項。啟動項就是項目運(yùn)行后首先執(zhí)行調(diào)用的腳本。然后在執(zhí)行啟動項腳本的過程中,將其他腳本通過“from import *”調(diào)用文件的相對路徑的格式引用進(jìn)來,這樣在其他腳本中定義的方法或者對象就可以在啟動項腳本中直接調(diào)用了。

      根據(jù)腳本層次化的分級,使得接口模塊化,將共用的腳本調(diào)用直接生成,根據(jù)業(yè)務(wù)應(yīng)用類型就可以直接組合生成不同的測試用例集,不需要針對每個功能開發(fā)腳本。由此,就可以在測試用例生成的時候自動寫出腳本的基本架構(gòu),只需修改具體實現(xiàn)的部分代碼,大大減少了代碼編寫的工作量,提高腳本的維護(hù)便捷性。

      圖2 腳本架構(gòu)

      3 自動化測試實現(xiàn)

      3.1 平臺搭建

      在智能家居系統(tǒng)中,通常是集成了移動智能終端(如手機(jī)APP)、服務(wù)器(或云平臺)、家居傳感設(shè)備或執(zhí)行設(shè)備(如智能插座、智能開關(guān)、門磁感應(yīng)設(shè)備、煙霧感應(yīng)設(shè)備等)的一個多層級、多設(shè)備的網(wǎng)絡(luò)系統(tǒng),并被視為一個整體為人們提供產(chǎn)品服務(wù)。如圖3所示,根據(jù)測試平臺接口結(jié)構(gòu),把手機(jī)直接通過USB和測試系統(tǒng)相連,通過對手機(jī)端嵌入上測試代理,執(zhí)行對手機(jī)的操作控制。傳感設(shè)備或者執(zhí)行設(shè)備通過物聯(lián)網(wǎng)仿真測試儀直接相連。

      圖3 智能家居業(yè)務(wù)測試示意圖

      3.2 腳本測試實例

      根據(jù)典型智能家居應(yīng)用中,選取門磁感應(yīng)器進(jìn)行測試用例的編寫描述。測試用例的輸入、輸出,結(jié)果比對部分如下:

      1)手機(jī)返回到主界面(預(yù)防異常);

      2)登錄智能家居APP;

      3)開啟安防監(jiān)測狀態(tài);

      4)物聯(lián)網(wǎng)仿真測試儀模擬電信號發(fā)送測試命令,激勵門磁感應(yīng)設(shè)備中產(chǎn)生報警信息;

      5)在等待時間2 s內(nèi),手機(jī)APP接收到門磁感應(yīng)器報警信息,如果未接收到該報警信息或者等待超時,判斷該次失敗,這樣就完成一次門磁感應(yīng)設(shè)備的業(yè)務(wù)功能測試。

      門磁感應(yīng)器測試用例MagneticTestCase函數(shù)模塊如表1所示。

      表1 函數(shù)模塊接口

      在本測試用例中,可以直接調(diào)用生成測試套件中的公共函數(shù)模塊即返回模塊、登錄功能模塊、退出模塊,而對具體的測試策略,需要根據(jù)業(yè)務(wù)需求進(jìn)行測試步驟、運(yùn)行順序安排。限于篇幅,下面只描述了測試腳本中需要編寫執(zhí)行策略模塊,測試腳本如下:

      import time

      from Commons.CommonFunctions import * #導(dǎo)入測試腳本庫

      class SmokeAlarm:

      def __init__(self):#初始化

      self.parent=""

      self.devicePath = ""

      self.deviceIOTPath = ""

      pass

      defSetPropertyValue(self,properName,properValue):#屬性設(shè)置

      setattr(self,properName,properValue)

      def Run(self):#啟動項

      devicePath = self.devicePath#路徑

      deviceIOTPath = self.deviceIOTPath

      device = KJRepository.GetDeviceByName(devicePath)

      deviceIOT = KJRepository.GetDeviceByName(deviceIOTPath)

      bflag = False

      device.Click(180,808)#進(jìn)入安防報警區(qū)域

      time.sleep(2)

      tempBflag = deviceIOT.IO_Output(0,deviceIOT.IO_Low)#激勵煙霧傳感器報警"

      deviceIOT.Wait(1000)

      result = deviceIOT.GetResult(tempBflag)

      if result[0]==0:

      print "開啟煙霧傳感器成功"

      else:

      print "開啟煙霧傳感器失敗"

      if(CommonFunctions().WaitForCheckPoint("SmokeAlarm.HasNewMessage.HasNewMessage",devicePath,20000)):#驗證是否收到報警信號

      if(KJRepository.DoVerify("SmokeAlarm.SmokeAlarmSuccess1.SmokeAlarmSuccess1",devicePath):#判斷報警信號是否成功

      bflag = True

      tempBflag = deviceIOT.IO_Output(0,deviceIOT.IO_High)#關(guān)閉煙霧傳感器報警

      result = deviceIOT.GetResult(tempBflag)

      if result[0]==0:

      print "關(guān)閉煙霧傳感器成功"

      else:

      print "關(guān)閉煙霧傳感器失敗"

      returnbflag

      為了提高編寫腳本效率,可以在其他測試用例中,直接調(diào)用已封裝的腳本模塊,特別是在需要開展功能可靠性測試方面,需要連續(xù)操作幾千次到幾萬次,通過腳本把腳本結(jié)構(gòu)和測試數(shù)據(jù)進(jìn)行分離,方便測試人員開展系統(tǒng)屬性設(shè)置,進(jìn)行自動化測試,能較好地實現(xiàn)判斷的準(zhǔn)確性、測試的重復(fù)性。

      3.3 測試分析

      在該測試平臺中,對應(yīng)用端來說,把移動智能終端接入測試IDE,可以直接操作APP或Web。對傳感端來說,開發(fā)測試仿真測試儀直接提供各種嵌入式接口,如IO接口、AD接口、DA接口、PWM接口、時序接口等各種接口,直接與被測設(shè)備相連,解決了智能家居硬件接入測試IDE。然后,通過腳本的強(qiáng)大描述能力,模擬操作各個激勵和結(jié)果比對,形成閉環(huán)測試,實現(xiàn)了智能家居測試的自動化。

      現(xiàn)在已經(jīng)把智能開關(guān)、智能插座通過信號仿真測試儀IO接口接入系統(tǒng),煙霧傳感器、紅外探測器、門磁感應(yīng)器通過DA接口接入系統(tǒng),分別開展了手機(jī)APP與執(zhí)行設(shè)備或傳感設(shè)備的業(yè)務(wù)可靠性測試,發(fā)現(xiàn)在持續(xù)運(yùn)行下存在手機(jī)APP崩潰、數(shù)據(jù)丟包、運(yùn)行響應(yīng)速度變緩等產(chǎn)品可靠性、穩(wěn)定性問題。

      4 結(jié)束語

      自動化測試憑借可重復(fù)性,測試效率高等特點得到了快速發(fā)展,對智能家居多設(shè)備系統(tǒng)來說,可靠性測試扮演著越來越重要的角色。針對傳感設(shè)備的多樣性,如何將自動化測試更好地融入智能家居,完善對傳感設(shè)備接口的接入,形成自動化的激勵和判別效果是開展對智能家居測試的關(guān)鍵環(huán)節(jié)。同時,在缺乏相關(guān)測試工具的情況下,目前建立智能家居可靠性測試,對產(chǎn)業(yè)發(fā)展、行業(yè)推廣、政府示范工程驗收等都具有重要意義。

      [1]CHEN Jixi,JIANG Lihong.A method and implementation of test automation for software functional[J].The Computer Engineering,2004,30(12):168-169.

      [2]鞠秀娟,趙明.軟件自動化測試概述及應(yīng)用工具分析[J].計算機(jī)應(yīng)用,2007(27):317-321.

      [3]彭樹林.Python在嵌入式項目中的輔助開發(fā)[J].信息系統(tǒng)工程,2010(7):21-31.

      [4]孫強(qiáng),李建華,李生紅.基于Python的文本分類系統(tǒng)開發(fā)研究[J]. 計算機(jī)應(yīng)用與軟件,2011(3):13-14.

      [5]趙敏. 手機(jī)應(yīng)用層軟件測試及故障分析[J]. 質(zhì)量技術(shù)監(jiān)督研究,2009(3):57-60.

      [6]高巍. Android操作系統(tǒng)軟件自動化測試方案的設(shè)計與實施[D]. 北京:北京郵電大學(xué),2012.

      沈 杰,碩士生,主研物聯(lián)網(wǎng)應(yīng)用測試、自動化測試等;

      潘 科,博士生,主研物聯(lián)網(wǎng)應(yīng)用測試、自動化測試等;

      劉 昕,碩士生,主研物聯(lián)網(wǎng)應(yīng)用測試、自動化測試等;

      范雨曉,碩士生,主研物聯(lián)網(wǎng)應(yīng)用測試、自動化測試等。

      責(zé)任編輯:閆雯雯

      Python Script Based on Smart Home Automatic Testing Design and Implementation

      SHEN Jie,PAN Ke,LIU Xin, FAN Yuxiao

      (WestInstituteofCATRofMIIT(ChongqingInstituteofTelecommunications),Chongqing401336,China)

      According to the characteristics of the smart home system and requirements,the development of smart home automation test platform is introduced.In this platform, it takes an example of door magnetic equipment,the Python script writing process and methods is described in detail. Then,the function of automatic testing is implemented. The testing method which is programmed by Python has a good ability of description and easy to maintain,so it has great significance for implementing intelligent automated testing.

      smart home; script design; automated testing

      2013年重慶市科技人才培養(yǎng)計劃項目(新產(chǎn)品創(chuàng)新青年科技人才培養(yǎng)項目)(cstc 2013 kjrc-qnrc40007)

      TP391.76

      A

      10.16280/j.videoe.2015.05.029

      2014-11-09

      【本文獻(xiàn)信息】沈杰,潘科,劉昕,等.基于Python的智能家居自動化測試腳本設(shè)計及實現(xiàn)[J].電視技術(shù),2015,39(5).

      猜你喜歡
      測系統(tǒng)測試用例腳本
      酒駕
      安奇奇與小cool 龍(第二回)
      基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
      數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
      電子測試(2018年14期)2018-09-26 06:04:24
      基于混合遺傳算法的回歸測試用例集最小化研究
      快樂假期
      防洪非工程措施設(shè)計實例——嘉興市水文巡測系統(tǒng)項目設(shè)計
      電快速瞬變脈沖群對核測系統(tǒng)的影響及對策
      基于廣域量測系統(tǒng)的電力系統(tǒng)綜合負(fù)荷辨識模型的研究
      電測與儀表(2015年8期)2015-04-09 11:50:12
      基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
      辽宁省| 喀喇沁旗| 剑川县| 和平区| 射洪县| 深州市| 襄城县| 廉江市| 察隅县| 陵水| 布拖县| 陕西省| 托里县| 桓仁| 北川| 咸丰县| 新邵县| 兴宁市| 富裕县| 综艺| 日喀则市| 铁力市| 定襄县| 杂多县| 弥渡县| 崇礼县| 皮山县| 定安县| 蓝山县| 鸡西市| 孟连| 纳雍县| 乐安县| 罗源县| 宁蒗| 永顺县| 榆社县| 韶山市| 永济市| 宁化县| 渭源县|