欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

selenium自動(dòng)化測(cè)試框架方式

 更新時(shí)間:2020年02月15日 14:56:09   作者:程序員雷子  
這篇文章主要介紹了selenium自動(dòng)化測(cè)試框架方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、Selenium自動(dòng)化測(cè)試(基于python)

1、Selenium簡(jiǎn)介

1.1 Selenium是一款主要用于Web應(yīng)用程序自動(dòng)化測(cè)試的工具集合。Selenium測(cè)試直接運(yùn)行在瀏覽器中,本質(zhì)是通過驅(qū)動(dòng)瀏覽器,模擬瀏覽器的操作,比如跳轉(zhuǎn)、輸入、點(diǎn)擊、下拉等,來拿到網(wǎng)頁(yè)渲染之后的結(jié)果,可支持多種瀏覽器如,chorme,F(xiàn)ireFox,IE等。

1.2 Selenium WebDriver:業(yè)界通用的測(cè)試框架,不僅是web測(cè)試的標(biāo)準(zhǔn),同時(shí)在移動(dòng)測(cè)試領(lǐng)域也是底層的核心驅(qū)動(dòng)框架;

1.3 Python是動(dòng)態(tài)語言;

1.4 Selenium包括一系列的工具組件:

  • 1)Selenium IDE:是嵌入到FireFox瀏覽器的插件,用于在Firefox上錄制和回放Selenium腳本,雖然只能在Firefox下使用,但它能將錄制好的腳本轉(zhuǎn)換成各種Selenium WebDriver支持的程序語言,進(jìn)而擴(kuò)展到更廣泛的瀏覽器類型;
  • 2) Selenium WebDriver:可支持多種語言,用于操作瀏覽器的一套API;支持各類型瀏覽器,跨操作系統(tǒng),WebDriver為諸多語言提供完備的,用于實(shí)現(xiàn)web自動(dòng)化測(cè)試的第三方庫(kù);
  • 3) Selenium Standalone Server:包括Selenium Grid、遠(yuǎn)程控制、分布式部署等,均可實(shí)現(xiàn)Selenium腳本的高效執(zhí)行與拓展;利用Grid使得自動(dòng)化測(cè)試可以并行運(yùn)行,甚至在跨平臺(tái)、異構(gòu)的環(huán)境中運(yùn)行;

2、基于python的selenium WebDeriver環(huán)境安裝

Selenium可以自動(dòng)操縱瀏覽器來做很多,如模擬與瀏覽器的交互,而且支持到多數(shù)主流瀏覽器;首先需要選擇一門語言來編寫自動(dòng)化腳本,而這門語言需要有Selenium client library支持,選擇Python;

2.1 安裝python和selenium,不同安裝版本可在平臺(tái)下載

1)安裝selenium

  • Win:pip install selenium
  • Mac: pip3 install selenium

2)安裝WebDriver, 該工具供selenium使用Chrome。(注:webdriver需要和對(duì)應(yīng)的瀏覽器版本以及selenium版本對(duì)應(yīng))

3)WebDriver安裝路徑

  • Win:復(fù)制webdriver到Python安裝目錄下
  • Mac:復(fù)制webdriver到/usr/local/bin目錄下

2.2 PyCharm設(shè)置

  • 1)PyCharm有兩個(gè)版本:社區(qū)版和專業(yè)版,社區(qū)版是免費(fèi)的,可以下載使用;
  • 2) 在使用PyCharm時(shí),需要配置Python的解釋器,我們選擇支持selenium的Python版本解釋器;

3、Selenium WebDriver基于Python實(shí)現(xiàn)腳本

3.1 根據(jù)webDriver提供的一系列對(duì)象定位方法,獲取元素,實(shí)現(xiàn)測(cè)試用例

3.2 webDriver常見的元素定位方法有:

  • ① id定位:find_element_by_id()
  • ② name定位:find_element_by_name()
  • ③ class定位:find_element_by_class_name()
  • ④ link定位:find_element_by_link_text()
  • ⑤ partial link定位:find_element_by_partial_link_text()
  • ⑥ tag定位:find_element_by_tag_name()
  • ⑦ xpath定位:find_element_by_xpath()
  • ⑧ css定位:find_element_by_css_selector()

4、unittest編寫單元測(cè)試并輸出測(cè)試報(bào)告

僅使用Selenium WebDriver,還有一些無法實(shí)現(xiàn)的:比如 實(shí)現(xiàn)執(zhí)行測(cè)試前置條件、測(cè)試后置條件,比對(duì)預(yù)期結(jié)果和實(shí)際結(jié)果,檢查程序的狀態(tài),生成測(cè)試報(bào)告等功能;因此需要使用unittest來創(chuàng)建基于Python的Selenium WebDriver測(cè)試腳本;

