亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Selenium的Web自動(dòng)化測(cè)試框架優(yōu)化及應(yīng)用研究

        2018-11-08 08:27:02劉偉郭秋月胡志剛
        電子測(cè)試 2018年20期
        關(guān)鍵詞:界面效率優(yōu)化

        劉偉,郭秋月,胡志剛

        (1.湖南中醫(yī)藥大學(xué)信息科學(xué)與工程學(xué)院,湖南長沙,410208;2.中南大學(xué)軟件學(xué)院,湖南長沙,410075)

        0 引言

        軟件自動(dòng)化測(cè)試技術(shù)是近年來軟件工程的熱點(diǎn)研究領(lǐng)域之一。軟件自動(dòng)化測(cè)試是通過測(cè)試工具和方法,將測(cè)試人員的人力勞動(dòng)從非技術(shù)、重復(fù)且冗長的測(cè)試工作中解放出來的測(cè)試行為,包括實(shí)現(xiàn)機(jī)器執(zhí)行測(cè)試、與預(yù)期結(jié)果進(jìn)行對(duì)比,最后生成相應(yīng)的測(cè)試報(bào)告等自動(dòng)化的功能。自動(dòng)化測(cè)試以縮短測(cè)試周期、節(jié)約測(cè)試成本、達(dá)到更高效地測(cè)試和軟件質(zhì)量為目標(biāo)[1]。

        Web自動(dòng)化測(cè)試是軟件自動(dòng)化測(cè)試的重要組成部分,目前在業(yè)界已經(jīng)取得了一定的研究成果。Selenium是Thought Works公司開發(fā)的一套適用于各種不一樣的Web應(yīng)用的功能測(cè)試工具集,主要用于Web應(yīng)用自動(dòng)化測(cè)試,它不僅能支持多種瀏覽器和多種開發(fā)語言,而且還有很好的擴(kuò)展性[2]。Selenium為諸多自動(dòng)化Web測(cè)試框架提供了基礎(chǔ),近年來已有一些基于Selenium的Web自動(dòng)化測(cè)試框架的研究工作相繼報(bào)道[3-6]。

        目前很多Web自動(dòng)化測(cè)試框架都是基于Selenium實(shí)現(xiàn)的,主要是對(duì)Selenium框架的二次封裝。已有的基于Selenium實(shí)現(xiàn)的Web自動(dòng)化測(cè)試框架存在測(cè)試腳本維護(hù)成本高、穩(wěn)定性低、測(cè)試腳本不能自動(dòng)生成等問題。在本文中將對(duì)基于Selenium的Web自動(dòng)化測(cè)試框架開展優(yōu)化,設(shè)計(jì)并實(shí)現(xiàn)了一套名為MultiUI的自動(dòng)化測(cè)試框架,并在真實(shí)項(xiàng)目中予以應(yīng)用,在一定程度上提高自動(dòng)化測(cè)試的效率和穩(wěn)定性,并進(jìn)一步提升測(cè)試框架的跨平臺(tái)性。

        1 基于Selenium的Web自動(dòng)化測(cè)試并發(fā)化和無界面化

        隨著CPU主頻的升高和多核計(jì)算機(jī)的普及,利用多線程來并發(fā)執(zhí)行測(cè)試任務(wù),可以更加充分利用計(jì)算機(jī)資源,進(jìn)而縮短測(cè)試時(shí)間。為此,為了提高執(zhí)行效率,對(duì)Selenium進(jìn)行并發(fā)化,將獨(dú)立的測(cè)試用例對(duì)象化進(jìn)行多線程并發(fā)執(zhí)行。使用線程的時(shí)候就創(chuàng)建一個(gè)線程,這樣實(shí)現(xiàn)較為方便。但是如果并發(fā)的線程數(shù)很多,并且每個(gè)線程都是在執(zhí)行一個(gè)短時(shí)間時(shí)的任務(wù)被創(chuàng)建,執(zhí)行結(jié)束后就被銷毀,這樣就會(huì)頻繁的創(chuàng)建和銷毀線程而產(chǎn)生大量的時(shí)間消耗,導(dǎo)致系統(tǒng)的效率大大降低。為了使線程執(zhí)行完任務(wù)不被銷毀,本自動(dòng)化測(cè)試框架采用線程池達(dá)到線程復(fù)用的效果。創(chuàng)建線程池后,線程池中沒有任何線程,當(dāng)有任務(wù)提交(submit)給線程池后,就會(huì)創(chuàng)建線程去執(zhí)行任務(wù),當(dāng)線程池中的線程數(shù)目達(dá)到核心池的大小(corePoolSize)后,就會(huì)把到達(dá)的任務(wù)放到緩存隊(duì)列(workQueue)中,直到所有任務(wù)緩存隊(duì)列中的任務(wù)都執(zhí)行完后才終止(shutdown)。通過并行化優(yōu)化可極大提高自動(dòng)測(cè)試效率,縮短測(cè)試時(shí)間。

        為了進(jìn)一步提升自動(dòng)化測(cè)試的執(zhí)行效率和穩(wěn)定性,我們將原框架采用真實(shí)瀏覽器模擬用戶操作的方式,改為采用無界面的瀏覽器實(shí)現(xiàn)。通過驅(qū)動(dòng)無界面瀏覽器PhantomJS來實(shí)現(xiàn)自動(dòng)化測(cè)試,PhantomJS 支持JavaScript API的無界面、運(yùn)行在服務(wù)端的WebKit的環(huán)境,不需要瀏覽器支持,速度快,主要用于頁面自動(dòng)化、網(wǎng)絡(luò)監(jiān)測(cè)、頁面截圖和無界面測(cè)試。采用PhantomJS使Web自動(dòng)化以無界面的方式運(yùn)行,解決測(cè)試過程中加載瀏覽器元素導(dǎo)致測(cè)試速度慢和受網(wǎng)絡(luò)不穩(wěn)定影響的問題;同時(shí)由于PhantomJS無界面的實(shí)現(xiàn)也擴(kuò)展了自動(dòng)化執(zhí)行的平臺(tái),使得自動(dòng)化測(cè)試的執(zhí)行能在無界面的Linux服務(wù)器上運(yùn)行,并進(jìn)一步提高了執(zhí)行效率。PhantomJS重要應(yīng)用場(chǎng)景之一就是實(shí)現(xiàn)對(duì)Web產(chǎn)品的無界面測(cè)試,它不是自動(dòng)化測(cè)試框架,主要是通過測(cè)試腳本驅(qū)動(dòng)相應(yīng)的測(cè)試框架。PhantomJS是運(yùn)行在WebKit環(huán)境中,可以對(duì)網(wǎng)頁進(jìn)行截圖,除了能將網(wǎng)頁轉(zhuǎn)化為HTML、CSS等格式外,還支持GIF、PNG等圖片格式,為網(wǎng)頁截屏提供了更多的選擇。在本文中,基本設(shè)計(jì)思路為將PhantomJS封裝為WebDriver提供給Selenium調(diào)用,并且封裝PhantomJS實(shí)現(xiàn)的網(wǎng)頁截圖。

        2 自動(dòng)化測(cè)試框架的打包操作

        為了進(jìn)一步提高自動(dòng)化框架測(cè)試效率,必須提供更好的服務(wù)設(shè)施。Linux服務(wù)器會(huì)比Windows服務(wù)器性能優(yōu)勢(shì)更大,所以為了使自動(dòng)化測(cè)試框架能在Linux上運(yùn)行,對(duì)自動(dòng)化測(cè)試框架進(jìn)行打JAR包的操作,在Linux上通過命令的方式運(yùn)行自動(dòng)化框架。

        在我們的優(yōu)化工作中采用了Maven Assembly插件打包方法,該方法適用于導(dǎo)入第三方JAR包的項(xiàng)目。Maven Assembly是能創(chuàng)建一個(gè)包含所有運(yùn)行時(shí)所依賴外部JAR包、腳本和配置文件JAR包的插件,針對(duì)目的包需要包含第三方依賴包的情況,相比mvn package打包命令更簡易。Maven Assembly打包方法主要是通過pom.xml文件進(jìn)行配置。本自動(dòng)化框架pom.xml打包配置如下:

        <artifactId>multiUI</artifactId>

        <version>1.0.1.0506</version>

        <packaging>JAR</packaging>

        <!-- multiUI:為打包項(xiàng)目名;1.0.1.0506為定義的打包版本號(hào),可以由用戶自定義;JAR為pom打包類型-->

        <plugin>

        <artifactId>maven-assembly-plugin</artifactId>

        <version>2.2-beta-5</version>

        <configuration>

        <archive>

        <manifest>

        <!-- mainClass:指定打JAR包后運(yùn)行的主函數(shù)類名-->

        <mainClass>com.qihoo.webtest.execute.ExecSchedule</mainClass>

        </manifest>

        </archive>

        <descriptorRefs>

        <!-- descriptorRef:JAR-with-dependencies 會(huì)把第三方依賴的JAR包打進(jìn)最終的JAR包-->

        <descriptorRef>

        JAR-with-dependencies</descriptorRef>

        </descriptorRefs>

        </configuration>

        </plugin>

        在pom.xml文件中配置以上信息后,通過cmd在進(jìn)入項(xiàng)目的根目錄下運(yùn)行mvn assembly:assembly命令打包即可,打包成功后會(huì)在項(xiàng)目target目錄下生產(chǎn)一個(gè)JAR包,如圖1所示。

        圖1 JAR包生成圖

        將由Maven Assembly插件打好的JAR包上傳到Linux服務(wù)器,把配置文件、測(cè)試數(shù)據(jù)文件和測(cè)試腳本上傳到配置文件中指定的目錄下。然后通過java命令:

        java-JARmultiUI-1.0.1.0506-JAR-withdependencies.JAR-configfilesrcmain esourceconfig. yaml運(yùn)行即可,后面-configfile需要加上配置文件的存放路徑。

        通過采用了Maven Assembly插件打包為JAR的形式,可以方便地在Linux系統(tǒng)中使用命令形式運(yùn)行自動(dòng)化測(cè)試框架,提高了框架的靈活性和跨平臺(tái)性。

        3 優(yōu)化效果分析

        在優(yōu)化前自動(dòng)化框架采用的是真實(shí)瀏覽器,并且是單線程運(yùn)行,但MutilUI采用的是無界面的瀏覽器和多線程并行的運(yùn)行方式。為了更好地分析優(yōu)化后的效果,對(duì)MutilUI與原自動(dòng)化測(cè)試框架進(jìn)行對(duì)比。優(yōu)化前后的自動(dòng)化測(cè)試框架運(yùn)行在相同的軟硬件平臺(tái)上,運(yùn)行環(huán)境完全一樣。優(yōu)化前后自動(dòng)化測(cè)試框架在測(cè)試腳本開發(fā)、測(cè)試腳本執(zhí)行、測(cè)試腳本維護(hù)三方面存在差異。在實(shí)驗(yàn)中我們選取一個(gè)旅游網(wǎng)站的搜索功能作為測(cè)試對(duì)象,包括酒店搜索(將用戶對(duì)酒店搜索的高頻詞匯作為測(cè)試數(shù)據(jù),在被測(cè)Web應(yīng)用中進(jìn)行搜索,對(duì)得到的結(jié)果類型和內(nèi)容與預(yù)期結(jié)果做對(duì)比)、景點(diǎn)搜索(將熱門景點(diǎn)名稱作為測(cè)試數(shù)據(jù),在被測(cè)Web應(yīng)用中搜索,搜索結(jié)果是否有正確分類)、推薦菜搜索(將用戶經(jīng)常搜索的菜名作為測(cè)試數(shù)據(jù),在被測(cè)Web應(yīng)用中搜索,搜索結(jié)果是否有按照應(yīng)用需求進(jìn)行分類)。優(yōu)化前后的具體用時(shí)對(duì)比如表1所示。

        表1 優(yōu)化前后測(cè)試用時(shí)對(duì)比

        根據(jù)上面的計(jì)算方法得出該測(cè)試框架相對(duì)原有自動(dòng)化測(cè)試框架的ROI(Return On Investment,投資回報(bào)率):

        ROI=利益/優(yōu)化后自動(dòng)化測(cè)試成本=(∑(優(yōu)化前自動(dòng)化測(cè)試成本)-∑(優(yōu)化后自動(dòng)化測(cè)試成本))/∑(優(yōu)化后自動(dòng)化測(cè)試成本)

        則自動(dòng)化測(cè)試執(zhí)行一次的投資回報(bào)率是:

        ROI(1)=((8+0.15×1+4×1)-(7+0.12×1+2×1))/(7+0.12×1+2×1)=33.22%

        同理可以算出多次的投資回報(bào)率,具體見表2所示。

        表2 測(cè)試用時(shí)對(duì)比

        從上面數(shù)據(jù)可以看出,并且隨著回歸測(cè)試次數(shù)越多,投資回報(bào)率越高。

        下面以測(cè)試用例個(gè)數(shù)為單位,給出MutilUI與原自動(dòng)化測(cè)試框架用時(shí)對(duì)比,如圖2所示。

        圖2 原自動(dòng)化測(cè)試框架與MutilUI框架測(cè)試用時(shí)對(duì)比

        從測(cè)試用時(shí)對(duì)比的柱狀圖可以看出,在用時(shí)增長趨勢(shì)上原自動(dòng)化測(cè)試框架明顯比MutilUI快,由此可得出優(yōu)化后的MutilUI自動(dòng)化測(cè)試框架相對(duì)原自動(dòng)化測(cè)試框架在執(zhí)行效率上有明顯提升。

        4 結(jié)語

        本文基于Web自動(dòng)化測(cè)試框架Selenium進(jìn)行合理的優(yōu)化和改進(jìn),設(shè)計(jì)并實(shí)現(xiàn)了一套名為MultiUI的自動(dòng)化測(cè)試框架,在MultiUI框架中采用多線程技術(shù)實(shí)現(xiàn)測(cè)試用例的并發(fā)執(zhí)行,提高了測(cè)試效率;同時(shí)將PhantomJS封裝為WebDriver的方法驅(qū)動(dòng)無界面瀏覽器,實(shí)現(xiàn)了無界面化瀏覽器的自動(dòng)化測(cè)試,在縮短測(cè)試時(shí)間的同時(shí)還提高了測(cè)試框架的穩(wěn)定性;最后采用Maven Assembly插件打包為JAR的形式,可以方便地在Linux系統(tǒng)中使用命令形式運(yùn)行自動(dòng)化測(cè)試框架,提高了框架的靈活性和跨平臺(tái)性。

        在真實(shí)項(xiàng)目中應(yīng)用優(yōu)化后的測(cè)試框架并與優(yōu)化前的框架進(jìn)行對(duì)比分析,結(jié)果表明,優(yōu)化后的框架相對(duì)原自動(dòng)化測(cè)試框架在執(zhí)行效率上有明顯提升,本文的研究工作具有良好的應(yīng)用價(jià)值,有助于提高自動(dòng)化測(cè)試框架的執(zhí)行效率和穩(wěn)定性。

        猜你喜歡
        界面效率優(yōu)化
        超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
        民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        提升朗讀教學(xué)效率的幾點(diǎn)思考
        甘肅教育(2020年14期)2020-09-11 07:57:42
        國企黨委前置研究的“四個(gè)界面”
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
        人機(jī)交互界面發(fā)展趨勢(shì)研究
        手機(jī)界面中圖形符號(hào)的發(fā)展趨向
        新聞傳播(2015年11期)2015-07-18 11:15:04
        跟蹤導(dǎo)練(一)2
        国产自拍高清在线观看| 亚洲一区二区高清精品| 欧洲一级无码AV毛片免费| 国产午夜无码片在线观看影院| 天码人妻一区二区三区| 亚洲三级黄色| 久久熟女乱一区二区三区四区| 精彩视频在线观看一区二区三区| 无码无套少妇毛多18p| 麻豆一区二区99久久久久| 蜜桃成人无码区免费视频网站| 亚洲精品aⅴ无码精品丝袜足 | 青青草视频国产在线观看| 精品三级国产一区二区三| 美腿丝袜诱惑一区二区| 午夜无码伦费影视在线观看| 中国丰满熟妇xxxx| 国产亚洲精品自在久久77| 日本女优爱爱中文字幕| 少妇人妻av一区二区三区| 国产偷国产偷亚洲高清视频| 亚洲av无码久久精品蜜桃| 欧美黑人性色黄在线视频| 小13箩利洗澡无码免费视频| 国产一区二区三区影片| 亚洲一区二区日韩专区| 又黄又硬又湿又刺激视频免费| 亚洲人成综合网站在线| 国内精品极品久久免费看| 我和丰满妇女激情视频| 骚小妹影院| 精品91精品91精品国产片| 日韩少妇高潮在线视频| 国产婷婷色一区二区三区深爱网 | 热久久美女精品天天吊色| 国产乱xxⅹxx国语对白| 欧洲色综合| 日本久久一区二区三区高清| 久久精品国产亚洲av麻豆瑜伽| 亚洲精品乱码久久久久久久久久久久| 亚洲精品成人av观看|