天天看點

秋招部分面經總結2019秋招面經

2019秋招面經

2019.08.29 甯波銀行(西安) 開發、測試崗

一面直涼

面試内容:

1.講一下自己了解的PHP魔術方法

PHP将所有以__開頭的類方法保留位魔術方法,定義類方法時,盡量不要以__開頭;

__construct(),

__destruct(),

__call(),

__callStatic(),

__get(),

__set(),

__isset(),

__unset(),

__sleep(),

__wakeup(),

__toString(),

__invoke(),

__set_state(),

__clone(),

__debugInfo(),

2.PHP dump函數講一下,dunp函數和print_r函數的差別(最好把echo再看一下)

3.Python語言的特點

4.Python元組和清單的差別

5.POST和GET的差別

6.Session和Cookie的差別

7.是用什麼方法去進行測試問題?黑盒測試用什麼方法去檢測出所有的異常

2019.09.05 随手科技 測試工程師

一面:

需要技能:python 資料庫 測試 大資料元件

二面:天貓雙十一 有哪些高并發測試場景 Android端 不同手機

(offer)

2019.09.19 小米 測試工程師

一面

題目描述輸入兩個字元串,從第一字元串中删除第二個字元串中所包含的字元。

輸入例如,輸入“Theyarestudents.”和”aeiou”,輸出删除之後的第一個字元串變成”Thyrstdnts.”

題目描述: 給定一個整數數組和一個目标值,找出數組中和為目标值的兩個數。

你可以假設每個輸入隻對應一種答案,且同樣的元素不能被重複利用。 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2 + 7 = 9 是以傳回 [0, 1]

復原commit

(一面涼)

PHP
in_array()函數,使用時需要設定強制格式比對,例如
in_array('0',array());//傳回值為true
in_array('0',array(),true);//傳回值诶false
           

在輸出php檔案的時候,無法在html檔案中逐行輸出php代碼(或者類似的"<#include>、<html>"标簽),原因如下

<html>
    <head>
        <title>hello</title>
    </head>
    <body>
    <?php
		echo "<?php";
    	echo "echo 'hello world'";
    	echo "?>";
	?>   
    </body>
   
</\html>
<!--
這段代碼的本意是輸出
    <?php
    echo "hello world";
    ?>
這個代碼段但是,在實際操作中,會将代碼段中的<?php 直接解析,導緻輸出結果不理想
-->
           

解決方法:

使用div将需要輸出的代碼段包裹起來,并在script标簽中設定disblock

解決代碼如下
<?php
$arr = ['hello' => "hello",
       	'world' => "world",
        'hi' => 'hi'];
?>
<html>
    <?php
    	foreach($arr as $value)
        {
    ?>
    <script type="text/html" style='display:block'>
    	<?php echo $value; ?>
    </script>
    <?php
        }
    ?>
</html>

           

http中header中的資訊:

Accept:浏覽器端可以接受的媒體類型

Accept-Encoding:浏覽器端可以接受的編碼規範,例如壓縮編碼、字元編碼等

Accept-Language:浏覽器端接受的語言

Connection:http連接配接狀态,keep-alive\close兩種狀态

Host:請求報頭域,用于指定被請求資源的internet主機和端口号

Referer:統計該連結跳轉的來源

User-Agent:使用者通路來源資訊,用戶端使用的作業系統和浏覽器的名稱和版本

**資料庫聚集函數:**聚集函數是 AVG(傳回列的平均值)、COUNT、MAX、MIN 和 SUM(傳回列的總和)

count進行去重操作,加關鍵字distinct

多台伺服器如何共享session資訊來進行登陸管理

參考:點選通路

一、将本該儲存在web伺服器磁盤上的session資料儲存到cookie中

即用cookie會話機制替代session會話機制,将session資料儲存到用戶端浏覽器的cookie中,這樣同一個使用者通路同一網站時,無論負載均衡到哪台web伺服器,都不用再去伺服器請求session資料,而直接擷取用戶端cookie中的session資料。如此,同一個使用者的登入狀态就不會丢失了。

但這樣做,有三大弊端:

把session資料放到用戶端的cookie中,一般都是重要資料(如使用者id、昵稱等),會存在安全問題,但可以将session資料加密後,再存放到cookie中,來降低安全風險。

