1. 程式人生 > >python之web自動化測試框架

python之web自動化測試框架

數據源 tool 模塊 efault .html rom dead obj 類型

梳理下搭建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()

python之web自動化測試框架