<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        angularjs中的e2e測試實例_AngularJS

        來源:懂視網 責編:小采 時間:2020-11-27 21:29:38
        文檔

        angularjs中的e2e測試實例_AngularJS

        angularjs中的e2e測試實例_AngularJS:在上一篇文章里有講到ng的單元測試,今天來說說e2e(端對端)測試. 當我們測試某個模塊的單個功能點時,單元測試最適合,不過當面臨用戶進行多個頁面交互的時候產生bug了,單元測試就不行了,這時候就得用e2e來模擬用戶操作還原問題現場.當然利用e2e測試也能夠測
        推薦度:
        導讀angularjs中的e2e測試實例_AngularJS:在上一篇文章里有講到ng的單元測試,今天來說說e2e(端對端)測試. 當我們測試某個模塊的單個功能點時,單元測試最適合,不過當面臨用戶進行多個頁面交互的時候產生bug了,單元測試就不行了,這時候就得用e2e來模擬用戶操作還原問題現場.當然利用e2e測試也能夠測
        在上一篇文章里有講到ng的單元測試,今天來說說e2e(端對端)測試.

        當我們測試某個模塊的單個功能點時,單元測試最適合,不過當面臨用戶進行多個頁面交互的時候產生bug了,單元測試就不行了,這時候就得用e2e來模擬用戶操作還原問題現場.當然利用e2e測試也能夠測試程序的健壯性,很多單元測試辦不到的事情,e2e測試都能夠辦到.

        之前,ng是利用Angular Scenario Runner來運行e2e測試,現在已經換成Protractor來跑e2e了.

        Protractor

        Protractor是Angularjs里用來測試e2e的框架,它本身是一個npm模塊,內部是構建在WebDriverJS之上的,Protractor能夠真正讓你的測試用例運行在瀏覽器上,完全模擬用戶的真實行為.

        下面貼上它的一些資源地址:

        1.Protractor提供的測試api
        2.Protractor簡單使用例子
        3.WebDriverJs指南,這是Protractor依賴的核心,npm模塊名為selenium-webdriver

        Protractor運行原理

        Protractor運行e2e測試所依賴的主要有以下幾個東西:

        1.WebDriver APIs,就是上面提到的WebDriverJs,是由Selenium提供給前端測試用的相關js api
        2.Selenium Server,一個后端jar包,用來負責跟瀏覽器驅動進行通訊用的
        3.WebDriver browser drivers,用來顯示真實網站內容并與Selenium Server通訊用,這里才是傳遞真實瀏覽器操作的地方

        整個運行過程如下圖

        想了解更多關于這幾個組件之前交互的可以點擊這里

        利用ng種子項目來講解e2e

        我們利用ng官方提供的種子項目來講解一個真實的e2e例子,首先利用下面命令獲取種子項目
        代碼如下:
        git clone https://github.com/angular/angular-seed.git

        然后運行
        代碼如下:
        npm install

        安裝相關的所有依賴文件

        這里先說下運行e2e測試需要的配置文件,可以看到test/protractor-conf.js這個文件就是用來配置相關功能的,重點說下幾個屬性

        1.specs 代表要運行的測試文件路徑,這里寫的是e2e/*.js
        2.baseUrl 代表測試文件中瀏覽器間跳轉頁面的根地址
        3.capabilities 代表使用哪個瀏覽器來運行測試用例,比如使用chrome,可以這樣設置
        代碼如下:
        capabilities: {
        'browserName': 'chrome'
        }

        framework 代表使用的哪種測試框架,這里使用的是jasmine

        想了解更多關于這個配置文件的可以點擊這里查看

        說完了配置文件,我們再來看看測試用例的寫法,先貼上一個官網上的例子

        代碼如下:
        'use strict';

        /* https://github.com/angular/protractor/blob/master/docs/getting-started.md */

        describe('my app', function() {

        browser.get('index.html');
        it('should automatically redirect to /view1 when location hash/fragment is empty', function() {
        expect(browser.getLocationAbsUrl()).toMatch("/view1");
        });


        describe('view1', function() {

        beforeEach(function() {
        browser.get('index.html#/view1');
        });


        it('should render view1 when user navigates to /view1', function() {
        expect(element.all(by.css('[ng-view] p')).first().getText()).
        toMatch(/partial for view 1/);
        });

        });


        describe('view2', function() {

        beforeEach(function() {
        browser.get('index.html#/view2');
        });


        it('should render view2 when user navigates to /view2', function() {
        expect(element.all(by.css('[ng-view] p')).first().getText()).
        toMatch(/partial for view 2/);
        });

        });
        });


        首先上面的語法是jasmine框架支持的寫法,不了解它的用法的可以點擊這里

        這里只說下上面例子里關于protractor提供的一些常用方法與屬性

        1.browser,全局對象,代表當前瀏覽器的一個實例,常用的get方法用來實現瀏覽器改變地址
        2.element,全局對象,提供像jquery里負責查找文檔元素的功能,常于by對象聯合使用
        3.by, 全局對象,提供一個選擇器類型,比如可以通過css,model,bind等特性來查找一個元素

        關于element與by的方法可以參考上面的protractor api文檔

        說了這么多,該跑一跑上面的測試用例了,命令比較簡單

        代碼如下:
        npm run update-webdriver

        這個負責下載相關的瀏覽器驅動與selenium-server 本地jar包,一般情況下這個都是會失敗的,因為這兩個資源都在google服務器那,所以可以利用瀏覽器翻墻單獨下載,地址如下:

        1.Chrome Driver地址,一般下載chromedriver_2.9.zip這個文件.

        2.selenium-server 本地jar包 下載,一般下載selenium-server-standalone-2.40.0.jar這個文件.

        然后把selenium-server拷到protractor包里的selenium文件夾里去,假如上面的命令超時之后,這里也會出現文件不過是空的,直接替換就可以;還要把chromedriver_2.9.zip解壓之后的文件拷到這里

        最后運行下面的命令可以看到測試結果了

        代碼如下:
        npm run protractor

        想了解更多關于ng種子項目里的命令行,可以點擊這里查看

        總結

        ng的e2e測試要比單元測試配置要繁瑣的多,不過它能做的事情也很多,非常值的你也試一試,有什么問題可以回復到評論里去.

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        angularjs中的e2e測試實例_AngularJS

        angularjs中的e2e測試實例_AngularJS:在上一篇文章里有講到ng的單元測試,今天來說說e2e(端對端)測試. 當我們測試某個模塊的單個功能點時,單元測試最適合,不過當面臨用戶進行多個頁面交互的時候產生bug了,單元測試就不行了,這時候就得用e2e來模擬用戶操作還原問題現場.當然利用e2e測試也能夠測
        推薦度:
        標簽: 測試 angularjs e2e
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: av片在线观看永久免费| 中文字幕亚洲综合久久综合| 男人和女人高潮免费网站| 波多野结衣久久高清免费| 97久久国产亚洲精品超碰热| 无人在线观看免费高清视频| 亚洲乱码在线播放| 免费视频淫片aa毛片| 亚洲大尺度无码无码专线一区| 在线精品免费视频无码的| 国产午夜亚洲精品| 国产成人青青热久免费精品| 美女被艹免费视频| 伊人婷婷综合缴情亚洲五月| a毛片在线免费观看| 亚洲综合区图片小说区| 一本无码人妻在中文字幕免费| 最新亚洲卡一卡二卡三新区| 永久免费毛片手机版在线看| 久久久久久久国产免费看| 色拍自拍亚洲综合图区| 成人免费在线视频| 在线播放高清国语自产拍免费| 亚洲日本VA中文字幕久久道具| 全部免费毛片在线| 97无码人妻福利免费公开在线视频 | 亚洲国产精品久久| 100000免费啪啪18免进| 午夜亚洲国产成人不卡在线| 一级中文字幕乱码免费| 亚洲尹人九九大色香蕉网站| 国产免费毛不卡片| 一个人看的www视频免费在线观看| 亚洲AV无码专区国产乱码电影| 欧美a级在线现免费观看| 国产成人亚洲综合在线| 久久91亚洲人成电影网站| 99久久综合国产精品免费| 久久毛片免费看一区二区三区| 亚洲精品午夜视频| 亚洲精品无码久久久|