測試面試題相速,自動化測試與性能測試篇(附答案)

本系列文章總結(jié)歸納了一些軟件測試工程師常見的面試題,主要來源于個(gè)人面試遇到的鲜锚、網(wǎng)絡(luò)搜集(完善)突诬、工作日常討論等,分為以下十個(gè)部分烹棉,供大家參考攒霹。如有錯(cuò)誤的地方,歡迎指正浆洗。有更多的面試題或面試中遇到的坑催束,也歡迎補(bǔ)充分享。希望大家都能找到滿意的工作伏社,共勉之抠刺!~

自動化代碼中,用到了哪些設(shè)計(jì)模式摘昌?

單例模式

工廠模式

PO模式

數(shù)據(jù)驅(qū)動模式

什么是斷言速妖?

檢查一個(gè)條件,如果它為真聪黎,就不做任何事罕容,用例通過。如果它為假稿饰,則會拋出 AssertError 并且包含錯(cuò)誤信息锦秒。

UI 自動化測試中,如何做集群喉镰?

Selenium Grid旅择,分布式執(zhí)行用例

Appium 使用 STF 管理多設(shè)備

Docker+K8S 管理集群

怎么對含有驗(yàn)證碼的功能進(jìn)行自動化測試?

萬能驗(yàn)證碼

測試環(huán)境屏蔽驗(yàn)證

其他操作不推薦

如何優(yōu)化和提高 Selenium 腳本的執(zhí)行速度侣姆?

盡量使用 by_css_selector() 方法

by_css_selector() 方法的執(zhí)行速度比 by_id() 方法的更快生真,因?yàn)樵创a中 by_id() 方法會被自動轉(zhuǎn)成 by_css_selector() 方法處理沉噩;

使用等待時(shí),盡量使用顯示等待柱蟀,少用 sleep()川蒙,盡量不用隱式等待;

盡量減少不必要的操作:可以直接訪問頁面的产弹,不要通過點(diǎn)擊操作訪問派歌;

并發(fā)執(zhí)行測試用例:同時(shí)執(zhí)行多條測試用例弯囊,降低用例間的耦合痰哨;

有些頁面加載時(shí)間長,可以中斷加載匾嘱;

接口測試能發(fā)現(xiàn)哪些問題斤斧?

可以發(fā)現(xiàn)很多在頁面上操作發(fā)現(xiàn)不了的 bug;

檢查系統(tǒng)的異常處理能力霎烙;

檢查系統(tǒng)的安全性撬讽、穩(wěn)定性;

前端隨便變悬垃,接口測好了游昼,后端不用變;

可以測試并發(fā)情況尝蠕,一個(gè)賬號烘豌,同時(shí)(大于 2 個(gè)請求)對最后一個(gè)商品下單,或不同賬號看彼,對最后一個(gè)商品下單廊佩;

可以修改請求參數(shù),突破前端頁面輸入限制(如金額)靖榕;

Selenium 中隱藏元素如何定位标锄?

如果單純的定位的話,隱藏元素和普通不隱藏元素定位沒啥區(qū)別茁计,用正常定位方法就行了(這個(gè)很多面試官也搞不清楚)料皇;

元素的屬性隱藏和顯示,主要是 type=“hidden” 和 屬性來控制的星压,接下來在元素屬性里面讓它隱藏践剂,隱藏元素可以正常定位到,只是不能操作(定位元素和操作元素是兩碼事租幕,很多初學(xué)者傻傻分不清楚)舷手,操作元素是 click,clear,send_keys 這些方法;

JS 操作隱藏元素劲绪;

如何判斷一個(gè)頁面上元素是否存在男窟?

方法一:用 try…except…

方法二:用 elements 定義一組元素方法盆赤,判斷元素是否存在,存在返回 True,不存返回 False

方法三:結(jié)合 WebDriverWait 和 expected_conditions 判斷(推薦)

如何提高腳本的穩(wěn)定性?

不要右鍵復(fù)制 xpath(十萬八千里那種路徑歉眷,肯定不穩(wěn)定)牺六,自己寫相對路徑,多用 id 為節(jié)點(diǎn)查找汗捡;

定位沒問題淑际,第二個(gè)影響因素那就是等待了,sleep 等待盡量少用(影響執(zhí)行時(shí)間)扇住;

定位元素方法重新封裝春缕,結(jié)合 WebDriverWait 和 expected_conditions 判斷元素方法,自己封裝一套定位元素方法艘蹋;

如何定位動態(tài)元素锄贼?

動態(tài)元素有 2 種情況,一個(gè)是屬性動態(tài)女阀,比如 id 是動態(tài)的宅荤,定位時(shí)候,那就不要用 id 定位就是了浸策;

還有一種情況動態(tài)的冯键,那就是這個(gè)元素一會在頁面上方,一會在下方庸汗,飄忽不定的動態(tài)元素惫确,定位方法也是一樣,按 f12夫晌,根據(jù)元素屬性定位(元素的 tag雕薪、name的步伐屬性是不會變的,動的只是 class 屬性和 styles 屬性)晓淀;

