<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          想不想用一個(gè)代碼來解放雙手(Python自動(dòng)化)selenium

          共 3005字,需瀏覽 7分鐘

           ·

          2021-03-26 06:01

          關(guān)注我們,設(shè)置標(biāo)星

          下午好啊

          又到了見面的時(shí)候啦

          土豆本期來跟大家分享一個(gè)關(guān)于解放雙手的

          python的自動(dòng)化

          有沒有很期待

          Selenium



          簡(jiǎn)介

          Selenium是ThoughtWorks員工在業(yè)余時(shí)間開發(fā)并維護(hù)的開源項(xiàng)目,并且在ThoughtWorks的項(xiàng)目中被廣泛應(yīng)用。簡(jiǎn)單地說,Selenium是一個(gè)自動(dòng)化的web應(yīng)用功能測(cè)試工具。


          我們稍微八卦一下,Selenium有趣的是它名字的來歷:在Selenium出現(xiàn)之前,當(dāng)時(shí)最著名的web應(yīng)用功能測(cè)試工具M(jìn)ercury Quanlity Center,但那是一個(gè)商業(yè)工具,功能強(qiáng)大卻也價(jià)格不菲,常常讓開發(fā)者們又愛又恨。所以,自己動(dòng)手開發(fā)開源功能測(cè)試工具的ThoughtWorker們把這個(gè)工具叫做Selenium——“mercury”有“水銀”的意思


          而“selenium”(硒元素)恰好是專解汞中毒的特效藥。



          八卦到此,轉(zhuǎn)入正題,Selenium的主要特點(diǎn)是其開源性、跨平臺(tái)性以及眾多的編程語言支持,你可以用html編寫測(cè)試用例,也可以用python、java、php甚至Linux shell來編寫測(cè)試用例。
          如此多的特性,使Selenium最近幾年成為越來越多QA的Web應(yīng)用功能測(cè)試的首選自動(dòng)化測(cè)試工具。




          我們先來了解下Selenium的框架與原理

          Selenium分為Core與RC(Remote Control)兩個(gè)部分,其中Core是基礎(chǔ)的,直接在HTML Table里編寫測(cè)試代碼的模塊,而Remote Control則支持用Java等語言編寫測(cè)試用例。

          最近,Selenium又推出了新的Remote Grid, 支持多任務(wù)并發(fā),可以看成是多個(gè)RC的集合。同時(shí),Selenium也提供了一個(gè)腳本錄制器Selenium-IDE,該錄制器是一個(gè)基于Firefox的插件。而無論Core模式,還是RC模式,其最終都是通過Java Script來實(shí)現(xiàn)對(duì)頁(yè)面元素的控制,它提供了豐富的指定Html頁(yè)面元素和操作頁(yè)面元素的方法。


          Selenium Core/Selenium IDE


          Selenium Core是Selenium的核心部分,它由一些純js代碼組成, 可以運(yùn)行在windows/linux的不同browser上, 而IDE是在core的基礎(chǔ)上的一種應(yīng)用, 通過UI實(shí)現(xiàn)類似QTP/Winner的腳本錄制回放功能。



          一、Core的運(yùn)行模式主要有:


          1. Selenium IDE 運(yùn)行

          利用IDE插件加載core引擎,運(yùn)行測(cè)試腳本。主要用于腳本錄制調(diào)試,類似于開發(fā)工具的調(diào)試,一般不應(yīng)用于測(cè)試


          2. 部署于被測(cè)對(duì)象服務(wù)器上,以http方式運(yùn)行

          將core核心引擎和測(cè)試代碼部署與被測(cè)對(duì)象的Web服務(wù)器上,以http請(qǐng)求的方式運(yùn)行。


          3. 本地模式HTA and Chrome

          HTA模式是在IE下運(yùn)行,Chrome是在Firefox下運(yùn)行。這個(gè)兩個(gè)的原理都是利用瀏覽器的本地化模式,調(diào)用主html文件--Test Runner 加載核心引擎庫(kù),執(zhí)行test suite里的測(cè)試用例。



          二、Selenium Core的一些核心js引擎文件:

          selenium-api.js :Selenium的主API庫(kù)

          selenium-browserbot.js :Selenium的主函數(shù)庫(kù),命令的具體方法都在該庫(kù)中。


          selenium-browserdetect.js : 瀏覽器版本檢測(cè)庫(kù)

          selenium-logging.js : 記錄日志庫(kù)


          user-extensions.js : 用來擴(kuò)展selenium的文件;

          用戶自己編寫的函數(shù)和擴(kuò)展的命令都應(yīng)該放在這個(gè)文件中。當(dāng)然,你也可以放在其他地方。


          xmlextras.js : 第三方JavaScript庫(kù)。主要用于DHTML及XML的解析。



          三、Selenium IDE說明:

            Selenium IDE是通過監(jiān)聽用戶對(duì)html頁(yè)面的操作來錄制腳本的,是真正能夠監(jiān)聽用戶對(duì)html頁(yè)面的操作的錄制工具。Selenium IDE可以生成7種語言的腳本:

          html,java,C#,ruby,python,perl,php。


            你可以直接在FireFox中將Selenium IDE打開,執(zhí)行html格式的腳本。 


            如果你要執(zhí)行其他語言格式的Selenium腳本,那么,你需要使用Selenium服務(wù)器,使用RC模式。6種語言的使用方法都是一樣的。



          Selenium RC

          Selenium RC模式,是客戶端利用各種編程語言,通過網(wǎng)絡(luò)向Selenium Server發(fā)送指令,Selenium Server接收到測(cè)試指令后,啟動(dòng)瀏覽器并向其發(fā)出JavaScript調(diào)用實(shí)現(xiàn)對(duì)Html頁(yè)面的全面追蹤,并通過網(wǎng)絡(luò)把執(zhí)行結(jié)果返回給調(diào)用者。


          Selenium Server的實(shí)現(xiàn)原理是其打開瀏覽器時(shí),把自己的JavaScript文件嵌入網(wǎng)頁(yè)中。然后Selenium的網(wǎng)頁(yè)通過frame嵌入目標(biāo)網(wǎng)頁(yè)。這樣,就可以使用Selenium的JavaScript對(duì)象來控制目標(biāo)網(wǎng)頁(yè)。


          Selenium客戶端一般使用單元測(cè)試技術(shù)實(shí)現(xiàn),通過判斷返回的結(jié)果與預(yù)期是否一致來決定程序是否運(yùn)行正確。



          Selenium Grid

          Selenium Grid是在Selenium RC的基礎(chǔ)上,為了解決RC模式不能并發(fā)調(diào)用的問題而推出的一種解決方案。可以實(shí)現(xiàn)多環(huán)境,同時(shí)測(cè)試的需求。其具體原理如下:


          客戶端利用各種編程語言,并發(fā)的方式,通過網(wǎng)絡(luò)向Selenium Grid發(fā)送指令,Selenium Grid接收到測(cè)試指令后,根據(jù)不同的并發(fā)指令,啟動(dòng)對(duì)應(yīng)多個(gè)的Selenium Server。然后Grid把指令發(fā)送給對(duì)應(yīng)Server,每個(gè)Server的處理原理與RC相同。


          由上面原理,可以看出,Grid 只是提供運(yùn)行腳本的環(huán)境,無法決定腳本以什么樣的形式去跑(并行的方式,或者多環(huán)境的方式)。腳本以什么樣的形式跑,由腳本本身和腳本的runner (一般用junit或者TestNG)的配置所決定.



          幾個(gè)概念


          操作(action)和斷言(assertion) 


          操作(action):操作模擬用戶與Web應(yīng)用程序的交互。例如,單擊一個(gè)按鈕和填寫一個(gè)表單,這些都是常見的用戶操作,可以用Selenium命令來自動(dòng)化這些操作。


          斷言(assertion):斷言驗(yàn)證一個(gè)命令的預(yù)期結(jié)果。常見的斷言包括驗(yàn)證頁(yè)面內(nèi)容或當(dāng)前位置是否正確。在Selenium網(wǎng)站上可以找到可用命令的完整列表。通過Selenium命令,腳本編寫者可以描述browser bot在瀏覽器中所執(zhí)行的操作


          Test Suite和Test Case:

          Test Suite: 一組測(cè)試的集合,在實(shí)際中往往一個(gè)模塊對(duì)應(yīng)一個(gè)Test Suite,在Seleium中顯示在左上角。


          Test Case:一個(gè)測(cè)試用例,包含多個(gè)action 或者斷言。






          支持中國(guó)棉花


          好啦,本期的內(nèi)容就先到這里啦

          我們下期再見





          關(guān)注我們

          Python日志

          一個(gè)正經(jīng)搞知識(shí)的公眾號(hào)




          部分內(nèi)容來自網(wǎng)絡(luò)


          瀏覽 68
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一级a一级a爰片免费免免小说 | 爱爱激情综合 | 亚洲免费观看无码爽片视频 | 天天五月丁香五月 | 久操视频免费观看 |