国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

            手機(jī)站
            千鋒教育

            千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

            千鋒教育

            掃一掃進(jìn)入千鋒手機(jī)站

            領(lǐng)取全套視頻
            千鋒教育

            關(guān)注千鋒學(xué)習(xí)站小程序
            隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

            當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 關(guān)于Python 的 Web 自動(dòng)化測(cè)試的實(shí)踐

            關(guān)于Python 的 Web 自動(dòng)化測(cè)試的實(shí)踐

            來(lái)源:千鋒教育
            發(fā)布人:xqq
            時(shí)間: 2023-11-07 12:32:45 1699331565

            Web測(cè)試是軟件測(cè)試中比較的一個(gè)分支,而要實(shí)現(xiàn)Web自動(dòng)化測(cè)試則要求測(cè)試人員能熟練掌握自動(dòng)化測(cè)試工具和編程語(yǔ)言。介紹免費(fèi)開(kāi)源的Web測(cè)試工具Selenium,以及流行的編程語(yǔ)言Python。根據(jù)自動(dòng)化測(cè)試的原理,對(duì)網(wǎng)頁(yè)元素的常用定位方式,如何對(duì)頁(yè)面元素進(jìn)行操作進(jìn)行重點(diǎn)敘述。結(jié)合工作實(shí)際分析自動(dòng)化測(cè)試的基本流程,即分析測(cè)試需求、編寫(xiě)測(cè)試用例、搭建測(cè)試環(huán)境、創(chuàng)建測(cè)試腳本、執(zhí)行測(cè)試及測(cè)試結(jié)果分析。最后對(duì)自動(dòng)化測(cè)試的實(shí)踐進(jìn)行總結(jié)和展望,為后續(xù)更好地開(kāi)展測(cè)試工作奠定基礎(chǔ)。

            與手工測(cè)試類似,自動(dòng)化測(cè)試也需要制定測(cè)試計(jì)劃,根據(jù)軟件需求規(guī)格說(shuō)明書(shū)分析測(cè)試需求,使用黑盒、白盒等方法設(shè)計(jì)測(cè)試用例,在搭建好測(cè)試環(huán)境的基礎(chǔ)上使用相關(guān)語(yǔ)言編寫(xiě)自動(dòng)化腳本,執(zhí)行測(cè)試并記錄缺陷等。當(dāng)然在執(zhí)行自動(dòng)化腳本之前也需要進(jìn)行手工測(cè)試,為更好地發(fā)現(xiàn)缺陷奠定堅(jiān)實(shí)的基礎(chǔ)。

            1自動(dòng)化測(cè)試技術(shù)

            1.1測(cè)試工具

            根據(jù)被測(cè)軟件的類型不同,可以選擇不同的測(cè)試工具。例如針對(duì)桌面應(yīng)用,主流的測(cè)試工具有UTF、AutoRunner等;如果測(cè)試的是Web系統(tǒng),Selenium則是一種非常不錯(cuò)的選擇。

            Selenium是一款免費(fèi)、開(kāi)源的分布式的自動(dòng)化測(cè)試工具,對(duì)商業(yè)用戶也沒(méi)有任何限制;支持多種平臺(tái),可以在Windows、Linux、Mac和Solaris等多種操作系統(tǒng)上運(yùn)行;支持多種瀏覽器,包括IE、Firefox、Safari、Opera、Chrome等;使用方便,支持腳本錄制,可以將測(cè)試用例分布到不同的測(cè)試機(jī)器上執(zhí)行;支持多種語(yǔ)言,包括C、Java、Ruby、Python、C#等。

            1.2Python語(yǔ)言

            Python是一門(mén)優(yōu)雅而健壯的編程語(yǔ)言,它繼承了傳統(tǒng)編譯語(yǔ)言的強(qiáng)大性和通用性,同時(shí)也借鑒了簡(jiǎn)單腳本和解釋語(yǔ)言的易用性。它的特點(diǎn)包括:代碼簡(jiǎn)潔、短小,開(kāi)源、跨平臺(tái),面向?qū)ο?,可擴(kuò)展性好等,因此它被應(yīng)用于數(shù)據(jù)分析與處理、網(wǎng)絡(luò)爬蟲(chóng)、Web應(yīng)用開(kāi)發(fā)、人工智能、自動(dòng)化測(cè)試等多個(gè)領(lǐng)域。

            在自動(dòng)化測(cè)試領(lǐng)域既可以使用Python的標(biāo)準(zhǔn)庫(kù)PyUnit作為自動(dòng)化測(cè)試框架,也可以使用RobotFrame?work等自動(dòng)化測(cè)試框架來(lái)開(kāi)展工作,該框架具備良好的可擴(kuò)展性,支持關(guān)鍵字驅(qū)動(dòng),可以同時(shí)測(cè)試多種類型的客戶端或者接口,可以進(jìn)行分布式測(cè)試執(zhí)行。

            2網(wǎng)頁(yè)元素定位

            自動(dòng)化功能測(cè)試工具Selenium可以模仿人類對(duì)網(wǎng)頁(yè)進(jìn)行自動(dòng)化的操作,那么要實(shí)現(xiàn)對(duì)網(wǎng)頁(yè)元素的操作,就要能夠精準(zhǔn)地對(duì)網(wǎng)頁(yè)元素進(jìn)行定位。可以用于定位的常用的Web頁(yè)面元素的屬性有:id、name、classname、linktext、XPath和CSSSelector等。下面我們重點(diǎn)介紹常用的四種方法。

            2.1通過(guò)id屬性進(jìn)行定位

            如果Web頁(yè)面中的id不是動(dòng)態(tài)的,則一個(gè)頁(yè)面的id是唯一的。該方法通過(guò)查找Web頁(yè)面上的元素id值來(lái)獲取元素,但是對(duì)于動(dòng)態(tài)分配Web元素id的情況,這種方法不能使用。

            不難發(fā)現(xiàn)其id屬性是“kw”,因此可以使用id來(lái)進(jìn)行元素定位。driver表示為創(chuàng)建的一個(gè)webdriver對(duì)象,代碼為

            element=driver.find_element_by_id("kw")

            2.2通過(guò)linktext屬性進(jìn)行定位

            訪問(wèn)網(wǎng)頁(yè)的時(shí)候,我們可以通過(guò)超鏈接的方式鏈接到下層的網(wǎng)頁(yè)或者其他網(wǎng)站,通過(guò)查找網(wǎng)頁(yè)的linktext屬性,模擬對(duì)鏈接文本的單擊操作就可以實(shí)現(xiàn)自動(dòng)地訪問(wèn)。該定位方法僅適用于文本鏈接的場(chǎng)景,通過(guò)元素標(biāo)簽對(duì)應(yīng)的文本信息來(lái)定位元素,相對(duì)其他的元素定位方法,適用的場(chǎng)景比較有限。

            例如百度首頁(yè)上方“新聞”文字的linktext屬性是“新聞”,可以使用該屬性來(lái)進(jìn)行元素定位。

            代碼為:

            element=driver.find_element_by_link_text("新聞")

            2.3通過(guò)XPath屬性進(jìn)行定位

            XPath是英文XMLPathLanguage的簡(jiǎn)稱,即XML文檔路徑的定位語(yǔ)言。XPath基于XML的樹(shù)狀結(jié)構(gòu)進(jìn)行信息的查找,它使用路徑表達(dá)式定位XML文檔中的節(jié)點(diǎn)或節(jié)點(diǎn)集。通過(guò)記錄由根節(jié)點(diǎn)到該節(jié)點(diǎn)經(jīng)過(guò)的所有節(jié)點(diǎn)的tagName等信息,可以形成唯一一條到達(dá)該節(jié)點(diǎn)的路徑表達(dá)式。Selenium可以將這種強(qiáng)大的語(yǔ)言應(yīng)用在Web頁(yè)面元素的定位中,定位的方式通常有絕對(duì)路徑和相對(duì)路徑兩種。具體如下:

            (1)絕對(duì)路徑

            絕對(duì)路徑表達(dá)式以“/”開(kāi)頭,它從樹(shù)形結(jié)構(gòu)的根節(jié)點(diǎn)開(kāi)始,沿著樹(shù)結(jié)構(gòu)一直到目標(biāo)節(jié)點(diǎn)結(jié)束。當(dāng)元素層級(jí)很深的時(shí)候,絕對(duì)路徑表達(dá)式會(huì)過(guò)長(zhǎng),閱讀性不好,既影響查找的效率又很難進(jìn)行維護(hù),因此一般不建議使用。

            (2)相對(duì)路徑

            相對(duì)路徑表達(dá)式以“//”開(kāi)頭,它從某個(gè)節(jié)點(diǎn)開(kāi)始,沿著樹(shù)結(jié)構(gòu)一直到目標(biāo)節(jié)點(diǎn)結(jié)束。目前常用的瀏覽器谷歌、火狐等都提供了XPath的工具,可以方便地獲取XPath路徑。例如百度搜索框的XPath屬性可以通過(guò)定位到該元素,在該元素的HTML代碼使用快捷菜單“Copy->CopyXPath”獲得,其屬值為“//*[@id="kw"]”?!?/”表示當(dāng)前頁(yè)面某個(gè)目錄下;“*”是通配符,表示匹配任意的節(jié)點(diǎn);“[@id="kw"]”表示匹配的這個(gè)元素的id屬性值等于kw。

            2.4通過(guò)CSS屬性進(jìn)行定位

            層疊樣式表CSS是英文CascadingStyleSheets的簡(jiǎn)稱,是一種用來(lái)表現(xiàn)HTML或XML等文件樣式的計(jì)算機(jī)語(yǔ)言,它也可以通過(guò)瀏覽器工具查詢相關(guān)元素的CSS,從而進(jìn)行元素定位。例如百度搜索框的CSS屬性可以通過(guò)定位到該元素,在該元素的HTML代碼使用快捷菜單“Copy->Copyselector”獲得,其屬性值為#kw。代碼可以寫(xiě)成:

            element=driver.find_element_by_css_selector("#kw")

            3獲取和處理用戶操作

            Selenium庫(kù)中有一個(gè)WebDriver的API,它能使用Chrome、Firefox、IE等瀏覽器進(jìn)行Web測(cè)試,模擬用戶打開(kāi)瀏覽器,在頁(yè)面單擊鼠標(biāo),鼠標(biāo)在某個(gè)元素上懸停,進(jìn)行鍵盤(pán)各項(xiàng)操作等。Selenium測(cè)試通過(guò)模擬用戶在前端的鍵盤(pán)鼠標(biāo)等操作,觸發(fā)前端頁(yè)面事件,解析網(wǎng)頁(yè)文檔獲取相應(yīng)結(jié)果驗(yàn)證。

            3.1鼠標(biāo)事件

            鼠標(biāo)操作除了我們比較熟悉的單擊操作外,還包括右擊、雙擊、懸停和拖動(dòng)等。在WebDriver中,將這些關(guān)于鼠標(biāo)操作的方法封裝在ActionChains類提供。例如,鼠標(biāo)懸停的代碼為:

            #引入ActionChains類fromselenium.webdriver.common.action_chainsimportAction?Chains#定位元素并懸停above=driver.find_element_by_link_text("文庫(kù)")ActionChains(driver).move_to_element(above).perform()

            3.2鍵盤(pán)操作

            所有鍵盤(pán)中操作的方法由Keys類提供,它既可以模擬鍵盤(pán)的輸入,也可以模擬鍵盤(pán)按鍵,包括組合鍵(例如Ctrl+N)。模擬百度搜索框中輸入搜索關(guān)鍵字

            “Python”的代碼為:

            #引入Keys類fromselenium.webdriver.common.keysimportKeys#模擬輸入框輸入內(nèi)容driver.find_element_by_id("kw").send_keys("Python")

            3.3元素等待

            由于自動(dòng)化測(cè)試的操作速度比人工快許多,加上目前網(wǎng)頁(yè)中普遍使用AJAX技術(shù),頁(yè)面元素可能不是同時(shí)被加載,就需要設(shè)置合適的等待時(shí)間,確保元素正確地被識(shí)別。WebDriver中有兩種類型的等待:顯式等待和隱式等待。

            3.4多窗口切換

            如果在操作過(guò)程中單擊某個(gè)鏈接彈出新窗口后,就需要使用switch_to.window()方法進(jìn)行切換,從而確保后續(xù)的相關(guān)操作能順利進(jìn)行。

            3.5警告框處理

            WebDriver還可以處理由JavaScript生成的彈框,方法是使用switch_to_alert()定位到警告框,然后使用相關(guān)方法來(lái)進(jìn)行操作,使用的方法包括:

            ●text:返回警告框中的文字信息

            ●accept:接受當(dāng)前警告框

            ●dismiss:解散當(dāng)前警告框

            ●send_keys(KeysToSend):發(fā)送文本至當(dāng)前警告框

            4自動(dòng)化測(cè)試的實(shí)踐

            自動(dòng)化測(cè)試的過(guò)程大致可以分為:分析測(cè)試需求、編寫(xiě)測(cè)試用例、搭建測(cè)試環(huán)境、創(chuàng)建測(cè)試腳本、執(zhí)行測(cè)試及測(cè)試結(jié)果分析等。

            4.1分析測(cè)試需求

            不論是手工測(cè)試還是自動(dòng)化測(cè)試,測(cè)試需求都是測(cè)試工作開(kāi)展的首要前提,根據(jù)需求確定被測(cè)軟件的哪些模塊適合開(kāi)展自動(dòng)化功能測(cè)試。

            4.2編寫(xiě)測(cè)試用例

            自動(dòng)化測(cè)試是在手工測(cè)試的基礎(chǔ)上進(jìn)行的,分析各模塊的功能特點(diǎn),根據(jù)已有的功能測(cè)試用例抽取自動(dòng)化測(cè)試用例,并進(jìn)行補(bǔ)充和完善,盡量細(xì)化到具體的頁(yè)面和對(duì)象。

            4.3搭建測(cè)試環(huán)境

            搭建自動(dòng)化測(cè)試環(huán)境首先要下載并安裝Python,并且安裝包管理工具pip;接著需要下載并安裝Python的Selenium包,并且驗(yàn)證安裝是否成功;最后需要下載瀏覽器的驅(qū)動(dòng),并放置在Python安裝目錄的根目錄下。需要特別注意的是:瀏覽器、Selenium版本以及瀏覽器驅(qū)動(dòng)的匹配,否則瀏覽器將無(wú)法正常啟動(dòng)。下面在Python自帶的IDLE環(huán)境中,以啟動(dòng)谷歌瀏覽器為例來(lái)驗(yàn)證環(huán)境是否搭建成功。代碼如下:

            fromseleniumimportwebdriver#導(dǎo)入webdriver模塊driver=webdriver.Chrome()driver.get("https://www.baidu.com")

            執(zhí)行程序后,如果可以自動(dòng)啟動(dòng)谷歌瀏覽器并訪問(wèn)“百度”首頁(yè),就表示環(huán)境搭建成功

            4.4創(chuàng)建測(cè)試腳本

            對(duì)于較大的系統(tǒng)測(cè)試,可以通過(guò)對(duì)Selenium進(jìn)行二次封裝搭建測(cè)試框架,提高對(duì)頁(yè)面元素的可視化程度,從而提高測(cè)試腳本的編寫(xiě)效率。測(cè)試框架應(yīng)該是由待測(cè)系統(tǒng)功能抽離出的共用部分來(lái)構(gòu)建而成的,不能依賴于具體的應(yīng)用系統(tǒng),即測(cè)試框架與待測(cè)系統(tǒng)盡量是低耦合的,這樣可以使測(cè)試框架具有較高的可復(fù)用性。為了減少腳本的冗余,降低腳本的維護(hù)成本,可以將測(cè)試程序中一致的、共同的腳本提取出來(lái),作為類和接口供其他腳本進(jìn)行調(diào)用。

            自動(dòng)化測(cè)試腳本主要圍繞業(yè)務(wù)流程展開(kāi),即由頁(yè)面元素、業(yè)務(wù)邏輯、測(cè)試數(shù)據(jù)等組成,測(cè)試數(shù)據(jù)既可以存放在Excel表中,也可以存放在MySQL等數(shù)據(jù)庫(kù)中。下面以某論壇系統(tǒng)的注冊(cè)功能為例,代碼如下:

            fromseleniumimportwebdriverimporttimedriver=webdriver.Chrome()driver.get("http://172.21.1.7:8081/bbs/")driver.find_element_by_link_text("register").click();#跳轉(zhuǎn)至注冊(cè)頁(yè)面time.sleep(2)#停頓2秒driver.find_element_by_name("userName").send_keys("wull")#輸入用戶名driver.find_element_by_name("password").send_keys("wull123")#輸入密碼driver.find_element_by_name("passconfirm").send_keys("wull123")#輸入確認(rèn)密碼driver.find_element_by_xpath("http://select[@name='sex']").send_keys("female")#輸入性別#輸入電話driver.find_element_by_xpath("http://input[@name='phone']").send_keys("13812345678")#輸入電郵driver.find_element_by_xpath("http://input[@name='email']").send_keys("12345678@qq.com")driver.find_element_by_id("submit").click()#提交注冊(cè)信息driver.switch_to_alert().accept()

            4.5執(zhí)行測(cè)試及測(cè)試結(jié)果分析

            測(cè)試腳本是以.py為后綴的文件,如果需要執(zhí)行之后生成測(cè)試報(bào)告,需要安裝并調(diào)用Unittest的第三方庫(kù)HTMLTestRunner,運(yùn)行代碼后生成的測(cè)試報(bào)告是HT?ML格式的,可以根據(jù)測(cè)試報(bào)告對(duì)測(cè)試的結(jié)果進(jìn)行分析。

            5結(jié)語(yǔ)

            基于Selenium+Python的自動(dòng)化測(cè)試應(yīng)用可以減少人工多次的驗(yàn)證活動(dòng),降低測(cè)試的成本,從而較大幅度地提高軟件測(cè)試的效率,保證軟件產(chǎn)品的質(zhì)量。后期可以進(jìn)一步優(yōu)化自動(dòng)化測(cè)試框架,提高控件可視化識(shí)別的效率,加快元素定位的效率,并且加強(qiáng)測(cè)試用例的管理。

            以上內(nèi)容為大家介紹了關(guān)于Python的Web自動(dòng)化測(cè)試的實(shí)踐,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
            請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
            免費(fèi)領(lǐng)取
            今日已有369人領(lǐng)取成功
            劉同學(xué) 138****2860 剛剛成功領(lǐng)取
            王同學(xué) 131****2015 剛剛成功領(lǐng)取
            張同學(xué) 133****4652 剛剛成功領(lǐng)取
            李同學(xué) 135****8607 剛剛成功領(lǐng)取
            楊同學(xué) 132****5667 剛剛成功領(lǐng)取
            岳同學(xué) 134****6652 剛剛成功領(lǐng)取
            梁同學(xué) 157****2950 剛剛成功領(lǐng)取
            劉同學(xué) 189****1015 剛剛成功領(lǐng)取
            張同學(xué) 155****4678 剛剛成功領(lǐng)取
            鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
            董同學(xué) 138****2867 剛剛成功領(lǐng)取
            周同學(xué) 136****3602 剛剛成功領(lǐng)取
            相關(guān)推薦HOT