如何通過子元素定位父元素

使用element.parent方法

平常遇到過哪些問題? ?如何解決的

可以把平常遇到的元素定位的一些坑說下所袁,然后說下為什么沒定位到,比如動態(tài) id凶掰、有 iframe燥爷、沒加等待等因素;

一個(gè)元素明明定位到了懦窘,點(diǎn)擊無效(也沒報(bào)錯(cuò))前翎,如果解決?

使用 JS 點(diǎn)擊畅涂,Selenium 有時(shí)候點(diǎn)擊元素是會失效港华;

測試的數(shù)據(jù)你放在哪?

對于賬號密碼,這種管全局的參數(shù)午衰,可以用命令行參數(shù)立宜,單獨(dú)抽出來冒萄,寫的配置文件里(如 ini);

對于一些一次性消耗的數(shù)據(jù)橙数,比如注冊尊流,每次注冊不一樣的數(shù),可以用隨機(jī)函數(shù)生成灯帮;

對于一個(gè)接口有多組測試的參數(shù)崖技,可以參數(shù)化,數(shù)據(jù)放 YAML,Text,JSON,Excel 都可以钟哥;

對于可以反復(fù)使用的數(shù)據(jù)迎献,比如訂單的各種狀態(tài)需要造數(shù)據(jù)的情況,可以放到數(shù)據(jù)庫瞪醋,每次數(shù)據(jù)初始化忿晕,用完后再清理装诡;

對于郵箱配置的一些參數(shù)银受,可以用 ini 配置文件;

對于全部是獨(dú)立的接口項(xiàng)目鸦采,可以用數(shù)據(jù)驅(qū)動方式宾巍,用 excel/csv 管理測試的接口數(shù)據(jù);

對于少量的靜態(tài)數(shù)據(jù)渔伯,比如一個(gè)接口的測試數(shù)據(jù)顶霞,也就 2-3 組,可以寫到 py腳本的開頭锣吼,十年八年都不會變更的选浑;

什么是數(shù)據(jù)驅(qū)動,如何參數(shù)化玄叠?

參數(shù)化的思想是代碼用例寫好了后古徒,不需要改代碼,只需維護(hù)測試數(shù)據(jù)就可以了读恃,并且根據(jù)不同的測試數(shù)據(jù)生成多個(gè)用例隧膘;

其他接口都需要登錄接口的信息,怎么去讓這個(gè)登錄的接口只在其他接口調(diào)用一次寺惫?

使用單例模式

使用自定義緩存機(jī)制

使用測試框架中的 setup 機(jī)制

pytest 中 fixture 機(jī)制

接口產(chǎn)生的垃圾數(shù)據(jù)如何清理疹吃?

造數(shù)據(jù)和數(shù)據(jù)清理,需用 python 連數(shù)據(jù)庫了西雀,做增刪改查的操作測試用例前置操作萨驶,setUp 做數(shù)據(jù)準(zhǔn)備后置操作,tearDown 做數(shù)據(jù)清理

怎么用接口案例去覆蓋業(yè)務(wù)邏輯艇肴?

考慮不同的業(yè)務(wù)場景腔呜,一個(gè)接口走過的流程是什么樣的判莉,流程的邏輯是什么樣的,什么樣的參數(shù)會有什么樣的結(jié)果育谬,多場景覆蓋券盅;

性能篇

性能測試指標(biāo)包括哪些

最大并發(fā)用戶數(shù),HPS(點(diǎn)擊率)膛檀、事務(wù)響應(yīng)時(shí)間锰镀、每秒事務(wù)數(shù)、每秒點(diǎn)擊量咖刃、吞吐量泳炉、CPU 使用率、物理內(nèi)存使用嚎杨、網(wǎng)絡(luò)流量使用等花鹅。

前端需主要關(guān)注的點(diǎn)是:

響應(yīng)時(shí)間:用戶從客戶端發(fā)出請求,并得到響應(yīng)枫浙,以及展示出來的整個(gè)過程的時(shí)間刨肃。

加載速度:通俗的理解為頁面內(nèi)容顯示的快慢。

流量:所消耗的網(wǎng)絡(luò)流量箩帚。

后端需主要關(guān)注的是:

響應(yīng)時(shí)間:接口從請求到響應(yīng)真友、返回的時(shí)間。

并發(fā)用戶數(shù):同一時(shí)間點(diǎn)請求服務(wù)器的用戶數(shù)紧帕,支持的最大并發(fā)數(shù)盔然。

內(nèi)存占用:也就是內(nèi)存開銷。

吞吐量(TPS):Transaction Per Second, 每秒事務(wù)數(shù)是嗜。在沒有遇到性能瓶頸時(shí):TPS=并發(fā)用戶數(shù)*事務(wù)數(shù)/響應(yīng)時(shí)間愈案。

