點擊鏈接加入QQ群 522720170(免費公開課爆惧、視頻應有盡有):https://jq.qq.com/?_wv=1027&k=5C08ATe
1.列出你常用的linux命令
答:vim/touch/cat/tail/grep/cd/chmod/mv/rm等
2.測試接口時,常會遇到需要傳入不同參數(shù)來測試不同場景锨能,如何實現(xiàn)
答:自己寫方法扯再,并添加到test中去。詳細代碼后期補充址遇。
3.瀏覽器中輸入一個URL后熄阻,詳細說明將會發(fā)生什么
答:1.解析URL
2.通過DNS找到域名對應的服務器IP
3.瀏覽器與服務端進行TCP三次握手??
??第一次握手:客戶端向服務器端發(fā)送請求;
??第二次握手:服務器收到請求并確認倔约;
??第三次握手:客戶端收到服務器的回復指令并返回確認
4.請求和傳輸數(shù)據(jù)
5.瀏覽器渲染頁面
4.如何查看linux系統(tǒng)進程
答:ps?-aux?或ps?-aux?|?grep?java
5.如何查看linux實時日志文件
答:tail?-f?
6.如何查看Linux的CPU信息
答:cat?/proc/cpuinfo
7.進程和線程的區(qū)別
答:1.定義:
進程:進程有一定獨立功能的程序秃殉,是系統(tǒng)進行資源分配和調試的一個獨立單位
線程:線程是進程的一個實體,它比進程更小的能獨立運行的基本單位
2.關系:
同一個進程的多個線程之間可以并發(fā)執(zhí)行跺株;
相對進程而言复濒,線程可以與同進程中的其他線程共享數(shù)據(jù)
3.區(qū)別:
1)一個程序至少有一個進程,一個進程至少有一個線程
2)線程的劃分驚訝小于進程乒省,使得多線程程序的并發(fā)性高
3)進程在執(zhí)行過程中擁有獨立的內存單元巧颈,而多個線程共享內存,從而提高運行效率
4)每個進程有獨立的運行入口和出口袖扛,線程不能獨立運行
5)多線程的意義在于一個應用程序中砸泛,有多個執(zhí)行部分可以同時執(zhí)行十籍。
4.優(yōu)缺點
線程執(zhí)行開銷小,但不利于資源的管理和保護
進程正相反
8.給定一無序列表唇礁,如何去重勾栗,代碼實現(xiàn)
答:
1)解法一:
ids?=?[1,2,3,3,4,2,3,4,5,6,1]
new_ids?=?[]
for?id?in?ids:
??if?id?not?in?new_ids:
????news_ids.append(id)
print(new_ids)
2)解法二:
ids?=?[1,2,3,4,3,2,5]
new_ids?=?list(set(ids))
print(new_ids)
9.代碼寫說二分法查找
答:時間復雜度:O(log2n);
def?Search(array,t):
????low?=?0
????height?=?len(array)-1
????while?low?<?height:
????????mid?=?(low+height)/2
????????if?array[mid]?<?t:
????????????low?=?mid?+?1
????????elif?array[mid]?>?t:
????????????height?=?mid?-?1
????????else:
????????????return?array[mid]
????return?-1
if?__name__?==?"__main__":
????print(Search([1,5,6,8,10,15,18,25],5))
10.給一個數(shù)據(jù)庫表,一個Order表盏筐,有商戶id围俘,訂單id,?商品數(shù)量,與商品單價琢融,求某商戶的銷售額界牡,寫sql
答:
idOrder_idnumprice
1000190000013100
100019000002250
10002900000311000
SELECT?id,?(num?*?price)?as?sum_price?FROM?Order?ORDER?BY?id
11.接口測試時主要關注什么
答:狀態(tài)碼與消息值
12.HTTP錯誤中503代表什么意思
答:5XX為服務器返回的錯誤,其中503代表了服務不可用是的一種狀態(tài)漾抬,可能是服務器正在維護或者暫停了宿亡,或是CPU占用的頻率大導致的。
13.selenium中如何定位動態(tài)元素
答:1)?xpath?2)動態(tài)元素的規(guī)律?3)找到父元素纳令,通過dom結構定位
14.求一有序列表[1,2,3,4,4,4,5,6]中4的區(qū)間挽荠,代碼實現(xiàn)
答:
def?get_all_index(self,?arr,?target):
return?[i?for?i,?a?in?enumerate(arr)?if?a?==?target]
If?__name__?==?“__main__”:
arr?=?[1,2,3,4,4,4,5,6]
target?=?4
s?=?get_all_index(arr,?target)
print(s[0],?s[-1])
15.用代碼判斷一個IP是否正確
答:
1)解法一
try:
first?=?int(input(“請輸入第一個1-255數(shù)字:”))
second?=?int(input(“請輸入第二個0-255的數(shù)字:”))
third?=?int(input(“請輸入第三個0-255的數(shù)字:”))
fourth?=?int(input(“請輸入第四個0-255的數(shù)字:”))
except?Exception?as?e:
print(“請輸入數(shù)字”)
if?1?<=?first?<=?255:
if?0<=?second?<=?255:
if?0<=?third?<=?255:
if?0?<=?fourth?<=?255:
print(“IP?%s.%s.%s.%s有效”?%?(first,?second,?third,?fourth))
else:
print(“IP無效”)
2)解法二:
import?re????
def?judge_legal_ip(one_str):??
????'''''?
????正則匹配方法?
判斷一個字符串是否是合法IP地址?
????'''??????
compile_ip=re.compile('^((25[0-5]|2[0-4]d|[01]?dd?).)’
’{3}(25[0-5]|2[0-4]d|[01]?dd?)$')????
????if?compile_ip.match(one_str):????
????????return?True????
????else:????
????????return?False?????
def?judge_legal_ip2(one_str):??
????'''''?
????簡單的字符串判斷?
????'''??
????if?'.'?not?in?one_str:??
????????return?False??
????elif?one_str.count('.')!=3:??
????????return?False??
????else:??
????????flag=True??
????????one_list=one_str.split('.')??
????????for?one?in?one_list:??
????????????try:??
????????????????one_num=int(one)??
????????????????if?one_num>=0?and?one_num<=255:??
????????????????????pass??
????????????????else:??
????????????????????flag=False??
????????????except:??
????????????????flag=False??
????????return?flag??
if?__name__=='__main__':??
ip_list=['','172.31.137.251','100.10.0.1000','1.1.1.1','12.23.13',
'aa.12.1.2','12345678','289043jdhjkbh']??
????for?one_str?in?ip_list:??
if?judge_legal_ip(one_str):??#正則方法??
#if?judge_legal_ip2(one_str):??#字符串方法??
????????????print?('{%s}?is?a?legal?ip?address!'?%?(one_str))
????????else:??
????????????print?('{%s}?is?not?a?legal?ip?address!'?%?(one_str))
16.數(shù)據(jù)庫左連接和右連接有什么區(qū)別,結果上有什么不同平绩。
答:左連接是以左表為基準圈匆,右連接是以右表為基準。結果看具體情況馒过,相同的是不足的地方會顯示為NULL
17.給一個二叉樹臭脓,算法實現(xiàn)樹的先序、中序后序
答:先序:根左右腹忽;中序:左根右;后序:左右根
//輸出
void?Visit(BiTree?T){
????if(T->data?!=?'#'){
????????printf("%c?",T->data);
????}
}
//先序遍歷
void?PreOrder(BiTree?T){
????if(T?!=?NULL){
//訪問根節(jié)點
????????Visit(T);
//訪問左子結點
????????PreOrder(T->lchild);
//訪問右子結點
????????PreOrder(T->rchild);
????}
}
//中序遍歷
void?InOrder(BiTree?T){
????if(T?!=?NULL){
//訪問左子結點
????????InOrder(T->lchild);
//訪問根節(jié)點
????????Visit(T);
//訪問右子結點
????????InOrder(T->rchild);
????}
}
//后序遍歷
void?PostOrder(BiTree?T){
????if(T?!=?NULL){
//訪問左子結點
????????PostOrder(T->lchild);
//訪問右子結點
????????PostOrder(T->rchild);
//訪問根節(jié)點
????????Visit(T);
????}
}
18.說出selenium的原理
答:
1)selenium1.0?+?webdriver?=?selenium2.0
2)selenium1.0?=?selenium?IDE?+?seleniumRC?+?selenium?Grid
原理:
1)啟動瀏覽器后砚作,selenium-webdriver會將目標瀏覽器綁定到特定的端口窘奏,啟動后的瀏覽器則作為webdriver的remote?server。
2)客戶端(也就是測試腳本)葫录,借助ComandExecutor發(fā)送HTTP請求給sever端(指瀏覽器)着裹。
3)Sever端需要依賴原生的瀏覽器組件,轉化Web?Service的命令為瀏覽器native的調用來完成操作米同。
19.說說你平常工作流程骇扇?你認為哪里有缺陷。
答:
20.簡要說明你在過去的工作中的亮點
答:
21.說說過去為什么要跳槽
答:個人發(fā)展面粮、公司前景或其他因素
22.有什么要問我的
注:這里一定要問少孝,我之前在其他地方看到有同學是這樣問的“如果我有幸收到貴公司的offer,那么有什么知識或技能是要我在入職前一定了解或是掌握的熬苍?”或是“如果我有幸收到貴公司的offer稍走,那么我將會被分在哪個組袁翁,主要的工作內容是什么?”