米哈游二面
自動化測試中自動化驅動的能力?
pytest的驅動能力:
1,自動發現測試用例:以"test_"開頭的Python文件、以"Test"開頭的類和以"test_"開頭的函數,將它們識別為測試用例
2,靈活的測試收集:@pytest.mark.parametrize實現參數化測試,使用@pytest.mark.skip跳過某些測試,使用@pytest.mark.xfail標記預期失敗的測試,
3,斷言支持:assert,assertEqual,assertTrue
4,豐富的插件生態系統:pytest-allure,pytest-xdist、pytest-cov,pytest-rerunfailures
5,并行化執行:pytest-xdist -n 多cpu并行執行。
6,豐富的測試報告:allure,html測試報告
如何理解手工測試和自動化測試?
1,相輔相成的關系,可以結合使用,根據具體的測試需求和資源限制來選擇合適的測試方法。
2,二者可使用的測試場景不同:手工測試適用于一些場景,如探索性測試、用戶體驗測試、邊界條件測試等,以及一些難以自動化的測試任務。自動化測試通常適用于需要頻繁執行、回歸測試、性能測試等場景,以及一些可重復和可預測的測試任務。
給了一個新需求,測試的流程是怎樣的?
1,需求分析:仔細閱讀和理解給定的新需求。與相關的項目團隊成員(如業務分析師、產品經理)一起討論需求的細節和期望的功能行為。
2,編寫測試計劃:根據需求分析結果,編寫測試計劃。測試計劃應包括測試目標、測試范圍、測試資源、測試環境、測試策略、測試方法和測試進度等內容。
3,制定測試用例:基于需求分析和測試計劃,編寫測試用例來覆蓋新功能的各種情況和邊界條件。測試用例應包括輸入數據、預期結果和執行步驟。
4,準備測試環境:確保測試環境滿足新功能的測試要求。這可能涉及設置測試數據庫、配置測試服務器或模擬特定的外部系統等。
5,執行測試用例:按照測試計劃和測試用例的要求,逐個執行測試用例。記錄測試執行過程中的輸入、輸出和觀察到的結果。
6,缺陷追蹤:對于發現的缺陷,使用缺陷追蹤系統(如JIRA、Bugzilla等)進行記錄和跟蹤。提供詳細的缺陷描述、重現步驟和附加信息,以便開發團隊進行修復。
7,回歸測試:如果有其他已有功能或相關模塊受到新需求的影響,執行回歸測試以確保新功能的引入沒有破壞現有功能。
8,評估和報告:評估測試結果,根據測試執行情況和缺陷統計生成測試報告。報告應包含已執行的測試用例數量、通過和失敗的測試用例數量、缺陷統計和風險評估等信息。
現有功能上線之后,后續測試流程?
1,針對以往功能跑一遍回歸測試,確保新引入的功能不會對原有的功能產生影響。
2,對集成的新功能進行測試,確保新功能可用。
3,缺陷管理,對測試新功能或者回歸測試中的問題進行管里。
4,封版前,對新功能進行回歸測試。確保新功能沒有問題。
如何抽取測試用例為自動化測試用例?怎么判斷?
1,重復執行的測試用例
2,高風險和關鍵功能,
3,可重復性和可靠性
4,可驗證性和可回歸性的測試用例
在用現有的問題去做自動化的時候,又遇到比較深刻的問題嗎?
測試的時候,準入準出的標準?準入=提測,準出=測試通過
測試準入標準如下:
(1)開發編碼結束,開發人員在開發環境中已經進行了單元測試,即開發人員完成自測。
(2)軟件需求上規定的功能都已經實現。如果沒有完全實現,開發人員提供測試范圍。
(3)測試項目通過基本的冒煙測試,界面上的功能均已經實現,符合設計規定的功能。
(4)被測試項目的代碼符合軟件編碼規范并已通過評審。
(5)開發人員提交了測試申請并提供了相應的文檔資料。
測試準出標準如下:
(1)測試項目滿足客戶需求。
(2)所有測試用例都已經通過評審并成功執行。
(3)測試覆蓋率已經達到要求。
(4)所有發現的缺陷都記錄在缺陷管理系統。
(5)一、二級錯誤修復率達到100%。
(6)三、四級錯誤修復率達到了95%。
(7)所有遺留問題都有解決方案。
(8)測試項目的功能、性能、安全性等都滿足要求。
(9)完成系統測試總結報告。
mock測試?
含義:Mock測試是一種測試方法,通過模擬(Mock)外部依賴或復雜的組件,來隔離被測試單元的行為,以便更專注地測試目標單元的功能。
框架:Python的unittest.mock
1,創建mock對象
2,創建測試對象,將mock對象注入
3,調用測試對象中的方法進行測試
4,驗證Mock對象的方法調用和參數傳遞assert_called_once_with()
5,驗證返回值
fiddler的使用場景:
- 調試HTTP請求和響應:Fiddler可以捕獲和顯示應用程序發送和接收的HTTP請求和響應,包括請求頭、請求體、響應頭、響應體等。通過查看這些信息,您可以分析請求和響應的內容、頭部信息、狀態碼等,有助于識別問題和調試錯誤。
- 模擬網絡環境:Fiddler允許您模擬不同的網絡環境,例如低速連接()、高延遲()、丟包()等。通過模擬這些網絡條件,您可以測試應用程序在不同網絡環境下的性能和穩定性,以確保應用程序在真實網絡環境中的良好表現。
- 改請求和響應:Fiddler提供了修改請求和響應的功能,您可以修改請求頭、請求體、響應頭、響應體等,并觀察應用程序對修改的響應。這對于測試特定情況下的應用程序行為、調試安全性問題或進行API集成測試非常有用。
- 排查性能問題:Fiddler可以幫助您分析網絡請求的性能,包括請求的延遲、傳輸時間、頁面加載時間等。通過查看這些性能指標,您可以識別潛在的性能問題,例如慢速請求、多次請求等,并進行優化和改進。
如何使fiddler抓取https的接口
1,下載https證書
2,配置https的證書
3,在tools - options-https中配置抓取https的請求
4,在瀏覽器中設置fiddler代理。
1<x<=100,等價類設計?邊界值設計?
邊界值測試:
輸入邊界值測試:測試最小輸入值1和最大輸入值100。
邊界內測試:測試2、99等邊界內的值。
等價類測試:
選擇一個等價類的最小值:測試1。
選擇一個等價類的最大值:測試100。
選擇一個等價類的中間值:測試50。
選擇一個等價類的其他值:測試2、5、10、20等。
https的常用方法:
GET方法:用于從服務器獲取資源。GET請求將參數附加在URL的查詢字符串中,并在請求頭中以明文形式發送。
POST方法:用于向服務器提交數據。POST請求將參數包含在請求體中,并在請求頭中以明文形式發送。
PUT方法:用于向服務器上傳或替換資源。PUT請求將請求體中的數據上傳到指定的URL,并用該數據替換服務器上對應的資源。
DELETE方法:用于請求服務器刪除指定的資源。
HEAD方法:類似于GET方法,但只返回響應頭,不返回實際響應體。主要用于獲取資源的元數據信息。
OPTIONS方法:用于請求服務器返回支持的HTTP方法和其他可用選項。
深圳市騰娛互動科技有限公司
自動化測試用例怎么做的?(用例如何設計)?
創建兩個py文件,一個用來定位元素,執行元素的操作,一個用來編寫具體的測試用例
1,創建測試類
2,定義測試方法
1,元素定位以及路徑
2,對頁面元素執行的操作,以及用例涉及的邏輯處理,比如創建用戶,需要輸入用戶名,郵箱,點擊創建按鈕,斷言 創建結果
接口如何測試?
1,分析接口文檔(如果沒有接口文檔,需要自己通過抓包工具獲取接口的請求參數)
2,設計相關測試用例:請求參數的必填,格式要求等
3,準備測試環境
4,執行測試用例
5,缺陷創建,溝通,跟蹤,驗證
6,注意異常數值的處理
參數合法不合法如何考慮
1,根據需求確定合法的參數范圍,并再次基礎上編寫測試用例。
2,編寫測試用例,設計出合法的參數用例以及不合法的參數用例。
比如?參數必須是整形,設計相關用例
1,正常值:正整數
2,邊界值:-2147483648(32位有符號整數的最小值);2147483647(32位有符號整數的最大值)
3,非法值:負整數,浮點數,字符串,布爾值,特殊字符
4,多值測試:
5,性能和負載,傳遞大量整數值的數組
如何帶領團隊做回歸的?
為什么是我來帶領大家做?
元神中新增了一個角色,如何設計相關測試用例?
角色屬性測試:例如角色名稱、等級、生命值、攻擊力等。、
角色能力測試:包括攻擊技能、防御技能、輔助技能等。
角色界面測試:包括角色模型、頭像、描述信息等。
角色升級測試:驗證角色升級后屬性、能力等是否按照預期變化。
角色裝備測試:是否能夠正常穿戴裝備,例如武器、護甲、飾品等,測試裝備對角色屬性和能力的影響是否正確,例如攻擊力增加、防御力提升等。
角色交互測試:NPC對話、與其他玩家進行交互等。
角色存儲和加載測試:包括保存角色數據、讀取角色數據等。
角色性能和穩定性測試:進行角色的性能和穩定性測試,驗證角色在大量數據或高負載情況下的表現。
發現一個問題怎么去推進?
需求問題:
缺陷問題:
缺陷有歧義如何解決?
知迪汽車
1,虛擬內存和物理內存的區別
1,定義:
物理內存(也稱為主存或實際內存)是計算機系統中實際存在的硬件內存,用于存儲正在執行的程序和數據。
虛擬內存是計算機系統中的一種抽象概念,它擴展了物理內存的容量,使得程序可以訪問比實際可用物理內存更大的地址空間
2,大小
物理內存的大小是硬件決定的,通常以字節為單位,可以根據計算機系統的配置進行擴充或減少。
虛擬內存的大小可以比物理內存大得多,它可以通過操作系統的管理機制,將部分數據和程序存儲在磁盤上,以釋放物理內存并提供更大的地址空間。
3,訪問速度
物理內存的訪問速度比較快,因為它直接與處理器相連,數據可以通過內存控制器快速讀取和寫入。
虛擬內存的訪問速度相對較慢,因為數據需要從磁盤上的虛擬內存頁面(頁)中加載到物理內存中才能被處理器訪問。
4,空間分配
物理內存的空間是有限的,由操作系統分配給不同的程序和進程。
虛擬內存的空間是邏輯上連續的,可以超過物理內存的容量,由操作系統管理和分配。
5,內存管理
物理內存的管理包括分配、回收和維護內存的數據結構,以保證程序可以正確訪問和使用內存。
虛擬內存的管理包括將虛擬地址映射到物理地址的轉換,頁面置換算法用于將磁盤上的頁面加載到物理內存中,并進行頁面替換。
6,缺頁管理
當程序訪問的數據在物理內存中不存在(即缺頁)時,處理器會觸發缺頁中斷,操作系統會將相應的頁面從磁盤加載到物理內存中。
虛擬內存中的缺頁中斷會導致頁面置換操作,將不常用的頁面從物理內存中替換出來,以便為新的頁面騰出空間。
2,App monkey測試的時候,如何確定問題發生在哪里?log?
1,日志分析
2,錯誤報告和崩潰日志
3,運行日志
4,重現步驟
3,操作系統:堆和棧的區別
堆和棧在內存管理和數據存儲方面有著不同的特點。堆適用于動態分配和釋放內存,并且可以在程序的任何地方訪問,而棧適用于臨時存儲局部變量和函數調用的上下文信息,具有自動分配和釋放的特性。
5,如何確保CPU中的進程是游戲相關的?
1,進程查找,ps,top,htop
2,進程資源占用:使用命令如top或htop按照CPU利用率或內存占用進行排序,尋找占用較高的進程并檢查其名稱和描述信息。
3,進程關聯性:使用命令如pstree或pgrep來查看進程之間的關系和依賴關系
4,進程標識:進程名稱,進程id(PID)
5,進程監控工具:GameMode可以自動檢測游戲進程并應用相關的性能設置