国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Web 自動(dòng)化測(cè)試(Selenium) PO 模型

這篇具有很好參考價(jià)值的文章主要介紹了Web 自動(dòng)化測(cè)試(Selenium) PO 模型。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

??? 交流討論:歡迎加入我們一起學(xué)習(xí)!

?? 資源分享耗時(shí)200+小時(shí)精選的「軟件測(cè)試」資料包

???教程推薦:火遍全網(wǎng)的《軟件測(cè)試》教程??

??歡迎點(diǎn)贊 ?? 收藏 ?留言 ?? 如有錯(cuò)誤敬請(qǐng)指正!

1. po 模型介紹

  在自動(dòng)化中,Selenium 自動(dòng)化測(cè)試中有一個(gè)名字經(jīng)常被提及 PageObject (思想與面向?qū)ο蟮奶卣飨嗤?,通常PO 模型可以大大提高測(cè)試用例的維護(hù)效率。

  優(yōu)點(diǎn):業(yè)務(wù)和對(duì)象分離,代碼結(jié)構(gòu)清晰,方便維護(hù)

2. PageObject 設(shè)計(jì)模式

  

Web 自動(dòng)化測(cè)試(Selenium) PO 模型,python,壓力測(cè)試,單元測(cè)試,軟件測(cè)試,自動(dòng)化測(cè)試

3. PO 的核心要素

  1. 在 PO 模式中抽離封裝集成一個(gè) BasePage 類(lèi),該基類(lèi)應(yīng)該擁有一個(gè)只實(shí)現(xiàn) webdriver 實(shí)例的屬性

  2. 每一個(gè)page 都繼承BasePage,通過(guò) driver 來(lái)管理 page 中元素,將 page 中的操作封裝成一個(gè)個(gè)方法

  3. TestCase 繼承 unittest.TestCase類(lèi),并依賴(lài)page類(lèi),從而實(shí)現(xiàn)相應(yīng)的測(cè)試步驟

4. 非PO 實(shí)現(xiàn)

  4.1 代碼展示

JavaScript

from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("12306")
sleep(1)
driver.find_element_by_id("su").click()
sleep(2)
driver.quit()

  4.2 代碼分析

    不同的運(yùn)行腳本環(huán)境,瀏覽器不同,驅(qū)動(dòng) webdriver.Firefox() 可以剝離

    請(qǐng)求地址的變化(生產(chǎn)環(huán)境和測(cè)試環(huán)境):url = http://www.baidu.com可以剝離

    操作元素時(shí),常常要等待元素加載完成方可進(jìn)行操作:可以把webdriver提供的find_element*方法封裝,在元素操作前,先判斷元素是否可以操作

    實(shí)際測(cè)試場(chǎng)景中,可能有多個(gè)測(cè)試場(chǎng)景,如果每個(gè)測(cè)試場(chǎng)景都需要維護(hù)url,游覽器驅(qū)動(dòng),元素定位等,效率會(huì)非常低

    因此基于以上分析,是否可以設(shè)計(jì)一個(gè)所有測(cè)試界面(selenium本身是B/S系統(tǒng)開(kāi)展測(cè)試)的基類(lèi),來(lái)維護(hù)公共的方法,此處定義名字為BasePage.py,用于存放頁(yè)面公共方法及webdriver原有方法二次封裝等。
?

5. PO 實(shí)現(xiàn)

  5.1 實(shí)現(xiàn)BasePage

Bash

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains   #鼠標(biāo)操作
class BasePage():
    '''BasePage封裝所有界面都公用的方法。例如driver,find_element等'''
    '''實(shí)例化BasePage類(lèi)時(shí),事先執(zhí)行的__init__方法,該方法需要傳遞參數(shù)'''
    def __init__(self,driver,url):
        self.driver = driver
        self.base_url = url
    # 進(jìn)入網(wǎng)址
    def get(self):
        self.driver.get(self.base_url)
    #元素定位,替代八大定位
    def get_element(self,*locator):
        return self.driver.find_element(*locator)
    #點(diǎn)擊
    def left_click(self,*locator):
        ActionChains(self.driver).click(self.get_element(*locator)).perform()
    #輸入
    def send_text(self,text,*locator):
        self.driver.find_element(*locator).send_keys(text)
    #清除
    def clear_text(self,*locator):
        self.driver.find_element(*locator).clear()

  5.2 實(shí)現(xiàn) SearchPage

Bash

'''
實(shí)現(xiàn)步驟:(1)繼承basepage,(2)元素傳參,(3)調(diào)取方法
'''
from selenium.webdriver.common.by import By
from pomodel.Base.base_page import BasePage
class Search(BasePage):
    def __init__(self,driver,url):
        BasePage.__init__(self,driver,url)
     #進(jìn)入百度
    def open_baidu(self):
        self.get()
    #輸入搜索內(nèi)容
    def input_search_content(self,text):
        self.send_text(text,By.ID,"kw")
    #點(diǎn)擊按鈕
    def click_baidu_search(self):
        self.left_click(By.ID,"su")

  5.3 實(shí)現(xiàn) TestCase

