零基礎測試開發考核體系:
Python知識:
1、字典排序使用到的函數具體是哪個?舉例說明
sorted()
2、字元串格式化使用到的關鍵字是哪個,舉例說明
format
3、清單中append()與insert()的差別是什麼?舉例說明
append():添加字元串到索引最後一位
insert():可指定位置
4、清單與元組的差別是什麼
元組是不可變的:不能增加,也不能把原有的删除
清單是可變的:可以增加,也可以把原有的删除
5、檢視一個對象的類型關鍵字是什麼?檢視對象的記憶體位址關鍵字是什麼
type()
id()
6、怎麼擷取字元串的索引資訊
1 2 3 | |
7、舉例說明清單推導式的使用
|
8、當元組隻有一個對象的時候,需要注意什麼?
最後加,
9、怎麼了解函數的傳回值?
(1)在一個函數裡,沒有關鍵字return時,傳回值是None
(2)在一個函數裡,有關鍵字return時,它的傳回值就是return後面的值
(3)函數的傳回值可以是函數形式
10、怎麼了解函數的動态參數
在函數參數、類型不确定的時候使用動态參數
11、字元串與清單之間的互相轉換
字元串→清單:.split(" ")
清單→字元串:" ".join()
12、字元串的替換使用到的方法是?
replace()
13、怎麼了解is,in,==
in:判斷的是兩個對象中一個對象是否包含另外一個對象
is:判斷的是兩個對象的記憶體位址
==:比較兩個對象的内容以及類型是否一緻
14、使用os庫編寫一個檔案的路徑拼接
4 | |
15、怎麼了解序列化與反序列化
序列化 :把python對象轉換為字元串的資料類型,(把 python的資料類型(字典、元組,清單),轉換為str資料類型的過程)
反序列化:就是把str的資料類型轉換為python對象的過程(把str資料類型轉換為python的資料類型(字典、元組,清單)的過程)
16、舉例說明檔案的a,w,r的模式
w:
5 6 | |
運作結果:

