python之web自動化測試框架


梳理下搭建web自動化框架的流程:

創建目錄:

cases:存放測試用例,unittest框架要求用例名必須以test開頭,所以命名test_case.py

test_case.py代碼如下:繼承unittest.TestCase類下面的方法setupclass(),teardownclass()。然后把用例放進去。每個頁面作為一個用例

'''這里寫業務的用例  用例要用到page unittest'''
from page.basePage import Page
import unittest

class UiTester(unittest.TestCase):#繼承unittest.TestCase類下面的方法setup(),teardown()
    # def setUp(self):#每條測試用例執行之前,先執行它
    #     pass
    # def tearDown(self):#每條測試用例執行之后,執行它
    #     pass
    @classmethod
    def setUpClass(cls):#類里面的函數執行之前,最先執行它(所有用例執行之前,執行一次)
        cls.page=Page()#實例化,打開瀏覽器
        cls.page.open()#打開url網頁

    def test_a_login(self):#這是case,每個頁面里的功能點,用例與數據源分離,方便維護
        self.page.send_username()
        self.page.send_passwd()
        self.page.login()
        self.assertTrue(self.page.check_login())
    def test_b_creatbug(self):
        self.page.clickbug()  # 進入到bug頁面
        self.page.mentionbug()  # 點擊提bug按鈕,進入到提bug頁面
        self.page.selectmodule()  # 選擇所屬模塊
        self.page.bugtype()  # 選擇bug類型
        self.page.os()  # 選擇操作系統
        self.page.browser()  # 選擇瀏覽器
        self.page.version()  # 選擇影響版本
        self.page.assignto()  # 選擇分配人
        self.page.deadline()  # 選擇截止日期
        self.page.bugtitle()  # bug標題
        self.page.context()  # bug步驟
        self.page.mailto()  # 超送人
        self.page.file()
        self.page.save()
        self.assertTrue(self.page.check_creatbug())
    @classmethod
    def tearDownClass(cls):#類里面的所有測試用例執行之后,最后執行它(所有用例執行之后,執行一次)
        cls.page.quit()

lib目錄:

pyse.py文件主要存放操作元素的方法比如:click(),send_keys(),double_click(),drag_and_drop()等等

page目錄:basepage.py,根據PO思想,將每個頁面作為一個類,每個頁面的功能點作為這個類的一個函數。將所有頁面寫出來

在用例文件test_case.py中調用上面的函數,每個頁面作為一個用例,調用每個頁面的函數

bin:start.py寫運行用例的流程:

創建測試集合,找到測試用例,將每個測試用例加到測試集合中,運行用例,產生報告。

 from lib.logger import logger
from lib.path import WEBCASEPATH,REPORTPATH
from lib.HTMLTestRunner import HTMLTestRunner
import unittest
from lib.tool import Tool
class Main(object):
    def run(self):
        Tool().clear_picture()
        suite = unittest.TestSuite()
        cases = unittest.defaultTestLoader.discover(WEBCASEPATH)
        print(cases)
        for case in cases:
            print(case)
            suite.addTest(case)
        f = open(REPORTPATH,'wb')#打開一個報告文件
        runner = HTMLTestRunner(f,verbosity=1,title=u'測試報告', description=u'用例執行情況:')
        runner.run(suite)
        f.flush()
        f.close()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM