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

Selenium基于Python web自動化測試框架 -- PO

這篇具有很好參考價值的文章主要介紹了Selenium基于Python web自動化測試框架 -- PO。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

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

?? 資源分享耗時200+小時精選的「軟件測試」資料包

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

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

關(guān)于selenium測試框架首先想到的就是PO模型,簡單說下PO模型

PO模型的概念和理解:

PO就是一個設(shè)計思想,將代碼以頁面為單位進(jìn)行組織,針對這個頁面上的所有信息、相關(guān)操作都放到一個類中,從而使具體的測試用例變成了簡單的調(diào)用和驗證操作。

優(yōu)點(diǎn):進(jìn)行了拆分和分層

缺點(diǎn):對于復(fù)雜的業(yè)務(wù)page層變了,case也需要去改動

PO模型的目錄結(jié)構(gòu):

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

其中,base_page是login_page、search_page的基礎(chǔ)。test_login調(diào)用login_page,login_page調(diào)用base_page,同理test_search。

PO代碼示例:

base_page.py

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

 1 from selenium.webdriver.support.wait import WebDriverWait
 2 
 3 '''
 4 這個類主要是完成所有頁面的一些公共方法的封裝
 5 '''
 6 class Action(object):
 7     #初始化
 8     def __init__(self,se_driver):
 9         self.driver = se_driver
10 
11     #定義open方法
12     def open(self,url):
13         self.driver.get(url)
14         self.driver.maximize_window()
15 
16     #重寫元素定位的方法
17     def find_element(self,*loc):
18         try:
19             WebDriverWait(self.driver,20).until(lambda driver:driver.find_element(*loc).is_displayed())
20             return self.driver.find_element(*loc)
21         except Exception as e:
22             print("未找到%s"%(self,loc))
23 
24     #定義script方法,用于執(zhí)行js腳本
25     def script(self,src):
26         self.driver.execute_script(src)
27 
28     #重寫send_keys方法
29     def send_keys(self,loc,value,clear_first=True,clik_first=True):
30         try:
31             if clik_first:
32                 self.find_element(*loc).click()
33             if clear_first:
34                 self.find_element(*loc).clear()
35                 self.find_element(*loc).send_keys(value)
36         except AttributeError:
37             print("未找到%s"%(self,loc))

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

login_page.py

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

 1 from selenium.webdriver.common.by import By
 2 from seleniumframework.PO import base_page
 3 import time
 4 
 5 class LoginPage(base_page.Action):
 6     link_loc = (By.LINK_TEXT,"登錄")
 7     name_loc = (By.ID,"TANGRAM__PSP_8__userName")
 8     password_loc = (By.ID,"TANGRAM__PSP_8__password")
 9     submit_loc = (By.ID,"TANGRAM__PSP_8__submit")
10 
11     username_top = (By.LINK_TEXT,"hanxiaobei")
12 
13 
14     def click_link(self):
15         self.find_element(*self.link_loc).click()
16         time.sleep(3)           #等待3秒,等待登錄彈窗加載完成
17 
18     def run_case(self,value1,value2):
19         self.find_element(*self.name_loc).send_keys(value1)
20         self.find_element(*self.password_loc).send_keys(value2)
21         time.sleep(20)          #手動輸入驗證碼
22         self.find_element(*self.submit_loc).click()
23         time.sleep(5)           #等待5秒,登錄后的頁面加載完成
24 
25     def get_username(self):
26         return self.find_element(*self.username_top).text

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

test_login.py

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

 1 import unittest
 2 from selenium import webdriver
 3 from seleniumframework.PO.login_page import LoginPage
 4 import time
 5 
 6 class TestBaiduLogin(unittest.TestCase):
 7     """UI自動化登錄"""
 8     def setUp(self):
 9         self.url = "http://www.baidu.com"
