版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
如何進(jìn)?前端?動(dòng)化測(cè)試?轉(zhuǎn)?專欄:前端之殤要是你碰到前端?程師朋友,那聊聊瀏覽器的兼容性準(zhǔn)是沒(méi)錯(cuò),這和碰到英國(guó)朋友就談天?是?個(gè)道理。?部分程序員朋友們?定會(huì)捶胸頓?,連連訴苦,不過(guò)如果對(duì)??時(shí)語(yǔ)塞,或者欲???,請(qǐng)拍拍他/她肩膀說(shuō):“沒(méi)事,過(guò)兩年出了新瀏覽器?是?條好漢?!痹谇岸私纾瑸g覽器兼容性是讓?程師們頭疼的問(wèn)題,對(duì)于經(jīng)驗(yàn)豐富的?來(lái)說(shuō),很清楚瀏覽器有哪些坑,但是對(duì)于?部分程序員,最可怕的是代碼明明在這個(gè)瀏覽器運(yùn)?得很好,但是到了另?個(gè)瀏覽器中就不能正常運(yùn)?了。對(duì)于這部分的程序員,保障代碼能正常運(yùn)?的?法便是能盡早發(fā)現(xiàn)問(wèn)題,然后將其解決。通常情況下,發(fā)現(xiàn)兼容性問(wèn)題的?法莫過(guò)于將程序在各個(gè)瀏覽器中執(zhí)??遍,但這是極其浪費(fèi)??和時(shí)間的,最省?的?法也需要在每次版本的更迭時(shí)重復(fù)?遍測(cè)試?作。對(duì)于不同的兼容性要求,測(cè)試需要的時(shí)間各不相同,若是只?持最新版本的瀏覽器,那么便測(cè)試3、4個(gè)瀏覽器即可,但是對(duì)于兼容性要求?的程序,有可能要測(cè)試10個(gè)瀏覽器以上。對(duì)于中?型公司來(lái)說(shuō),如果沒(méi)有專職的測(cè)試?員,這樣的測(cè)試耗時(shí)是致命的。若進(jìn)?嚴(yán)格測(cè)試,則會(huì)拖慢項(xiàng)?進(jìn)度,倘若敷衍了事,那程序的質(zhì)量便沒(méi)法保證。本?將作為多瀏覽器?動(dòng)化測(cè)試的第?篇?章,將以項(xiàng)?A作為例?,給讀者從頭介紹如何進(jìn)?本地多瀏覽的?動(dòng)化測(cè)試?作,包括測(cè)試的原理、測(cè)試框架的選取、測(cè)試?程的搭建和實(shí)現(xiàn)等。在下?篇?章中將介紹如何使?云服務(wù)實(shí)現(xiàn)更多瀏覽器的測(cè)試?作。另外“從?門到不放棄”系列將給讀者們帶來(lái)更多從零開(kāi)始的前端實(shí)踐案例,諸如前端組件庫(kù)設(shè)計(jì)與實(shí)施、項(xiàng)??動(dòng)化構(gòu)建等案例,歡迎?家關(guān)注本系列的其他?章。?窺測(cè)試測(cè)試是?個(gè)龐?的主題,包括各種分類的測(cè)試,諸如?盒測(cè)試/?盒測(cè)試、/集成測(cè)試/端到端測(cè)試等。通常程序員在測(cè)試??的代碼的時(shí)候?得最多的便是單元測(cè)試,但是因?yàn)闇y(cè)試也是需要代價(jià),很多?是不喜歡寫測(cè)試的,甚?是?點(diǎn)都不寫。當(dāng)然今天我們不是要討伐諸位,?是希望讀者能從?中受益,從?個(gè)測(cè)試??可以??動(dòng)?搭建??的測(cè)試?程。在多瀏覽器的?動(dòng)化測(cè)試,我們多半是進(jìn)?端到端的測(cè)試?作,??部分是?粒度的單元測(cè)試。端到端測(cè)試測(cè)試模擬?戶的?為。在Web應(yīng)?程序中,他們會(huì)啟動(dòng)服務(wù)器,打開(kāi)瀏覽器,模擬?戶的?為進(jìn)?點(diǎn)擊、輸?、提交等動(dòng)作,斷?瀏覽器中發(fā)?了特定的事情或者是得到了期待的結(jié)果,從?讓我們相信功能可以正常的運(yùn)?。?單元測(cè)試根據(jù)代碼單元的公共API運(yùn)?它們。這些測(cè)試需要?jiǎng)?chuàng)建?個(gè)類的實(shí)例,使?特定的輸?調(diào)?它的?法,斷?被調(diào)?的?法達(dá)到了預(yù)期的效果。在下?中我們會(huì)看到這兩種測(cè)試的實(shí)踐,當(dāng)然有時(shí)候區(qū)分度并不?,可能?法明顯地區(qū)分哪些是端對(duì)端測(cè)試哪些是單元測(cè)試,有時(shí)候他們是混合起來(lái)的,不過(guò)只要記住我們的?標(biāo)是保證功能可以正常運(yùn)?救?夠了。在瀏覽器的測(cè)試中,Selenium可謂是最重要的?具之?。簡(jiǎn)單來(lái)說(shuō)Selenium的作?是"AutomateBrowsers"——讓瀏覽器可以?動(dòng)化起來(lái)的?具。它提供了統(tǒng)?的接?,讓?戶可以使?不同的編程語(yǔ)?,調(diào)?其接?來(lái)模擬?戶的操作,例如點(diǎn)擊,移動(dòng)等操作?;旧?切??操作的?為都可以通過(guò)Selenium的API進(jìn)?觸發(fā)操作。我們將Selenium看作是??的代理,幫程序員完成?切???的活。測(cè)試的技術(shù)?案選擇在進(jìn)?項(xiàng)?實(shí)踐前,很重要的?項(xiàng)?作是選擇合適的技術(shù)棧。好?在前端開(kāi)發(fā)時(shí)應(yīng)該選擇React,Vue還是Angular作為框架?樣,前端的測(cè)試?作也需要選擇?套技術(shù)棧。很多時(shí)候?家在制定技術(shù)棧時(shí)容易?偏,在選擇時(shí)不是選擇最合適的框架,?是選擇最熱門的框架。當(dāng)然?定程度上熱門的框架能反應(yīng)其受歡迎程度,可能是因?yàn)槠涑霰姷膬?yōu)點(diǎn),如較?的開(kāi)發(fā)效率、?效的渲染特性或者是活躍的社區(qū)。在前端開(kāi)發(fā)中,很容易有這樣的感受,就是只要半個(gè)?沒(méi)有關(guān)注業(yè)界的最新動(dòng)態(tài),就感覺(jué)恍若隔世,新的解決?案層出不窮,讓?喘不過(guò)?。就作者本?經(jīng)驗(yàn)來(lái)說(shuō),已經(jīng)過(guò)了慌亂的年紀(jì),再也不會(huì)盲?地追尋新技術(shù),?轉(zhuǎn)向關(guān)注技術(shù)背后解決的痛點(diǎn),就好像2C創(chuàng)業(yè)者們嘴上?說(shuō)的?戶痛點(diǎn)?樣。在介紹本?涉及項(xiàng)?的技術(shù)棧之前,需要提醒諸位,此處的技術(shù)選擇并不?定完全適?于諸位的項(xiàng)?,請(qǐng)各位三思?測(cè)。?前市場(chǎng)上有眾多的測(cè)試框架,測(cè)試斷?庫(kù)甚?是全套的測(cè)試解決?案。Karma、Jasmine和Mocha是?家熟知的測(cè)試框架,?chai,should.js是流?的斷?庫(kù),另外在不同的技術(shù)社區(qū)還有?成?套的測(cè)試技術(shù),?如React社區(qū)中的Jest和Enzyme都是受開(kāi)發(fā)者喜愛(ài)的測(cè)試框架和庫(kù),最近?些新的并?測(cè)試解決?案也?漸流?,如AVA、Intern。本?中的實(shí)踐來(lái)?于項(xiàng)?A,在項(xiàng)?測(cè)試前期我們分析了測(cè)試需求,我們希望整個(gè)測(cè)試?案能滿??下要求:?持端到端測(cè)試對(duì)接云測(cè)試服務(wù)?便本地測(cè)試和云測(cè)試切換?便提供封裝的瀏覽器操作接?測(cè)試?例可以快速遷移到其他框架下執(zhí)?考量了以上的需求,我們認(rèn)為NightWatch.js是?款?常合適的測(cè)試解決?案。當(dāng)然其他的測(cè)試框架也基本能滿?需求,但是從?便易?性上考慮,我們最后采?了NightWatch.js,該?案不僅提供簡(jiǎn)易封裝的瀏覽器代理操作API,還給我們提供了?便便捷的云測(cè)試配置(下?篇?章將著重介紹此內(nèi)容),就憑這兩點(diǎn)就已經(jīng)?常吸引我們了。對(duì)于前端測(cè)試新?,強(qiáng)烈推薦試?此框架,讓你可以迅速完成曾經(jīng)畏?卻步的測(cè)試?作。項(xiàng)?實(shí)踐項(xiàng)?A的本地測(cè)試實(shí)踐是需要分別在兩臺(tái)電腦上的多瀏覽器中執(zhí)?測(cè)試,兩臺(tái)電腦分別是Windows系統(tǒng)和Mac系統(tǒng),包括了IE、Firefox(windows/mac)、Chrome(windows/mac)、Safari等最新的主流瀏覽器。兩臺(tái)機(jī)?的測(cè)試是分別執(zhí)?的,我們通過(guò)Jenkins分別定期執(zhí)?機(jī)?上的測(cè)試任務(wù),將測(cè)試結(jié)果通過(guò)郵件的?式反饋給開(kāi)發(fā)?員。Jenkins是?個(gè)持續(xù)集成的平臺(tái),關(guān)于如果使?Jenkins請(qǐng)各位??Google..在接下來(lái)的?章中,我們將只介紹在?臺(tái)機(jī)?上的?程實(shí)踐,對(duì)于多個(gè)機(jī)?的測(cè)試需要將如下的?程部署到不同的機(jī)?,再使?諸如Jenkins之類的?具進(jìn)?定期執(zhí)?就可以。開(kāi)始?作前,我們需要將技術(shù)關(guān)系了然于?。我們?cè)贜ightwatch框架下使?Selenium中的driver對(duì)瀏覽器進(jìn)?操作。不同的瀏覽器有不同的Driver,整個(gè)技術(shù)棧圖如圖1所?:圖1在圖中TestRunner即為Nightwatch,我們使?Nightwatch提供封裝過(guò)的API進(jìn)?TestCase的書寫。下?我們將從零開(kāi)始?把?教你如何使?Nightwatch啟動(dòng)你的第?個(gè)Testcase。1.安裝測(cè)試所需包在??的前端項(xiàng)?中安裝Nightwatch.js,并將其保存在package.json的devDependencies中。npminstallnightwatch--save-dev2.增加npmscript??在中加?test指令??,該條指令的具體?作是使?test.conf.js的配置,執(zhí)?名為'A'、'B'、'C'的配置項(xiàng)(若為了直觀查看測(cè)試的內(nèi)容,可根據(jù)項(xiàng)?的測(cè)試瀏覽器和版本將名字設(shè)為,safari9.0這樣的名字,此處設(shè)為A,B,C是避免?家誤認(rèn)為是指令是?動(dòng)根據(jù)名字去尋找匹配的瀏覽器)。更多命令的詳解請(qǐng)參照Nightwatch?檔。"scripts":{..."test":"./node_modules/.bin/nightwatch-cconf/test.conf.js-eA,B"...}3.配置Nightwatch完成指令??的配置?作,接下來(lái)需要完成test.conf.js的配置?作。在本地測(cè)試中,我們使?Selenium對(duì)瀏覽器進(jìn)?代理操作。配置使?本地Selenium操作本機(jī)瀏覽器Nightwatch有三個(gè)重點(diǎn):Selenium的配置:配置好Seleniumjar包的路徑,該包從Selenium的官?上下載,host和port按照下?配置書寫。driver的配置:cli_args是Selenium參數(shù),在這我們指定了chromedriver和geckodriver的路徑,chromedriver是?來(lái)操作chrome,geckodriver?來(lái)操作safari和firefox(顧名思義,geckodriver?持基于gecko的瀏覽器),都可以從?上進(jìn)?下載。在項(xiàng)?A中,我們將其下載到前端下?的bin?錄下。測(cè)試?標(biāo)瀏覽器的配置:也就是A和B,每?個(gè)Object都是?個(gè)配置項(xiàng),A是測(cè)試Chrome瀏覽器,B是測(cè)試Safari瀏覽器,如果沒(méi)有指定版本,就使?本地最新版,更多的配置可以參考Nightwatch?檔,可以指定系統(tǒng)、版本,并可以啟動(dòng)、禁?瀏覽器的某些特性,如Cookie。selenium:{"start_process":true,"server_path":"./bin/-3.4.0.jar","host":"","port":4444,"cli_args":{"webdriver.chrome.driver":"bin/chromedriver","webdriver.gecko.driver":"bin/geckodriver"}},...test_settings:{A:{desiredCapabilities:{'browserName':'chrome'}},B:{desiredCapabilities:{'browserName':'safari'}}}...諸位需要根據(jù)??機(jī)?的實(shí)際情況進(jìn)?配置,如果是Windows系統(tǒng),那么將沒(méi)有,?使?IE瀏覽器,這樣則會(huì)需要IE瀏覽器對(duì)應(yīng)的driver。4.書寫測(cè)試?例在各項(xiàng)準(zhǔn)備?作完畢后,就只差測(cè)試?例了,下?是項(xiàng)?A的?個(gè)測(cè)試?例的?段,?于檢測(cè)頁(yè)?上id為testid的DOM中的內(nèi)容字符,我們期待字符的長(zhǎng)度為32,如果該字符為32個(gè)字符,那么測(cè)試通過(guò),否則測(cè)試失敗。需要注意的是因?yàn)榇薉OM是動(dòng)態(tài)插?的,所以在判斷其字符前,我們使?waitForElementVisible來(lái)檢查瀏覽器中testid的DOM是否已經(jīng)顯?,若在5秒內(nèi)顯?則進(jìn)?下?的?作,如果沒(méi)有顯?,那么測(cè)試也會(huì)失敗。module.exports={'@tags':['unit'],'unittesting':function(browser){(`http://localhost:3010/test`).waitForElementVisible('#testid',5000).getText("#testid",function(result){this.assert.equal(result.value.length,32);});browser.end();}};5.運(yùn)?測(cè)試到此為?,我們簡(jiǎn)單的測(cè)試?程已經(jīng)搭建完畢。現(xiàn)在我們回過(guò)頭去,執(zhí)?我們最開(kāi)始配置的test指令,啟動(dòng)測(cè)試任務(wù)。你需要在命令中執(zhí)?:如果順利的話,此時(shí)你會(huì)看到瀏覽器?動(dòng)地打開(kāi)關(guān)閉,很快就能從終端上看到如下的測(cè)試結(jié)果,圖2展?的是多個(gè)測(cè)試?例成功的結(jié)果,圖3展?的是測(cè)試失敗的結(jié)果(如遇到?法測(cè)試或者其它異常情況請(qǐng)Google。:D)。圖2圖3從測(cè)試結(jié)果中可以查看測(cè)試?例的測(cè)試結(jié)果,包括測(cè)試的瀏覽器、未通過(guò)測(cè)試的信息詳情等。?此,?個(gè)從零開(kāi)始的本地測(cè)試實(shí)踐教程結(jié)束。本地測(cè)試與云測(cè)試因?yàn)楸镜貫g覽器的類型有限,?般我們更多地使?本地的多瀏覽器測(cè)試來(lái)完成功能驗(yàn)證的?作,對(duì)于要求更嚴(yán)的兼容性測(cè)試,我們將采?云測(cè)試的?式。云測(cè)試即云服務(wù)提供商將向我們提供更多的云主機(jī),每臺(tái)主機(jī)上運(yùn)?著不同版本的瀏覽器。通過(guò)使?云測(cè)試服務(wù),我們就能將測(cè)試覆蓋到更多類型、版本的瀏覽器。在下?篇?章中,我們?nèi)砸皂?xiàng)?A為例?,使?Nightwatch框架,在此?章的基礎(chǔ)上介紹云測(cè)試和云測(cè)試?程的搭建。轉(zhuǎn)?:在上?篇?章中,擼主已?把?教?家如何從零開(kāi)始構(gòu)建?個(gè)本地?動(dòng)化測(cè)試?程。如果你沒(méi)有看過(guò)上?篇?章,請(qǐng)先逐字閱讀。本?將在上?篇?章的基礎(chǔ)上主要為?家介紹兩個(gè)內(nèi)容:?是如何免費(fèi)地搭建多機(jī)的?動(dòng)化測(cè)試環(huán)境,?是如何使?云測(cè)試服務(wù)進(jìn)?360度?死?的?動(dòng)化測(cè)試。信息量?,請(qǐng)各位閱后勿焚,動(dòng)?牢記。本地測(cè)試鞭長(zhǎng)莫及由于?臺(tái)計(jì)算機(jī)?持的瀏覽器種類有限,如?臺(tái)mac上可以安裝safari,chrome,firefox,opera等,?且通常只能安裝?個(gè)版本的產(chǎn)品,所以本地測(cè)試多?于檢驗(yàn)功能邏輯是否正確,或者是檢驗(yàn)特定瀏覽器的特定功能。對(duì)于未知的兼容性測(cè)試,單憑本地測(cè)試是沒(méi)法進(jìn)?的。下?中介紹的?法將提供給測(cè)試者?種全新的測(cè)試體驗(yàn),通過(guò)遠(yuǎn)程測(cè)試的?式對(duì)??的代碼進(jìn)?測(cè)試。遠(yuǎn)程測(cè)試需要搞清楚兩個(gè)概念,?是客戶端(Client),?是服務(wù)端(Server),Client是?于運(yùn)?testcases代碼的地?,Server則是瀏覽器所在地。通過(guò)Server上的?些servlet來(lái)連接Client和Server上的瀏覽器,實(shí)現(xiàn)將test中的?例?為在遠(yuǎn)程端的瀏覽器上執(zhí)?。通過(guò)瀏覽器和test執(zhí)?宿主機(jī)的分離,使得test能在更多的瀏覽器上執(zhí)?,并且更易于擴(kuò)展測(cè)試瀏覽器的數(shù)量。在下?的實(shí)踐當(dāng)中,讀者會(huì)對(duì)Client和Server有更清楚的了解,在此不再贅述。??的云測(cè)試環(huán)境既然測(cè)試代碼要和瀏覽器環(huán)境分割開(kāi)來(lái),那么我們需要在前?的基礎(chǔ)上將瀏覽器安裝到其他的環(huán)境中,?不是將瀏覽器和測(cè)試的Node測(cè)試環(huán)境放在同?臺(tái)機(jī)?。安裝完成之后需要使?服務(wù)端的Servlet也就是Selenium提供的將測(cè)試環(huán)境和瀏覽器連接起來(lái)。具體的步驟如下:1.尋找到?臺(tái)可?的主機(jī):?論是實(shí)體機(jī)還是虛擬機(jī)都是可以的,不過(guò)需要主機(jī)可以接?到測(cè)試運(yùn)?主機(jī)的?絡(luò)。2.在主機(jī)上安裝瀏覽器:具體安裝的瀏覽器類型和版本根據(jù)操作系統(tǒng)和測(cè)試需求?定,例如可以在windows操作系統(tǒng)上安裝IE,firefox等瀏覽器,在Linux系統(tǒng)安裝chrome,firefox等瀏覽器,在Mac系統(tǒng)上安裝safari,chrome等瀏覽器。3.下載對(duì)應(yīng)瀏覽器的driver到Server主機(jī)上。因?yàn)閟elenium需要使?不同的driver來(lái)啟動(dòng)不同的瀏覽器,如同上?篇?章提到的bin?錄下的driver可執(zhí)??件,此時(shí)要將需要測(cè)試瀏覽器對(duì)應(yīng)的driver下載到server上,然后再通過(guò)測(cè)試?程的配置告訴selenium-server-standalone這些driver在哪,從?執(zhí)?它們來(lái)操作瀏覽器。chromedriver(?于chrome)下載地址:geckodriver(可?于firefox,safari)下載地址:4.在主機(jī)上下載并啟動(dòng)SeleniumServer:該Server實(shí)際上是?個(gè)Java?程序,?于client和server之間的通信(有關(guān)selenium原理的?章請(qǐng)關(guān)注《搞不懂》系列)。?先在Selenium的官?上下載selenium-server-standalone-{VERSION}.jar,然后啟動(dòng)該Jar包。java-jarselenium-server-standalone-{VERSION}.jar如果主機(jī)沒(méi)有安裝JRE,則需要再安裝java的運(yùn)?環(huán)境或者是直接安裝jdk。5.修改測(cè)試項(xiàng)?的配置?件:還記得啟動(dòng)測(cè)試時(shí)需要指定的配置?件嗎?這個(gè)配置?件test.conf.js?常重要,?于配置selenium以及測(cè)試的瀏覽器,當(dāng)我們改變使?遠(yuǎn)程server的瀏覽器作為測(cè)試?標(biāo)時(shí),當(dāng)然需要修改配置?件。我們需要將配置?件中的selenium項(xiàng)修改為如下形式:selenium:{"start_process":true,//server的ip地址"host":"","port":4444,"cli_args":{//chromedriver在server主機(jī)上的?件路徑"webdriver.chrome.driver":"/home/bin/chromedriver",//geckodriver在server主機(jī)上的?件路徑"webdriver.gecko.driver":"/home/bin/geckodriver"}}對(duì)于的設(shè)置請(qǐng)參照上?,然后按照??安裝的瀏覽器版本進(jìn)?修改。6.啟動(dòng)測(cè)試:?切準(zhǔn)備好了之后,在client主機(jī)上,也就是測(cè)試代碼運(yùn)?的機(jī)?上便可啟動(dòng)測(cè)試。"scripts":{..."test":"./node_modules/.bin/nightwatch-cconf/test.conf.js-eA,B"...}??搭建測(cè)試云環(huán)境的過(guò)程其實(shí)并不復(fù)雜,只需要在將和瀏覽器安裝到其他主機(jī)即可,對(duì)于client上的代碼不需要改動(dòng),只需要改動(dòng)配置中的selenium配置。但是很快測(cè)試者會(huì)發(fā)現(xiàn),當(dāng)我們需要測(cè)試更多的機(jī)?,???的?式去維護(hù)這些server是?件費(fèi)時(shí)費(fèi)?的事,也消耗了公司的計(jì)算資源。有沒(méi)有更好的辦法讓我們既可以全?的測(cè)試??的代碼?可以不?費(fèi)盡?思維護(hù)主機(jī)?答案是有,請(qǐng)繼續(xù)閱讀。云測(cè)試服務(wù)對(duì)于繁瑣重復(fù)的?程任務(wù),商家們總是能想到賺錢的辦法,這不對(duì)于上?我們碰到的?煩就有商家提供了相應(yīng)的產(chǎn)品。該產(chǎn)品為測(cè)試者們提供?數(shù)個(gè)測(cè)試瀏覽器,測(cè)試者不需要關(guān)?這些瀏覽器在何處運(yùn)?,應(yīng)該怎么樣維護(hù),只需要?個(gè)服務(wù)地址便可以將??的測(cè)試頁(yè)?跑在這些瀏覽器上,其實(shí)這個(gè)服務(wù)地址和之前我們??搭建的Serverip類似,只不過(guò)如果使???的測(cè)試云,使?不同的測(cè)試主機(jī)時(shí),需要?動(dòng)更改host。?這些商家提供了?個(gè)類似分銷中?,?于流量分發(fā),所以我們只需要??個(gè)地址便可實(shí)現(xiàn)使?不同的主機(jī)進(jìn)?測(cè)試。?前提供此類服務(wù)的商家有很多,如browserstack、saucelabs、crossbrowsertesting等,?家可以根據(jù)???頭黃?和測(cè)試的需要選擇性價(jià)??的服務(wù)。本?將使?browserstack作為例?為?家科普此類服務(wù),不過(guò)它并不是擼主的?錢爸爸,請(qǐng)?家放下??的猜疑。根據(jù)我們??搭建云測(cè)試環(huán)境的經(jīng)驗(yàn),我們將browserstack的測(cè)試后臺(tái)架構(gòu)猜想為下圖所?。我們不關(guān)?該架構(gòu)是否是真實(shí)的實(shí)現(xiàn),但是這是合理的理論猜想,希望此圖能讓我們對(duì)此服務(wù)有個(gè)?概的技術(shù)了解:selenium:{"start_process":false,"host":"","port":80},common_capabilities:{'build':'',//Browserstack的username對(duì)應(yīng)配置項(xiàng)'browserstack.user':process.env.BROWSERSTACK_USERNAME',//Browserstack的key對(duì)應(yīng)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年幼兒園下學(xué)期工作計(jì)劃及安排
- 市社區(qū)計(jì)劃生育工作調(diào)研報(bào)告
- 上半學(xué)期話劇社工作計(jì)劃書
- 數(shù)學(xué)中高年級(jí)備課組教學(xué)工作計(jì)劃
- 社區(qū)工作計(jì)劃書例文
- 銀行員工培訓(xùn)計(jì)劃范文怎么寫
- 更新教學(xué)技術(shù)提高教學(xué)效率-國(guó)培計(jì)劃心得
- 《行星齒輪機(jī)構(gòu)結(jié)構(gòu)》課件
- 《蛋白質(zhì)專題定》課件
- 《Photoshop CS5基礎(chǔ)教程》課件-第1章
- 護(hù)理的院感質(zhì)控
- 有機(jī)化學(xué)(上)(華東理工大學(xué))智慧樹知到答案2024年華東理工大學(xué)
- 3 空氣怎樣流動(dòng)(教學(xué)設(shè)計(jì))-湘科版科學(xué)三年級(jí)上冊(cè)
- 人教版八年級(jí)數(shù)學(xué)上冊(cè)第15章《分式》全部教案(共12課時(shí))
- 創(chuàng)業(yè)實(shí)務(wù)智慧樹知到期末考試答案章節(jié)答案2024年山東大學(xué)
- 《兩辦意見(jiàn)》《八條硬措施》《煤礦安全生產(chǎn)條例》考試試題
- 精神科護(hù)士年終總結(jié)個(gè)人2024
- 北京2024年北京市疾病預(yù)防控制中心面向應(yīng)屆生招聘38人筆試歷年典型考題及考點(diǎn)附答案解析
- 健康管理實(shí)務(wù)考試題及答案
- 中國(guó)特色社會(huì)主義事業(yè)的總體布局與五位一體發(fā)展戰(zhàn)略
- 電梯日(日管控、周排查、月調(diào)度檢查表格)
評(píng)論
0/150
提交評(píng)論