浏覽器對單個cookie的資料量大小限制為4K左右,是以會存在資料量的限制問題。

影響帶寬性能,降低了頁面的通路速度。在高通路量的情況下,使用者每次請求時,都要将用戶端cookie中的session資料發送到伺服器,要占用較多的帶寬,進而影響通路速度,伺服器帶寬成本增高。

二、将本該儲存在web伺服器磁盤上的session資料儲存到MySQL資料庫中

sessionid還是利用cookie機制存儲到用戶端,但session資料卻存放在MySQL伺服器上。(需要建立sessionid和session資料行的對應關系)

但這樣做,隻适合通路量比較小的網站。如果網站的通路量比較大,對MySQL伺服器會造成很大壓力。因為每次使用者請求頁面(即使是重新整理頁面)都要查詢MySQL資料庫中的session資料表,進而判斷使用者的登入狀态和讀取使用者相關資訊,勢必會對資料庫伺服器造成很大壓力,這樣就會降低伺服器的響應速度,影響使用者體驗。

三、将本該儲存在web伺服器磁盤上的session資料儲存到記憶體資料庫(memcache或redis)中

memcache或redis是基于記憶體存儲資料的,性能很高,尤其是高并發的情況下尤為合适。主要是因為從記憶體中讀取資料要比從磁盤讀取資料快很多。

記憶體資料庫還支援資料過期失效的機制,正好與session的過期機制對應,推薦使用redis記憶體資料庫,因為它比memcache支援更多的

資料類型,且支援記憶體資料備份到磁盤。

這裡簡單說一下,後面兩種方法的注意要點:

如果多台web伺服器對應的是不同的域名,為了保證cookie的唯一(同一個cookie在各個域名有效),需要修改php.ini檔案中的session.cookie_domain

由于後面兩種方法,屬于使用者自定義的方式管理session,而非預設的檔案處理方式,故需修改php.ini中的session.save_handler=user

在開啟session之前(即調用session_start()之前),需要先調用session_set_save_handler,關于session_set_save_handler的具體用法,請參考php手冊

http協定中 協定報的内容:

請求行:請求類型(post/get)/請求資源路徑、協定的版本和類型;例如:POST/ADDUSER HTTP/1.1 請求類型:post 資源路徑:/adduser 協定類型:http 版本:1.1

請求頭:見下一部分 cookie記錄使用者資訊

【空行】:請求頭和請求體之間用一個空行隔開

請求體:要發送的資料(一般post方式會使用);例:userName=123&password=123&returnUrl=/

響應資料包

狀态行:協定版本、資料形式的狀态代碼(200、302【重定向】、404、500、、、)和狀态描述、各元素之間以空格分隔

響應頭:包含伺服器類型、日期、長度、内容類型等

【空行】:響應頭與響應正文之間以空行隔開

響應正文:程式處理傳回結果

例如:

Server:Apache Tomcat/5.0.12

Date:Mon,60ct2003 13:13:33 GMT

Content-Type:text/html

Last-Moified:Mon,6 Oct 2003 13:23:42 GMT

Content-Length:112

程序與線程的差別:

程序是對運作程式的封裝,是系統進行資源排程和配置設定的基本機關,實作了作業系統的并發

線程是程序的子任務,是CPU排程和配置設定的基本機關,用于保證程式的實時性,實作程序内部的并發

一個程式至少有一個程序,一個程序至少有一個線程,線程依賴于程序而存在

程序在執行過程中擁有獨立的記憶體單元,而多個線程共享程序的記憶體

程序間通信的方式:

管道、命名管道;管道可用于具有親緣關系的父子程序間的通信,命名管道除了具有管道所具有的所有功能外,它還允許無親緣關系程序間的通信

信号;用于通知程序某個事件已經發生

消息隊列;消息的連結表,

共享記憶體

信号量

套接字

線程間同步:

互斥量;采用互斥對象機制,隻有擁有互斥對象的線程才有通路公共資源的權限;因為同時隻有一個互斥對象,保證公共資源不會被多個線程通路

信号量;

事件(信号);

小米 吉比特 作業幫

2019.09.06 農行面試 軟體測開