10         self.driver = webdriver.Firefox()
11         self.driver.implicitly_wait(20)
12         # self.verificationErrors = []
13 
14     def tearDown(self):
15         time.sleep(5)
16         self.driver.quit()
17         # self.assertEqual([],self.verificationErrors)
18 
19     def test_login(self):
20         """百度登錄"""
21         sp = LoginPage(self.driver)
22         sp.open(self.url)
23         sp.click_link()
24         sp.run_case("hanxiaobei","xxxxxxx")
25         self.assertEqual(sp.get_username(),"hanxiaobei",msg="驗證失??!")

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

main.py 運(yùn)行的主入口

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

 1 import unittest
 2 import HTMLTestRunner
 3 
 4 #相對路徑
 5 testcase_path = ".\\testcase"
 6 report_path = ".\\report\\report.html"
 7 def creat_suite():
 8     uit = unittest.TestSuite()
 9     discover = unittest.defaultTestLoader.discover(testcase_path,pattern="test_*.py")
10     for test_suite in discover:
11         # print(test_suite)
12         for test_case in test_suite:
13             uit.addTest(test_case)
14     return uit
15 
16 suite = creat_suite()
17 fp = open(report_path,"wb")
18 runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title="測試結(jié)果",description="測試搜索結(jié)果")
19 runner.run(suite)
20 fp.close()

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

解決報告命名的問題:

1 now = time.strftime("%Y-%m-%d-%H-%M-%S",time.localtime(time.time()))
2 print(now)
3 report_path = ".\\report\\"+now+"report.html"

測試報告截圖:

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

search_page.py

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

 1 from selenium.webdriver.common.by import By
 2 from seleniumframework.PO import base_page
 3 
 4 #繼承base后既可以調(diào)用base的方法也可自己添加新的方法
 5 class SearchPage(base_page.Action):
 6 
 7     #通過id進(jìn)行定位元素
 8     search_loc = (By.ID,"kw")
 9 
10     def run_case(self,value):
11         #第一種利用原生的send_keys方法
12         self.find_element(*self.search_loc).send_keys(value)
13 
14         #第二種利用二次封裝的send_keys方法
15         # self.send_keys(self.search_loc,value)

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

test_search.py

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

 1 import unittest
 2 from selenium import webdriver
 3 from seleniumframework.PO.search_page import SearchPage
 4 import time
 5 
 6 class TestBaiduSearch(unittest.TestCase):
 7     """UI自動化搜索"""
 8     def setUp(self):
 9         self.url = "http://www.baidu.com"
10         self.driver = webdriver.Firefox()
11         self.driver.implicitly_wait(20)
12         self.verificationErrors = []
13 
14     def tearDown(self):
15         time.sleep(5)
16         self.driver.quit()
17         self.assertEqual([],self.verificationErrors)
18 
19     def test_search(self):
20         """搜索測試關(guān)鍵字"""
21         sp = SearchPage(self.driver)
22         sp.open(self.url)
23         sp.run_case("測試")

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

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

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試

Selenium基于Python web自動化測試框架 -- PO,python,selenium,壓力測試,功能測試,自動化測試,軟件測試文章來源地址http://www.zghlxwxcb.cn/news/detail-835045.html