錯(cuò)誤率:失敗的事務(wù)數(shù)/事務(wù)總數(shù)。

資源使用率:CPU占用率鹅搪、內(nèi)存使用率站绪、磁盤I/O、網(wǎng)絡(luò)I/O涩嚣。

從性能測試分析度量的度角來看崇众,主要可以從如下幾個(gè)大的維度來收集考察性能指標(biāo):

系統(tǒng)性能指標(biāo)、資源性能指標(biāo)航厚、穩(wěn)定性指標(biāo)

如果一個(gè)需求沒有明確的性能指標(biāo)顷歌,要如何開始進(jìn)行性能測試?

先輸出業(yè)務(wù)數(shù)據(jù)幔睬,如 pv眯漩、pu、時(shí)間段等,計(jì)算出大概的值赦抖,然后不斷加壓測到峰值

介紹 JMeter 聚合報(bào)告包括哪些內(nèi)容舱卡?

請求名、線程數(shù)队萤、響應(yīng)時(shí)間(50 95 99 最小 最大)錯(cuò)誤率轮锥、吞吐量

如果有一個(gè)頁面特別卡頓,設(shè)想一下可能的原因要尔?

后臺:接口返回?cái)?shù)據(jù)慢舍杜,查詢性能等各種問題

前端:使用 Chrome 工具調(diào)試,判斷 JS 執(zhí)行久或是其他問題

說一說項(xiàng)目中的實(shí)際測試內(nèi)容

根據(jù)自己項(xiàng)目中的經(jīng)驗(yàn)實(shí)話實(shí)說赵辕,有沒有經(jīng)驗(yàn)很容易露餡既绩。

介紹一下 JMeter 進(jìn)行性能測試的過程

結(jié)合自己的項(xiàng)目經(jīng)驗(yàn)聊。大家也可以自行搜索还惠。

介紹一下 JMeter 和 LoadRunner 的區(qū)別

詳細(xì)的不展開了饲握,最重要的是相對來說 LoadRunner 的笨重、昂貴蚕键、閉源救欧,理念和生態(tài)都落后,而 JMeter 是開源嚎幸、可定制化開發(fā)颜矿,功能強(qiáng)大易用,并且在互聯(lián)網(wǎng)大廠都已經(jīng)有非常成熟的落地方案(主流的互聯(lián)網(wǎng)公司基本都在使用 JMeter+ELK+Grafana+Influxdb 這套架構(gòu))嫉晶,可以說是進(jìn) BAT 大廠必備技能。還不會 JMeter 的同學(xué)建議抓緊補(bǔ)起來田篇。微信公眾號關(guān)注【程序媛木子】即可領(lǐng)取免費(fèi)資源庫替废。

資源分享

下面是小編辛苦整理的資料


如果文章對你有幫助,麻煩伸出發(fā)財(cái)小手點(diǎn)個(gè)贊泊柬,感謝您的支持椎镣,你的點(diǎn)贊是我持續(xù)更新的動力,也大家可以進(jìn)群交流(644956177)兽赁,里面有各種軟件測試資源和技術(shù)交流状答。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市刀崖,隨后出現(xiàn)的幾起案子惊科,更是在濱河造成了極大的恐慌,老刑警劉巖亮钦,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件馆截,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蜡娶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進(jìn)店門混卵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窖张,你說我怎么就攤上這事幕随。” “怎么了宿接?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵合陵,是天一觀的道長。 經(jīng)常有香客問我澄阳,道長拥知,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任碎赢,我火速辦了婚禮低剔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肮塞。我一直安慰自己襟齿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布枕赵。 她就那樣靜靜地躺著猜欺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拷窜。 梳的紋絲不亂的頭發(fā)上开皿,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天,我揣著相機(jī)與錄音篮昧,去河邊找鬼赋荆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛懊昨,可吹牛的內(nèi)容都是我干的窄潭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼酵颁,長吁一口氣:“原來是場噩夢啊……” “哼嫉你!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起躏惋,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤幽污,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后其掂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體油挥,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了深寥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攘乒。...
    茶點(diǎn)故事閱讀 40,438評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖惋鹅,靈堂內(nèi)的尸體忽然破棺而出则酝,到底是詐尸還是另有隱情,我是刑警寧澤闰集,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布沽讹,位于F島的核電站,受9級特大地震影響武鲁,放射性物質(zhì)發(fā)生泄漏爽雄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一沐鼠、第九天 我趴在偏房一處隱蔽的房頂上張望挚瘟。 院中可真熱鬧,春花似錦饲梭、人聲如沸乘盖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽订框。三九已至,卻和暖如春兜叨,著一層夾襖步出監(jiān)牢的瞬間穿扳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工浪腐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留纵揍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓议街,卻偏偏與公主長得像,于是被迫代替她去往敵國和親璧榄。 傳聞我的和親對象是個(gè)殘疾皇子特漩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容