單元測試框架(二)
阿新 • • 發佈:2021-08-21
# !/usr/bin/env python # -*- coding:utf-8 -*- ''' Java的繼承與Python的繼承有什麼區別 Java:物件在呼叫父類中方法時,該方法呼叫的方法會優先使用子類的方法,呼叫的成員變數會優先呼叫父類的變數。 Java:因為涉及到變數屬性的問題,必須對物件進行降級和轉換才能使用子類的方法和屬性。 python:物件在呼叫父類中方法時,呼叫的方法和變數都優先呼叫子類的方法和變數。 python:天生多型 如果子類重寫了父類的方法,那麼例項化子類後,呼叫重寫後的方法,呼叫的是子類的方法還是父類的方法 class Person(object): def __init__(self, name, age): self.name = name self.age = age def show(self): print('name is {0},age is {1}'.format(self.name, self.age)) class Work(Person): def __init__(self, name, age, salary): # super()的方法繼承父類的例項屬性 # super().__init__(name, age) Person.__init__(self, name, age) self.salary = salary def show(self): print('name is {0},age is {1},salary {2}'.format(self.name, self.age, self.salary)) objPerson = Work(name='admin', age=19, salary=1000.1) objPerson.show() 優先呼叫子類方法 UI自動化測試: 常用的元素定位有那幾種方法,請舉例說明 在element加s為多種元素定位方法。 一般用於以下場景: (1)批量操作物件,比如將頁面上所有的複選框都被勾選。 (2)先獲取一組物件,再在這組物件中過濾出需要具體定位的一些物件。 id | find_element_by_id() name | find_element_by_name() class name | find_element_by_class_name() tag name | find_element_by_tag_name() link text | find_element_by_link_text() partial link text | find_element_by_partial_link_text() xpath | find_element_by_xpath() css selector | find_element_by_css_selector() 單個元素定位與多個元素定位的區別是什麼? 單個元素標籤用於定位單個元素 多個元素定位用於定位一組元素 如果是iFrame的框架,如何來定位裡面的元素屬性的物件 先進入對應frame框架再定位元素 frame框架一般通過ID、NAME、索引形式 怎麼理解面向物件設計模式 建立可以跨多個測試用例的共享程式碼 減少重複程式碼 減少維護成本 怎麼理解顯式等待和隱式等待 顯示等待:定義了等待條件,只有該條件觸發,才執行後續程式碼。 隱式等待:嘗試發現某個元素的時,如果沒立刻發現,就等待固定長度的時間。 在測試中遇到多視窗,具體怎麼解決,請描述具體的步驟和編寫具體的案例程式碼 對A視窗控制代碼賦值給一個變數 nowHandler=self.driver.current_window_handle 對B視窗控制代碼賦值給一個變數 allHandlers=self.driver.window_handles 對視窗控制代碼進行對比迴圈到新視窗 for handler in allHandlers: if nowHandler!=handler: self.driver.switch_to.window(handler) 判斷視窗是否為預期視窗 self.assertEqual(self.driver.title,'QQ註冊') 單元測試框架: unittest的常用元件有哪些 test fixture:初始化和清理測試環境 setUp()和setDown(), setUpclass()和setDownclass()最常用的方法 test case:單元測試用例 TestCase是編寫單元測試用例最常用的類 test suite:單元測試用例的集合 TestSuite 是最常用的類 test runner:執行單元測試 test report:生成測試報告 unittest中怎麼理解測試韌體 測試韌體是執行測試時的準備工作和收尾工作,測試環境初始化和關閉,資料進行還原操作 怎麼理解兩種測試韌體的區別的測試 setUp()、setDown()用例類 開啟瀏覽器輸入對應網址這些操作 給資料還原,這就是執行用例的後置條件。 對每個用例執行 setUpclass()和setDownclass()測試類 開啟瀏覽器輸入對應網址這些操作 給資料還原,這就是執行用例的後置條件。 對整個測試類執行一次 在unittest測試框架中,載入所有的測試模組使用到的方法是什麼?具體引數是什麼? import unittest 引入unittest庫 unittest.TestLoader().discover 獲取被執行的測試套件 在unittest中使用那個庫來生成對應的測試報告 引入import HTMLTestRunner.py生成 一個完整的測試用例包含哪些步驟 測試需求 --> 分析需求 --> 編寫用例 --> 劃分用例的優先順序 怎麼理解引數化 @parameterized.expand([ param('', '', ''), param('', '', ''), ]) 測試進行相同的步驟輸入的資料不的 測試按階段劃分,主要分為那幾個階段 單元測試,整合測試,系統測試,驗收測試 怎麼理解等價類和邊界值 等價類可分為有效等價類、⽆效等價類,是常⽤的⿊盒測試⽤例設計⽅法。 邊界值分析法是作為對等價類劃分法的補充,其測試⽤例來⾃等價類的邊界。針對某一事物設計他的測試用例 請描述一個完整的測試流程 PRD產品需求文件(互動,邏輯) PRD評審 研發(寫程式碼技術檔案,寫程式碼) 測試(寫計劃,寫方案,寫測試用例) 轉測試(冒煙測試,完成,上線) 開始測試 '''