4.1 什么是unittest

Unittest一般也稱為PyUnit,是從java程序開發(fā)中廣泛應(yīng)用的Unit啟發(fā)而來,可以使用unittest為項(xiàng)目創(chuàng)建全面的測(cè)試套件,unittest具備創(chuàng)建測(cè)試用例、測(cè)試套件,測(cè)試夾具的能力;

unitest組件:

  • 1)Test Fixture(測(cè)試夾具):可以定義在單個(gè)或多個(gè)測(cè)試執(zhí)行之前的準(zhǔn)備工作和測(cè)試執(zhí)行之后的清理工作;
  • 2)Test Case(測(cè)試用例):unittest中執(zhí)行測(cè)試的最小單元,通過驗(yàn)證unittest提供的assert方法來驗(yàn)證一組特定的操作和輸入以后得到的響應(yīng),unittest提供了一個(gè)名為TestCase的基礎(chǔ)類,可以用來創(chuàng)建測(cè)試用例;
  • 3)Test Suit(測(cè)試套件):一個(gè)測(cè)試套件是多個(gè)測(cè)試或測(cè)試用例的集合,是針對(duì)被測(cè)程序的對(duì)應(yīng)的功能和模塊創(chuàng)建的一組測(cè)試,一個(gè)測(cè)試套件內(nèi)的測(cè)試用例將一起執(zhí)行;
  • 4)Test Runner(測(cè)試執(zhí)行器):測(cè)試執(zhí)行器負(fù)責(zé)測(cè)試執(zhí)行調(diào)度并且生成測(cè)試結(jié)果給用戶,測(cè)試執(zhí)行器可以使用圖形界面、文本界面或者特定的返回值來展示測(cè)試執(zhí)行結(jié)果;
  • 5)Test Report(測(cè)試報(bào)告):測(cè)試報(bào)告展示所有執(zhí)行用例的成功或者失敗狀態(tài)的匯總,包括失敗的測(cè)試步驟的預(yù)期結(jié)果和實(shí)際結(jié)果,還有整體運(yùn)行狀況和運(yùn)行時(shí)間的匯總;

4.2 使用unittest來編寫Selenium WebDriver測(cè)試

  • 1)Arrange:初始化前置條件,初始化被測(cè)試的對(duì)象,相關(guān)配置和依賴;
  • 2)Act:執(zhí)行功能操作;
  • 3)Assert:用來校驗(yàn)實(shí)際結(jié)果與預(yù)期結(jié)果是否一致;

4.3 使用TestCase類來實(shí)現(xiàn)一個(gè)測(cè)試

  • 1)集成TestCase類并且在測(cè)試類中為每一個(gè)測(cè)試添加測(cè)試方法來創(chuàng)建單個(gè)測(cè)試或者一組測(cè)試;
  • 2)TestCase中的assert方法,最主要的任務(wù)是 調(diào)用assertEqual()來校驗(yàn)結(jié)果;assertTrue()來驗(yàn)證條件;assertRaises來驗(yàn)證預(yù)期的異常,除了添加測(cè)試,還可以添加測(cè)試夾具,setUp()方法和tearDown()方法;
  • 3)一個(gè)測(cè)試用例是從setUp()方法開始執(zhí)行,因此可以在每個(gè)測(cè)試開始前執(zhí)行一些初始化的任務(wù);此方法無參數(shù),也無返回值,接著編寫test方法,這些測(cè)試方法命名為test開頭,這種命名約定通知test runner哪個(gè)方法代表測(cè)試方法;
  • 注:test runner能找到的每個(gè)測(cè)試方法,都會(huì)在執(zhí)行測(cè)試方法之前先執(zhí)行setUp()方法,這樣有助于確保每個(gè)測(cè)試方法都能夠依賴于相同的環(huán)境。
  • 4)tearDown()方法會(huì)在測(cè)試執(zhí)行完成之后調(diào)用,用來清理所有的初始值;
  • 5)為了能通過命令行測(cè)試,我們可以在測(cè)試中添加對(duì)main方法的調(diào)用;我們將傳遞verbosity參數(shù)以便使詳細(xì)的測(cè)試結(jié)果展示在控制臺(tái);

測(cè)試用例代碼如下圖(Testcase01.py),如果測(cè)試通過則,瀏覽器最后會(huì)退出,如果出錯(cuò)的話,控制臺(tái)則會(huì)打印出相關(guān)信息,