涼涼 十個人九個985研究所學生 資料庫、作業系統需加強,Python基礎,爬蟲,Linux基礎,資料結構,算法

(涼,準備過少)

程序和線程差別

程序通信方式

資料庫查詢成績前十查詢

資料庫表連接配接

測試鋪底資料?

圖的周遊方法

什麼會使索引速度下降

2019.09.17 當當網 測試

場景題

一四川使用者報告無法登入當當網,說出排查方法

2019.09.19 小米一面 測試

網絡 HTTP/HTTPS 報頭内容 抓包

資料庫 insert select 索引 b樹和b+數

where having差別

IO模型

權限管理

登入

response 傳回體資料類型

tcp擁塞控制

HTTPS資料包裡的明文資訊是什麼

ARP協定

跨域

觸發器、外鍵的差別

庫、表是否可以進行引擎選擇

2019.09.20 廣發銀行 測試

項目

md5底層

git

PHP檔案函數源碼、底層實作

thinkPHP5.0如何打開調試模式

2019.09.21 深信服 軟體測試工程師

連結清單反轉 堆排序 url傳回錯誤如何測試

指針 野指針 指針函數 快排

HTTPS如何加密

linux

TCP UDP應用層的使用協定

tp3與tp5的差別

底層很重要

測試需求細化

2019.09.21 同花順 PHP 筆試

使用PHP在不使用curl函數下發起一個post請求

2019.09.23 努比亞 測試

軟體品質标準 UI/UE

軟體标準

Java記憶體洩漏

LET協定

2019.09.25 萬得 軟開 筆試

資料庫DDL操作

面向對象的solid

答案:https://blog.csdn.net/dxpqxb/article/details/51732555

禅道

2019.09.28 富士通(西安)

檔案限制,縮略圖

2019.09.30 騰訊 測試

你了解的白盒測試

PHP遵循的編碼規範

什麼時候選擇tcp,什麼時候選擇udp

2019.09.30 同花順 web開發

PHP是否支援多繼承

網絡程式設計

多線程如何實作

get post差別

PHP的錯誤類型

一億個元素的數組和一百個元素的數組,求交集

2019.10.10 中信銀行 資訊科技

SQL語句關鍵字執行優先級

2019.10.10 中國銀行 軟體中心資訊科技

no 西交 no 機會

2019.10.11 微盟 軟體測試

一面:

HTTP和HTTPS的差別

談一下軟體測試

購物流程(登入、、、) 用例設計覆寫 訂單的狀态

什麼是黑盒測試 測試用例設計方法

學習情況

二面:

Python 自己用到的類庫

字元串比對分割

根據檔案線上管理系統問測試相關内容

大檔案分包傳輸

檔案内容比對

Linux find查詢檔案内容 kill後的參數

登入系統的測試 多人登入情況

檔案删除 邏輯删除 實體删除

伺服器部署項目

反爬蟲措施

2019.10.11 同花順 web背景開發

HTTP的header裡的内容

有沒有搭建過nginx

TCP/IP有幾層,tcp和ip分别位于那一層

一個幾萬行的程式,有錯誤,如何排查

C檔案編譯的過程

PHP最新版本 技術特點

2019.10.12 途家民宿 軟體測試

一面:

如何了解測試

登入從開始到結束都有哪些過程

就這個過程的測試點

如何測試同一浏覽器多個賬戶同時登陸(使用cookie)

如何測試一個電梯

二面:

登入過程是怎樣實作的,如何去了解到登入狀态,前端是怎樣去了解到是那個登入使用者的

session怎樣去設定

多台伺服器怎樣互相了解一賬号登入狀态

如何種cookie

cookie的編碼格式

cookie有什麼安全危險,可更改嗎

http的協定報内容 header内容 了解到的壓縮編碼

md5具體是如何操作的 hash計算過程

如何撞庫/彩虹表攻擊

PHP的模式

如何模仿jmeter

Linux 如何設定定時操作

如何使指令背景執行

如何去查詢不超過100行的PHP檔案

如何知道檔案的行數

LAMP伺服器配置 LAMP含義

談一下白盒測試 如何設計測試用例 判斷、循環

範式

聚集函數

2019.10.12 招聯金融 軟體測試

主要問項目 項目細節

Python Java