Java

import unittest
from selenium import webdriver
from pomodel.Pages.search_pages import Search
class BaiBu(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(10)
    def test_serach(self):
        url="http://www.baidu.com"
        s = Search(self.driver,url)
        s.open_baidu()
        s.input_search_content("jack")
        s.click_baidu_search()
    def tearDown(self) -> None:
        self.driver.quit()
if __name__ == '__main__':
    unittest.main()

6. 總結(jié)

  PO設(shè)計(jì)模式中的BasePage基類(lèi)對(duì)應(yīng)案例中的BasePage.py文件

  PO模式中的pages中的案例顯示Search.py

  PO模式設(shè)計(jì)中TestCase對(duì)應(yīng)案例中的TestCase.py

7. PO 模式的特點(diǎn)

  1: PO提供了一種業(yè)務(wù)流程與頁(yè)面元素操作分離的模式,這使得測(cè)試代碼變得更加清晰

  2:頁(yè)面對(duì)象與用例分離,使得我們更好的復(fù)用對(duì)象

  3:可復(fù)用的頁(yè)面方法代碼會(huì)變得更加優(yōu)化

  4:更加有效的命令方式使得我們更加清晰的知道方法所操作的UI元素

最后我邀請(qǐng)你進(jìn)入我們的【軟件測(cè)試學(xué)習(xí)交流群:785128166】, 大家可以一起探討交流軟件測(cè)試,共同學(xué)習(xí)軟件測(cè)試技術(shù)、面試等軟件測(cè)試方方面面,還會(huì)有免費(fèi)直播課,收獲更多測(cè)試技巧,我們一起進(jìn)階Python自動(dòng)化測(cè)試/測(cè)試開(kāi)發(fā),走向高薪之路

作為一個(gè)軟件測(cè)試的過(guò)來(lái)人,我想盡自己最大的努力,幫助每一個(gè)伙伴都能順利找到工作。所以我整理了下面這份資源,現(xiàn)在免費(fèi)分享給大家,有需要的小伙伴可以關(guān)注【公眾號(hào):程序員二黑】自提!

Web 自動(dòng)化測(cè)試(Selenium) PO 模型,python,壓力測(cè)試,單元測(cè)試,軟件測(cè)試,自動(dòng)化測(cè)試

Web 自動(dòng)化測(cè)試(Selenium) PO 模型,python,壓力測(cè)試,單元測(cè)試,軟件測(cè)試,自動(dòng)化測(cè)試文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-850307.html

到了這里,關(guān)于Web 自動(dòng)化測(cè)試(Selenium) PO 模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • po+selenium+unittest自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)

    po+selenium+unittest自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)

    1、新建一個(gè)包名:common(用于存放基本函數(shù)封裝) (1)在common包下新建一個(gè)base.py文件,作用:頁(yè)面操作封裝。base.py文件代碼如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

    2024年01月17日
    瀏覽(24)
  • selenium UI自動(dòng)化PO模式測(cè)試框架搭建

    selenium UI自動(dòng)化PO模式測(cè)試框架搭建

    熟悉業(yè)務(wù)-》確定方案-》選取場(chǎng)景-》了解前端-》定位元素-》編寫(xiě)腳本-》運(yùn)行優(yōu)化-》回歸報(bào)告-》項(xiàng)目匯總 價(jià)值意義: 自動(dòng)化執(zhí)行需要:模塊化 需要可制定化執(zhí)行 可復(fù)用性 PO模式: 將頁(yè)面定位和業(yè)務(wù)分開(kāi),元素的定位單獨(dú)處理,執(zhí)行腳本單獨(dú)封裝。維護(hù)方便。 封裝BasePag

    2024年02月04日
    瀏覽(89)
  • 【W(wǎng)EB自動(dòng)化測(cè)試】-PO設(shè)計(jì)模式

    如用例多了,那么登陸的代碼就需要在每個(gè)模塊化中都加入,所以考慮公共部分提取出來(lái),做成一個(gè)公共的工具類(lèi)。習(xí)慣命名為utils.py。 定義獲取驅(qū)動(dòng)對(duì)象的工具類(lèi) 封裝\\\"獲取彈出框的提示信息\\\" PO是Page Object的縮寫(xiě),PO模式是自動(dòng)化測(cè)試項(xiàng)目開(kāi)發(fā)實(shí)踐的最佳設(shè)計(jì)模式之一。核心

    2024年02月16日
    瀏覽(98)
  • UI自動(dòng)化測(cè)試:Selenium+PO模式+Pytest+Allure整合

    UI自動(dòng)化測(cè)試:Selenium+PO模式+Pytest+Allure整合

    本人目前工作中未涉及到WebUI自動(dòng)化測(cè)試,但為了提升自己的技術(shù),多學(xué)習(xí)一點(diǎn)還是沒(méi)有壞處的,廢話不多說(shuō)了,目前主流的webUI測(cè)試框架應(yīng)該還是selenium,考慮到可維護(hù)性、拓展性、復(fù)用性等,我們采用PO模式去寫(xiě)我們的腳本,本文檔也主要整合了Selenium+PO模式+Pytest+Allure,下

    2024年02月08日
    瀏覽(506)
  • 【自動(dòng)化測(cè)試】基于Selenium + Python的web自動(dòng)化框架

    【自動(dòng)化測(cè)試】基于Selenium + Python的web自動(dòng)化框架

    Selenium是一個(gè)基于瀏覽器的自動(dòng)化工具,她提供了一種跨平臺(tái)、跨瀏覽器的端到端的web自動(dòng)化解決方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid: ? 1、Selenium IDE:Firefox的一個(gè)擴(kuò)展,它可以進(jìn)行錄制回放,并可以把錄制的操作以多種語(yǔ)言(例如java,p

    2024年02月07日
    瀏覽(19)
  • PO設(shè)計(jì)模式是selenium自動(dòng)化測(cè)試中最佳的設(shè)計(jì)模式之一

    PO設(shè)計(jì)模式是selenium自動(dòng)化測(cè)試中最佳的設(shè)計(jì)模式之一

    Page Object Model:PO設(shè)計(jì)模式是selenium自動(dòng)化測(cè)試中最佳的設(shè)計(jì)模式之一,主要體現(xiàn)在對(duì)界面交互細(xì)節(jié)的封裝,也就是在實(shí)際測(cè)試中只關(guān)注業(yè)務(wù)流程就OK了傳統(tǒng)的設(shè)計(jì)中,在新增測(cè)試用例之后,代碼會(huì)有以下幾個(gè)問(wèn)題:1.易讀性差:一連串的find element會(huì)使代碼顯得雜亂無(wú)章2.可擴(kuò)展

    2024年02月11日
    瀏覽(88)
  • 基于python實(shí)現(xiàn)Web自動(dòng)化測(cè)試(selenium)、API自動(dòng)化測(cè)試(requests)&附學(xué)習(xí)視頻

    基于python實(shí)現(xiàn)Web自動(dòng)化測(cè)試(selenium)、API自動(dòng)化測(cè)試(requests)&附學(xué)習(xí)視頻

    另一篇文章 :自動(dòng)化測(cè)試框架(pytest)附學(xué)習(xí)視頻 學(xué)習(xí)視頻,學(xué)習(xí)文檔-白月黑羽 說(shuō)明: 1緊跟著寫(xiě)的不加/,不加空格-表示同一級(jí)別信息,加空格表示后代 2.css定位tag,id,class時(shí)分別有不同的標(biāo)識(shí),其他屬性都要加[]進(jìn)行搜索, Xpath所有屬性都要都加【】,tag不用 3. css在使用ta

    2024年02月03日
    瀏覽(25)
  • 基于Selenium+Python的web自動(dòng)化測(cè)試框架

    基于Selenium+Python的web自動(dòng)化測(cè)試框架

    一、什么是Selenium? Selenium是一個(gè)基于瀏覽器的自動(dòng)化測(cè)試工具,它提供了一種跨平臺(tái)、跨瀏覽器的端到端的web自動(dòng)化解決方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefox的一個(gè)擴(kuò)展,它可以進(jìn)行錄制回放,并把錄制的操作以多種語(yǔ)言

    2024年02月02日
    瀏覽(106)
  • Python+selenium,輕松搭建 Web 自動(dòng)化測(cè)試框架

    Python+selenium,輕松搭建 Web 自動(dòng)化測(cè)試框架

    在程序員的世界中,一切重復(fù)性的工作,都應(yīng)該通過(guò)程序自動(dòng)執(zhí)行。 「自動(dòng)化測(cè)試」就是一個(gè)最好的例子。 隨著互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)周期越來(lái)越短,迭代速度越來(lái)越快,只會(huì)點(diǎn)點(diǎn)點(diǎn),不懂開(kāi)發(fā)的手工測(cè)試,已經(jīng)無(wú)法滿足如今的業(yè)務(wù)要求,只能被企業(yè)逐步裁員淘汰。 「自動(dòng)化測(cè)試

    2024年02月10日
    瀏覽(28)
  • jenkins+selenium+python實(shí)現(xiàn)web自動(dòng)化測(cè)試

    jenkins+selenium+python實(shí)現(xiàn)web自動(dòng)化測(cè)試

    jenkins+selenium可以做到對(duì)web自動(dòng)化的持續(xù)集成。 Jenkins的基本操作: 新建視圖: 新建job: 可以選擇構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目或者復(fù)制已有的item 安裝Jenkins插件, SSH plugin ,Email Extension Plugin , Hudson Seleniumhq plugin 點(diǎn)擊系統(tǒng)管理-管理插件 在可選插件面板Filter中輸入插件名,

    2024年02月02日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包