a:
|
r:
7 8 9 10 | |
17、使用with上下文的模式來處理檔案
11 12 13 14 15 16 17 18 19 20 21 22 23 | |
運作結果:
18、怎麼了解編碼與解碼
編碼:就是把str的資料類型轉為bytes的資料類型的過程,使用到的關鍵字是encode
解碼: 把bytes的資料類型轉為str的資料類型的過程,使用到的關鍵字是decode
19、使用datetime擷取目前的時間
|
運作結果:
20、使用time等待5秒的時間
import
time
time.sleep(5)
21、怎麼了解裝飾器
在很多程式都要修改一個内容時,使用裝飾器可以一次性解決
22、怎麼了解局部變量與全局變量
全局變量:在一個Python檔案裡面,定義的變量,可以把它了解為全局變量,在Python檔案中,全局變量的優先級是高于
局部變量的
局部變量:在一個Python檔案裡面的函數裡面,定義的變量,可以了解為局部變量,在函數内部,局部變量的優先級是高于
全局變量的
在函數内部使用全局變量的時候,可以使用關鍵字global來引用,global申明全局變量
23、Java的繼承與Python的繼承有什麼差別
Java的繼承是單繼承
Python的繼承是多繼承
24、如果子類重寫了父類的方法,那麼執行個體化子類後,調用重寫後的方法,調用的是子類的方法還是父類的方法
子類
Linux知識:
1、檢視程序的指令
ps -elf
2、檢視端口的指令
lsof -i
3、賦予檔案權限的關鍵字
chmod
4、r,w,x對應的數字是多少
r --> 4
w --> 2
x --> 1
5、給一個檔案給rwx權限
chomd 421 檔案名
6、git送出檔案的指令是什麼
git add 檔案名
git commit -m " "
7、git建立倉庫的指令是什麼
git init
8、檢視記憶體的指令
free
9、編輯檔案的步驟
步驟一:touch建立新的空白檔案
步驟二:vim 進入編輯檔案,添加文字
步驟三:Esc+:wq儲存檔案
10、檢視檔案前5行的指令
head -n 5
11、檢視檔案後10行的指令
tail -n 10
12、檔案檢視指令
cat
13、平均負載怎麼檢視
uptime
API知識:
1、HTTP的完整請求流程
第一步:用戶端與服務端之間建立TCP的連接配接
第二步:用戶端向服務端發送request請求
第三步:服務端向用戶端response響應回複
第四步:關閉TCP連接配接
2、怎麼了解get和post請求
get:擷取資料
post:添加資料
3、在postman中寫斷言的地方為?
tests中
4、怎麼了解postman裡面的collections
collection集合: 在postman中能夠批量運作集合裡的測試用例 ;能夠解決集合中的業務關聯。
5、動态參數在postman裡面的解決思路,請使用步驟的方式描述出來
以添加删除書籍為例
步驟一:擷取用例的書籍ID
步驟二:将書籍ID 設定為變量
步驟三:删除書籍時調用這個變量
6、在postman中,怎麼調用變量
{{變量}}
7、接口斷言需要是那方面
(1)業務狀态碼
(2)協定狀态碼
(3)響應資料
8、怎麼了解協定狀态碼:404
請求資源并不存在
9、如果一個接口通路時400,排查思路時什麼?
(1)請求參數
(2)請求參數類型(例如int)
(3)特定類型(例如性别)
(4)請求頭(缺少)
10、怎麼了解同步通信
同步請求:用戶端向服務端發送請求,服務端必須做出響應
缺點:用戶端發送請求,服務端遲遲不作出回應
用戶端發送的請求為計算量大或邏輯存在問題,請求就會堵塞,後面就會積壓
11、怎麼了解異步通信
在異步的互動中,用戶端和服務端互相不需要關注對⽅的存在,隻需要關注對應的MQ的消息,用戶端與服務端的互動主要是會通過MQ的消息中間作為消息的傳遞來進⾏互動的。
12、怎麼了解cookie,session,token
cookie請求:用戶端發送登入請求,生成一個cookie憑證,服務端通過set-cookie把cookie再返給用戶端,用戶端再将請求頭cookie帶上傳回的憑證發送給服務端。
session請求:用戶端發送登入資訊登入成功後生成session ID,set-cookie将session ID給用戶端,請求頭cookie帶上session ID再給服務端。
token請求:本質上和session的原理差不多。使用者登入系統生成token,每次生成的token都是随機的字元串,
cookie存儲在用戶端session、token存儲在服務端
都用來驗證資訊正确性
13、請按步驟的方式描述session的請求流程
已請求登入為例:
第一步:用戶端發送登入請求資訊,服務端生成sessionID
第二步:服務端将sessionID傳回給用戶端
第三步:用戶端在cookie中帶上sessionID發送給服務端,服務端核對sessionID的真确性
14、如果發送請求,協定狀态碼傳回500的錯誤,怎麼解決?
代碼出錯,查代碼。
15、怎麼了解協定狀态碼和業務狀态碼
HTTP 狀态碼是 HTTP 協定的工程實作。如果伺服器端的實作不符合協定的規定,我們可以認為 伺服器的 HTTP 實作是錯誤的
業務狀态碼是服務端給出的關于業務描述的碼,用于用戶端明确得知本次請求的資源的狀态情況
測試基礎理論:
1、bug完整的生命周期
2、編寫測試用例的要素是什麼?
3、怎麼了解黑合測試,白盒測試
4、測試按階段劃分,主要分為那幾個階段
5、怎麼了解等價類和邊界值
6、請描述一個完整的測試流程
UI自動化測試:
1、常用的元素定位有那幾種方法,請舉例說明
class By(object):
ID="id"
XPATH="xpath"
LINK_TEXT="link text"
PARTIAL_LINK_TEXT="partial link text"
NAME="name"
TAG_NAME="tag name"
CLASS_NAME="class name"
CSS_SELECTOR="css selector"
2、單個元素定位與多個元素定位的差別是什麼?
單個元素定位:find_element
多個元素定位:find_elements
單個元素定位和多個元素定位的差別就是,單個元素定位傳回是單個元素,多個元素定位傳回的是包含多個元素的一個清單。
3、如果是iFrame的架構,如何來定位裡面的元素屬性的對象
或者id定位:
driver.switch_to.frame('login_frame')
使用索引:
driver.switch_to.frame(0)
4、怎麼了解頁面對象設計模式
在 UI 自動化測試中對頁面元素的處理引入面向對象思想。從測試用例中剝離頁面元素操作,并以頁面為機關的類将頁面元素上的定位方式及操作進行封裝。
5、怎麼了解顯式等待和隐式等待
顯示等待:顯式等待指定某個條件,然後設定最長等待時間。如果在這個時間還沒有找到元素,那麼便會抛出異常了。
隐式等待:等待時間完成即可(機關:秒)預設等待時間為0
6、在測試中遇到多視窗,具體怎麼解決,請描述具體的步驟和編寫具體的案例代碼
1、循環所有的視窗
2、判斷是否是目前視窗
3、如果不是,切換到新的視窗
4、在新的視窗進行操作
5、關閉新的視窗
6、切換到最開始視窗
|
發現BUG-->送出BUG-->指派BUG-->研發确認BUG-->研發去修複BUG-->回歸驗證BUG-->是否通過驗證-->關閉BUG
⽤例ID;
⽤例名稱;
測試⽬的;
測試級别;
參考資訊;
測試環境;
前提條件;
測試步驟;
預期結果;
設計⼈員。
黑盒測試:功能測試
白盒測試:
可以看見程式的内部的結構關系,是代碼級别測試,針對函數或者方法、邏輯準确性的測試。
這些測試就包含了針對程式判斷邏輯,判斷分⽀,判斷循環,程式流程⾛向的測試。
單元測試
內建測試
系統測試
驗收測試
等價類是對輸入資料 進行測試,分有效等價類和無效等價類 ,
如:年齡分數在0-100之間,有效等價類就是0-100之間的數字
無效等價類 就是,小于0,大于100的數字,
邊界值是對等價類的補充
單元測試架構:
1、unittest與pytest的架構
2、unittest的常用元件有哪些
TestCase:測試用例,測試用例裡面會有很多測試方法,是單元測試中最小次元的測試行為。
TestSuite:測試套件,是測試用例的集合。
TestFixure:測試固件,測試準備工作和收尾工作,打開和關閉浏覽器,連結和關閉資料庫,可有可無
TestRunner:測試運作器,運作測試用例。
TestReport:将測試結果呈現給使用者,生成測試報告。
3、unittest中怎麼了解測試固件
setUp() 方法用于初始化測試固件;而 tearDown() 方法用于銷毀測試固件
setUp() :最開始執行
tearDown():最後執行
4、怎麼了解setUp(),tearDown()與類測試固件的測試
局别:
setUp(),tearDown()每次都要執行
類測試固件隻執行一次
5、在unittest測試架構中,加載所有的測試子產品使用到的方法是什麼?具體參數是什麼?
用到的方法:discover
具體參數:
路徑參數,測試檔案名
6、在unittest中使用那個庫來生成對應的測試報告
HTMLTestRunner
7、一個完整的測試用例包含哪些步驟
拿到測試需求 -> 分析需求(畫思維導圖) -> 編寫⽤例 -> 劃分⽤例優先級
8、怎麼了解參數化
解決的問題:
測試進行相同的步驟,隻是輸入的資料不同,其他操作都是一樣的,這樣需要寫很多測試用例,參數化可以解決這種問題,讓代碼更加簡潔。
9、一個完整的自動化測試用例包含哪些?
(1)測試準備