到了這里,關(guān)于Selenium基于Python web自動化測試框架 -- PO的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 基于Selenium的Web UI自動化測試框架開發(fā)實(shí)戰(zhàn)

    基于Selenium的Web UI自動化測試框架開發(fā)實(shí)戰(zhàn)

    1、自研自動化測試框架 首先進(jìn)行需求分析。概要設(shè)計包括以下三大模塊: 公共函數(shù)庫模塊(包括可復(fù)用函數(shù)庫、日志管理、報表管理及發(fā)送郵件管理); 測試用例倉庫模塊(具體用例的相關(guān)管理); 可視化頁面管理模塊(單獨(dú)針對Web頁面進(jìn)行抽象,封裝頁面元素和操作方

    2024年01月20日
    瀏覽(114)
  • Python+selenium,輕松搭建 Web 自動化測試框架

    Python+selenium,輕松搭建 Web 自動化測試框架

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

    2024年02月10日
    瀏覽(27)
  • selenium+python做web端自動化測試框架實(shí)戰(zhàn)

    selenium+python做web端自動化測試框架實(shí)戰(zhàn)

    最近受到萬點(diǎn)暴擊,由于公司業(yè)務(wù)出現(xiàn)問題,工作任務(wù)沒那么繁重,有時間摸索selenium+python自動化測試,結(jié)合網(wǎng)上查到的資料自己編寫出適合web自動化測試的框架,由于本人也是剛剛開始學(xué)習(xí)python,這套自動化框架目前已經(jīng)基本完成了所以總結(jié)下編寫的得失,便于以后回顧溫

    2024年02月14日
    瀏覽(26)
  • python基于Selenium的web自動化框架

    python基于Selenium的web自動化框架

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

    2024年02月02日
    瀏覽(22)
  • Python + Selenium,分分鐘搭建 Web 自動化測試框架!

    Python + Selenium,分分鐘搭建 Web 自動化測試框架!

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

    2024年02月02日
    瀏覽(29)
  • selenium+python web自動化測試框架項目實(shí)戰(zhàn)實(shí)例教程

    selenium+python web自動化測試框架項目實(shí)戰(zhàn)實(shí)例教程

    自動化測試對程序的回歸測試更方便。 由于回歸測試的動作和用例是完全設(shè)計好的,測試期望的結(jié)果也是完全可以預(yù)料的,將回歸測試自動運(yùn)行... 可以運(yùn)行更加繁瑣的測試 自動化測試的一個明顯好處就是可以在很短的時間內(nèi)運(yùn)行更多的測試。學(xué)習(xí)自動化測試最終目的是應(yīng)用到

    2024年02月06日
    瀏覽(36)
  • Selenium Web自動化測試——基于unittest框架的PO設(shè)計模式

    Selenium Web自動化測試——基于unittest框架的PO設(shè)計模式

    ??? 交流討論: 歡迎加入我們一起學(xué)習(xí)! ?? 資源分享 : 耗時200+小時精選的「軟件測試」資料包 ??? 教程推薦: 火遍全網(wǎng)的《軟件測試》教程?? ?? 歡迎點(diǎn)贊 ?? 收藏 ?留言 ?? 如有錯誤敬請指正! 前面一直在講接口自動化測試框架與案例分享,很少講Selenium這個We

    2024年03月21日
    瀏覽(92)
  • web自動化測試框架落地實(shí)施全過程-測試環(huán)境搭建 (Selenium+Python)

    web自動化測試框架落地實(shí)施全過程-測試環(huán)境搭建 (Selenium+Python)

    Web自動化測試是指使用自動化工具模擬用戶在Web瀏覽器中執(zhí)行的操作,通過編寫腳本來自動化執(zhí)行測試用例,以驗證Web應(yīng)用程序的功能、性能和兼容性等方面的質(zhì)量。其主要目的是降低測試成本和時間,并提高測試效率和準(zhǔn)確性。 Web自動化測試通常包括以下步驟: 確定測試

    2024年02月09日
    瀏覽(20)
  • ?selenium+python做web端自動化測試框架與實(shí)例詳解教程

    ?selenium+python做web端自動化測試框架與實(shí)例詳解教程

    最近受到萬點(diǎn)暴擊,由于公司業(yè)務(wù)出現(xiàn)問題,工作任務(wù)沒那么繁重,有時間摸索selenium+python自動化測試,結(jié)合網(wǎng)上查到的資料自己編寫出適合web自動化測試的框架,由于本人也是剛剛開始學(xué)習(xí)python,這套自動化框架目前已經(jīng)基本完成了所以總結(jié)下編寫的得失,便于以后回顧溫

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

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

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

    2024年02月03日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包