4.4 為一組測(cè)試創(chuàng)建TestSuite

  • 1) 應(yīng)用unittest的TestSuites特性,可以將不同的測(cè)試組成一個(gè)邏輯組,然后設(shè)置統(tǒng)一的測(cè)試套件,并通過一個(gè)命令來執(zhí)行;具體通過TestSuites、TestLoader和TestRunner類來實(shí)現(xiàn)的;
  • 2)使用TestSuites類來定義和執(zhí)行測(cè)試套件,將多個(gè)可測(cè)試加到一個(gè)測(cè)試套件中,還可以用TestLoader和TextTestRunner創(chuàng)建和運(yùn)行測(cè)試套件,舉例如下圖(TestSuites.py);

4.5使用unittest擴(kuò)展來生成HTML格式的測(cè)試報(bào)告

unittest的擴(kuò)展HTMLTestRunner可以實(shí)現(xiàn)生成測(cè)試報(bào)告。生成的的測(cè)試報(bào)告格式更加友好,既能夠查看測(cè)試結(jié)果,又能深入各個(gè)細(xì)節(jié)。舉例代碼如下圖(testsuiteshtml.py)

測(cè)試報(bào)告如下圖(TestReport)

總結(jié)

以上所寫內(nèi)容主要是selenium基于python,使用WebDriver、Unittest組件,使用元素定位方式,完成測(cè)試用例,輸出測(cè)試報(bào)告的簡(jiǎn)單步驟,具體實(shí)際操作中可能會(huì)遇到其它問題,具體問題具體解決。

這些僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python爬蟲之生活常識(shí)解答機(jī)器人

    python爬蟲之生活常識(shí)解答機(jī)器人

    這篇文章主要介紹了python爬蟲之生活常識(shí)解答機(jī)器人,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python?sklearn與pandas實(shí)現(xiàn)缺失值數(shù)據(jù)預(yù)處理流程詳解

    python?sklearn與pandas實(shí)現(xiàn)缺失值數(shù)據(jù)預(yù)處理流程詳解

    對(duì)于缺失值的處理,主要配合使用sklearn.impute中的SimpleImputer類、pandas、numpy。其中由于pandas對(duì)于數(shù)據(jù)探索、分析和探查的支持較為良好,因此圍繞pandas的缺失值處理較為常用
    2022-09-09
  • 詳解Python3 pandas.merge用法

    詳解Python3 pandas.merge用法

    pandas提供了一組高級(jí)的、靈活的、高效的核心函數(shù),能夠輕松的將數(shù)據(jù)規(guī)整化。這節(jié)主要對(duì)pandas合并數(shù)據(jù)集的merge函數(shù)進(jìn)行詳解,感興趣的朋友跟隨小編一起看看吧
    2019-09-09
  • python批量提取word內(nèi)信息

    python批量提取word內(nèi)信息

    這里給大家分享的是php讀取word并提取word內(nèi)信息的方法,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。
    2015-08-08
  • NumPy中的實(shí)用函數(shù)clip詳解

    NumPy中的實(shí)用函數(shù)clip詳解

    這篇文章主要介紹了NumPy中的實(shí)用函數(shù)clip詳解,NumPy函數(shù)clip()用于保留數(shù)組中在間隔范圍內(nèi)的值,給定一個(gè)范圍,范圍外的值將剪裁到范圍邊界,需要的朋友可以參考下的相關(guān)資料
    2023-08-08
  • 使用Pycharm+PyQt5彈出子窗口的程序代碼

    使用Pycharm+PyQt5彈出子窗口的程序代碼

    這篇文章主要介紹了使用Pycharm+PyQt5彈出子窗口的解決方法,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • python實(shí)現(xiàn)人工蜂群算法

    python實(shí)現(xiàn)人工蜂群算法

    這篇文章主要介紹了python如何實(shí)現(xiàn)人工蜂群算法,幫助大家更好的利用python進(jìn)行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2020-09-09
  • django rest framework 自定義返回方式

    django rest framework 自定義返回方式

    這篇文章主要介紹了django rest framework 自定義返回方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Python模擬隨機(jī)游走圖形效果示例

    Python模擬隨機(jī)游走圖形效果示例

    這篇文章主要介紹了Python模擬隨機(jī)游走圖形效果,涉及Python隨機(jī)數(shù)概率運(yùn)算及圖形繪制相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • 如何使用python統(tǒng)計(jì)字符在文件中出現(xiàn)的次數(shù)

    如何使用python統(tǒng)計(jì)字符在文件中出現(xiàn)的次數(shù)

    在開發(fā)過程中很多時(shí)候我們有統(tǒng)計(jì)單個(gè)字符或者字符串在另一個(gè)字符串中出現(xiàn)次數(shù)的需求,下面這篇文章主要給大家介紹了關(guān)于如何使用python統(tǒng)計(jì)字符在文件中出現(xiàn)的次數(shù)的相關(guān)資料,需要的朋友可以參考下
    2023-03-03

最新評(píng)論