<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 自動化測試篇 [TOC] > ### 舉例來說一下你的自動化測試是怎么做的? 參考答案:就拿簡歷上的xxx項目來說吧,在編寫腳本前,我們會對系統進行評估,確認這個系統可不可以實現UI自動化,如果可以的話,就篩選出能實現自動化測試的用例,一般優先把冒煙測試用例的轉為成腳本。我們是用selenium工具來實現自動化,采用python腳本語言,基于unittest框架進行用例的編寫。比如,下單這個功能的腳本,我們是這樣做的:首先,我們會構建一個測試工程,測試工程包含testcase,主要用來存放測試用例,report用來存放測試報告,其次我們會把用例中公共的部分封裝到public中,最后用runAllCase的python文件運行項目自動化用例,腳本調試完后,我們會用jenkins持續集成工具,設置腳本每天晚上10點跑一遍腳本,跑完后生成html格式的自動化測試報告。 ----------------**說法二**---------------------- ***就拿簡歷上的前進鏈項目來說,在編寫腳本前,我會先對系統進行評估,確認這個系統可不可以實現UI自動化,如果可以,就篩選出能實現自動化測試的用例,一般優先把冒煙測試用例轉化為腳本。 我是用selenium工具來實現自動化,采用python腳本語言,基于pytest框架進行用例編寫。首先,構建一個測試工程,測試工程包好testcase,用來存放測試用例,report用來存放測試報告, 其次會利用PO模式,將業務邏輯和測試邏輯相分離,再引入allure測試報告,在測試期間收集測試數據。*** > ### 自動化腳本失敗的原因: 1. 可能是測試環境的網絡不穩定; 2. 開發修改了代碼沒通知到測試人員修改腳本; 3. 開發引入了新的問題。 > ### 測試腳本用到了哪些技術? 參考答案:元素定位,表單切換,模塊調用,JS定位等等,腳本是基于python自帶的unittest單元測試框架,采用了模塊化方式編寫,把復用性高的操作封裝到公共模塊中,如果腳本需要用到對應的操作,直接調用就可以了,如果元素發生變化,只需要調整元素封裝的代碼就可以了,提高測試用例的可維護性。 > ### xpath和CSS定位方式的區別: 1、語法不一樣; 2、CSS定位比較穩定、快速。 > ### 腳本怎么組織的?(編寫自動化腳本,你的思路是什么?) 參考答案:構建一個測試工程,測試工程包含testcase,主要用來存放測試用例,report用來存放測試報告,其次我們會把用例中公共的部分封裝到public中,最后用runAllCase的python文件運行項目自動化用例。測試腳本使用的是python的unittest單元測試框架組織管理,將所有測試腳本通過單元測試框架組織起來運行,這樣做的好處是,維護起來方便,可以生成測試html格式的測試報告,報告包括:測試用例,通過數,失敗數。 > ### 自動化率多少? 一般是30%到40%,這個沒有固定的,我們是優先將優先級高的測試用例,比如,冒煙測試的測試用例轉換成自動化腳本的,后面有時間的時候再不斷補充,能寫多少寫多少。 > ### 自動化腳本的通過率是多少?(注意這個題目的意思) 參考答案:這個說不準,如果沒有什么異常情況,自動化腳本都是100%運行通過;如果異常情況比較多,比如出現測試環境不穩定,或者開發修改了代碼沒通知到測試人員及時修改腳本,又或者開發引入了新的問題等等,自動化腳本通過率可能80%都不到。 > ### 用那個方法判斷元素是否顯示 is\_displayed() > ### 你曾經都寫過多少自動化測試用例? 這個具體沒有算過。但是只要有時間,模塊穩定的功能都會寫。就拿上個項目來說,自動化測試用例大概寫了將近有100-120條這樣子吧。 > ### python3 的數據類型有哪些? int (整型) float (浮點型) str(字符串) List(列表) Tuple(元組) Set(集合) Dictionary(字典) 不可變數據(四個):int (整型)、float (浮點型)、str(字符串)、Tuple(元組)、Set(集合); 可變數據(兩個):List(列表)、Dictionary(字典)。 > ### 面:unittest框架了解嗎? 參考答案:unittest框架,由setUp()--環境預置,testCase()--- 測試用例 tearDown()----環境恢復,三大部分組成,unittest框架可組織執行測試用例,并且提供豐富的斷言方法,判斷測試用例是否通過,最終生成測試結果。 > ### 怎樣用python連接mysql數據。 參考答案:我們之前主要是用python語言來寫web端的自動化測試腳本,沒有連過mysql數據庫,到時候工作需要的話,學一下很快就能上手了。 > ### 用python做過接口測試自動化測試嗎? 參考答案:我們之前主要是用python語言來寫web端的自動化測試腳,接口是用Jmeter來做的,用python寫接口的腳本也在網上學習過,但是工作中沒用用過,到時候工作需要的話,再學一下應該沒問題。 > ### 元素定位失敗的原因 1. 頁面的元素未加載完成 2. 元素的屬性值不唯一 3. 元素的屬性值是動態值 4. 元素在另外一個表單 5. 元素在另外一個頁面 > ### 自動化腳本,如何切換不同的瀏覽器 參考答案:使用對應的瀏覽器驅動,然后在腳本中更換不同的瀏覽器。 > ### 你的python水平很一般啊?(遇到這種否定你的問題,一定不能虛!) 參考答案:我現在掌握的python知識,做ui層的自動化測試是可以的,代碼的封裝,調用這些都沒問題;我一般是會做,但不是很會用文字描述出來,我以注意到這點,現在也在加強提升自己的總結能力。 PS---重點強調:凡是遇到被面試官否定的,都要想辦法懟回去,輸也要輸得精彩些,但是,懟回去的時候,要注意語氣,要有禮有節,不卑不亢。 > ### python怎么定義一個函數,怎么定義一個類 ~~~ def 函數名: 函數體 class 類名: 屬性 方法 ~~~ > ### 有些元素,在谷歌瀏覽器上能定位,在火狐瀏覽器上定位失敗,是什么原因呢? 參考答案:因為不同瀏覽器的內核不一樣,他們的CSS樣式不一樣。 > ### 如何提高selenium腳本的執行速度? 1. 提高網速; 2. 少用sleep,多用隱式等待或顯式等待。 3. 提升電腦配置 > ### 元素定位的方式有哪些 ~~~ d.find_element_by_id('id的值') d.find_element_by_name('name的值') d.find_element_by_class_name('class的值') d.find_element_by_tag_name('標簽名') d.find_element_by_link_text('完整的文本鏈接') d.find_element_by_partial_link_text('部分的文本鏈接') d.find_element_by_css_selector('css表達式') d.find_element_by_xpath('xpath表達式') js定位 ~~~ > ### 如何切換iframe `switch_to.frame()` > ### 如何切換窗口 `switch_to.window()` > ### 鼠標懸停的方法是什么 鼠標懸停用到`ActionChains`類提供的`move_to_element`方法 > ### 如何定位下拉框 需要導入`Select`類,可以使用下標、值和文本定位 > ### 如何獲取彈出警告框的text `switch_to.alert.text` > ### 什么樣的項目適合做自動化 項目周期長,版本多,界面元素穩定的項目 > ### selenium如何做兼容性測試 使用對應的瀏覽器驅動,然后在腳本中更換不同的瀏覽器。 > ### 為什么會生成HTML報告 使用了HTMLTestRunner第三方工具包來實現的 > ### 腳本運行出錯,應該怎樣定位,說出分析過程 運行結束之后我們會得到一個測試報告,我們根據測試報告先定位一下是腳本的原因還是程序的原因,一般來說腳本的原因在報告中都會顯示出哪一行代碼出錯了,如果是程序的原因通常來說都是斷言的問題。 > ### 如果系統有驗證碼,怎么做自動化? 1. 去掉驗證碼。 2. 設置萬能驗證碼。 3. 用python調用OCR模塊,自己寫代碼來識別。這種方法可以識別出簡單的驗證碼。 4. 調用第三方平臺提供的接口進行識別。比如:斐斐打碼,尖叫數據這些平臺接口。 > ### setUp(),tearDown()和setUpClass(),tearDownClass()的區別: 參考答案:當測試用例有多個,setUp()和tearDown()就會被執行多次;不管測試用例有多少個,setUpClass()和tearDownClass()只會被執行一次。 > ### python的第三方模塊/標準庫有哪些? time,random,unittest,selenium,HTMLTestRunner > ### python的pass語句的作用是什么? 參考答案:占位符,當方法沒有內容時,防止出現語法錯誤。 > ### 自動化寫過哪些模塊的腳本? 參考答案:主要是把冒煙測試的用例轉化為腳本,比如,我這個xx商城系統,做自動化的模塊有后臺的上架商品,訂單查詢,添加團購活動,促銷活動,前臺的搜索商品,添加商品到購物車,下單等等。 > ### 元素的屬性值是動態變化的,怎么定位這個元素? 參考答案:如果元素有屬性值是動態變化的,我們就不要使用這個屬性進行定位;我們可以使用這個元素的非動態變化,并且是唯一的值屬性進行定位;也可以使用xpath或者css,使用層次+屬性的方式定位。 > ### webdriver的原理是什么? 參考答案:瀏覽器的驅動,接收客戶端發過來的指令(指令就是我們的腳本),瀏覽器的驅動根據接收到的指令,驅動瀏覽器工作。 > ### 你們是怎么檢查自動化的結果是不是正確的? 參考答案:我們會用unittest單元測試框架提供的斷言方式來檢查實際結果和預期結果是否一致,常用的斷言方式有assertEqual(),assertIn(),還有一些其他的,不常用就沒記了。 > ### 怎么樣提升自動化腳本成功率 1. 在容易失敗的地方,加上sleep 2. 盡量定位一些穩定的元素 3. 使用try..except多中方式定位 > ### unittest單元測試怎么安裝的? 參考答案:不需要安裝,是python自帶的,直接通過import 關鍵字引用就可以了。 > ### pytest了解嗎? 參考答案:也是python的一個單元測試框架,它的用法比unittest框架復雜些。自動化測試我們一般是基于unittest框架來做的,pytest用的少,以后工作需要,我業余時間學習一下,很快上手。 > ### po(page object:頁面對象)設計模式了解嗎? 參考答案:po還是了解的。po是web自動化測試目前最佳的一種實踐方式,簡單來說就是類和類之間的封裝和調用。 包括基礎類、頁面類、用例層等部分。目前正在往這個方面進階腳本。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看