面試題(一)
1. 如何用列表切片的方式取出列表a = [1,2,3,4,5]中的3?
a[2:3]
2. 說說列表是如何排序的?
列表排序:
永久性排序:升序 sort 降序 sort(reverse=True)
#永久性排序—升序 >>> a = [1, 5, 2, 8, 6] >>> a.sort() >>> a [1, 2, 5, 6, 8] #永久性排序—降序 >>> a = [1, 5, 2, 8, 6] >>> a.sort(reverse=True) >>> a [8, 6, 5, 2, 1]
臨時性排序:升序 sorted 降序 sorted(reverse=True)
#臨時性排序—升序 >>> a = [1, 5, 2, 8, 6] >>> sorted(a) [1, 2, 5, 6, 8] >>> a [1, 5, 2, 8, 6] #臨時性排序—降序 >>> a = [1, 5, 2, 8, 6] >>> sorted(a, reverse=True)[8, 6, 5, 2, 1] >>> a [1, 5, 2, 8, 6]
列表反轉:
永久性反轉列表:reverse()
臨時性反轉列表:[::-1]
#永久性反轉列表 >>> a = [1, 5, 2, 8, 6] >>> a.reverse() >>> a [6, 8, 2, 5, 1] #臨時性反轉列表 >>> a = [1, 5, 2, 8, 6] >>> a[::-1] [6, 8, 2, 5, 1] >>> a[1, 5, 2, 8, 6]
3. 如何用正則表達式匹配ip地址?
(([01]?\d?\d|2[0-4]\d|25[0-5]\d)\.){3}([01]?\d?\d|2[0-4]\d|25[0-5]\d)
4. Linux下怎麽殺掉tomcat進程?
ps -ef | grep tomcat #查出tomcat進程號
kill -9 進程號
5. 怎麽處理安卓5.0以下的toast彈框?
跟測試經理溝通後,可以不考慮安卓5.0以下的系統,只考慮兼容比較新的主流的系統
6. 你們是怎麽利用jenkins做持續集成的?
一般為了分擔jenkins服務器的壓力,會搭建jenkins的Master和Slave機,Master是jenkins服務器,Slave是本地的執行機
如何在Master上配置Slave?新建節點,設置節點(包含名字、並發構建數、遠程工作目錄、標簽、語法和啟動方式等(通過java web啟動代理))
啟動slave,點擊lauch,會下載一個agent.jnlp文件,下載之後雙擊agent.jnlp,會彈出一個窗口,如果窗口顯示Connected,表示slave已啟動,再次刷新
在Master機上創建一個任務,輸入任務的名字,構建一個自由風格的項目軟件,在General中指定執行機—限制項目的運行節點,這裏可以填Label的名字,也可以填執行機的名字,在構建中選擇執行Windows批處理命令—切換到項目所在目錄,用python運行main.py,保存,點擊立即構建,這時會在遠程工作目錄下生成工作空間
這時候,可以從SVN上download項目代碼到工作目錄,進入構建後操作,選擇Publish JUnit test result report,在構建後操作中填上存放xml報告的路徑,在構建中修改批處理命令(用WORKSPACE的環境變量代替),保存後,立即構建
此外,還可以構建觸發器,進行定時構建,每隔多長時間運行一次腳本,還可以配置郵件服務器,將測試報告發送到郵箱
7. 說出你們工作中常用的linux命令?
像ls, pwd, cd, chmod, chown, chgroup, tar, find, grep, wc, cat, mkdir, rm, rmdir, rz, sz, ifconfig等等
8. 接口自動化中的關聯怎麽處理?
在接口自動化中,後面一個接口的請求數據需要用到前面接口的響應數據的一部分,那麽可以在存儲數據的excel表中添加一列提取表達式,在這一列,如果有值表示需要提取,先提取賦值再斷言,如果沒值,直接斷言
將後面接口的請求數據用占位符表示,前面需要提取的接口在提取表達式那一列用占位符=提取表達式表示,用openpyxl讀取所有的測試數據並保存在一個列表中,在測試用例類中,ddt.data可以分解一組數據為多條測試數據,在發送請求得到響應後,判斷每一條測試數據中是否包含了提取表達式,如果有,則用字符串的分割方法來以=作為分割,將字符串分割為["占位符","提取表達式"]的形式,然後定義一個全局變量global_var={},將列表中第一個元素"占位符"作為鍵,將提取表達式提取到的響應結果的字段作為值,存儲在global_var字典中
在發送請求前,判斷global_var長度是否大於0,並且請求數據是否為空,如果長度大於0且請求數據不為空,則用for循環遍歷字典,如果請求數據中能用find方法找到字典中的鍵,則用請求數據的replace方法將字典中的鍵替換為字典中的值,這樣就完成了接口關聯處理
9. 你們日常的工作和測試計劃一致嗎?
大體一致,但有的時候有所調整
面試題(一)