天天看點

DING,接口自動化測試面試題待查收

作者:CoCo的軟體測試小棧
DING,接口自動化測試面試題待查收
DING,接口自動化測試面試題待查收

點選上方頭像關注我,每周上午 09:00準時推送,每月不定期贈送技術書籍,小視窗回複“資源”、“測試工具包”領取測試資源。

本文3258字,閱讀約需9分鐘

Hi,大家好。今天給大家分享一波接口自動化面試題,如果想要擷取更多面試題,可以在背景回複“面試順利”。

Python基礎

清單反轉有哪幾種方式?

第一種:通過倒序切片反轉,步長是 -1;

DING,接口自動化測試面試題待查收

第二種,使用reversed 函數 ,可以實作反轉;

DING,接口自動化測試面試題待查收

reversed傳回的結果是一個反轉的疊代器,我們需要對其進行 list 轉換。

第三種,使用sorted函數 ,可以實作反轉;

DING,接口自動化測試面試題待查收

清單推導式是什麼?

推導式 是 Python 中用來生成資料的一種進階用法,Python 不僅有清單推導時,還有字典推導式、集合推導式、生成器表達式;它的文法都是一樣的,都是通過 for 循環來建立資料的一種簡寫的方式。

推導式它将循環和條件判斷結合,進而避免文法冗長的代碼,提高代碼運作效率。

1)文法格式

第一種文法:

[exp1 for x in data if condition]           

第二種文法:

[exp1 if condition else exp2 for x in data]           

2)實戰練習

執行個體1:傳回1-10的所有偶數乘以2的結果。

DING,接口自動化測試面試題待查收

輸出結果如下:

[4, 8, 12, 16, 20]           

執行個體2:傳回1-10的所有偶數乘以2,奇數乘以3的結果。

DING,接口自動化測試面試題待查收

輸出結果如下:

[3, 4, 9, 8, 15, 12, 21, 16, 27, 20]           

3)執行效率測試

上文有介紹說清單推導式可以提高代碼執行效率,接下來我們通過例子來證明下這個結論。

①先用我們常用的for循環統計時間。

DING,接口自動化測試面試題待查收

輸出結果:

for循環總耗時:0.18744373321533203秒           

② 用清單推導式統計時間。

DING,接口自動化測試面試題待查收

輸出結果:

清單推導式總耗時:0.09278202056884766秒           

從for循環和清單推導式耗時結果來看,清單推導式執行效率是優于正常的for循環的。

什麼是閉包函數?

1)什麼是閉包?

在函數嵌套的前提下,内部函數使用了外部函數的變量,并且外部函數傳回了内部函數,我們把這個使用外部函數變量的内部函數稱為閉包。

2)閉包的構成條件?

必須有内嵌函數
内嵌函數必須引用外部變量
外部函數必須傳回内嵌函數           

3)閉包的使用

Python裝飾器就是閉包概念的一種展現,如下示範很典型的閉包場景,單例模式的裝飾器。

from functools import wraps
def Singleton(cls):
    instance = {}
    @wraps(cls)
    def wrapper(*args, **kwargs):
        if cls not in instance:
            instance[cls] = cls(*args, **kwargs)
        return instance[cls]
    return wrapper           

接下來寫出一個計時器裝飾器,記錄函數的執行時間。

DING,接口自動化測試面試題待查收

json.loads和json.dumps的差別?

1)含義

# 微信公衆号:ITester軟體測試小棧
json的dumps方法和loads方法,可實作資料的序列化和反序列化。
json.dumps: 将python對象轉換為json格式資料。
json.loads: 将json格式資料轉化為python對象。           

2)應用場景

① json.dumps

代碼如下:字典轉為字元串。

DING,接口自動化測試面試題待查收

輸出内容如下:

<class 'dict'>
<class 'str'>
{"name": "ITester軟體測試小棧", "author": "coco", "age": "18"}           

② json.loads

這裡我們用之前寫過的接口自動化文章為例,從Excel讀取資料後,通過資料驅動,打斷點後發現讀取的參數為字元串類型,是以我們通過 json.loads轉化下格式。

DING,接口自動化測試面試題待查收

有興趣的小夥伴,可以點選連結檢視曆史文章:Python接口自動化之資料驅動。

接口測試相關

什麼項目适合做自動化測試?

适合做自動化測試的項目,簡答來說,就是不變的、重複的、規範的。具體來說,滿足以下幾個方面:

  • 需求變化不太頻繁;
  • 項目周期要足夠長;
  • 腳本可以重複使用:在一些典型的場景,比如說 “冒煙測試、回歸測試” 的地方就是經常使用自動化測試;
  • 被測試的軟體是否規範:是否有需求文檔、規範的接口文檔、是否有原型圖、接口設計是否比較規範;
  • 手工測試是無法完成的:比如說需要性能測試,通過自動化測試的成本不是特别高;
  • 測試團隊成員具有一定的程式設計能力。

你是怎麼開展自動化測試工作的?

實際工作中開展自動化測試,我主要從以下幾個方面開展:

  • 首先根據産品的業務特性整理自動化的一個功能模闆;
  • 其次,我們會根據項目情況以及人員現狀,來制定自動化測試計劃;
  • 第三,我們會從功能用例當中挑選合适的用例來轉成自動化用例;
  • 第四,架構選型,選擇程式設計語言或者工具來實作,我們選擇的是 Python 語言來實作的;
  • 第五,自動化測試的腳本開發;
  • 第六,根據項目來制定自動化執行方案;
  • 第七,輸出測試報告,以及自動化測試成果的彙報,跟進後期的維護;

接口測試用例的編寫要點有哪些?

  • 必填字段:請求參數必填項、可選項;
  • 合法性:輸入輸出合法、非法參數;
  • 邊界:請求參數邊界值等;
  • 容錯能力:大容量資料、頻繁請求、重複請求(如:訂單)、異常網絡等的處理;
  • 響應資料校驗:斷言、資料提取傳遞到下一級接口;
  • 邏輯校驗:如兩個請求的接口有嚴格的先後順序,需要測試調轉順序的情況;
  • 性能:對接口模拟并發測試,逐漸加壓,分析瓶頸點;
  • 安全性:構造惡意的字元請求,如:SQL注入、XSS、敏感資訊、業務邏輯。

你平常做接口測試的過程中發現過哪些 bug?

正常錯誤:接口沒實作,沒按約定傳回結果,邊界值處理出錯等;輸入異常值(空值、特殊字元、超過約定長度等),接口抛錯,沒做封裝處理;輸入錯誤的參數、多輸入、少輸入參數;

接口可能出現的錯誤:安全性問題,如明文傳輸、傳回結果含有敏感資訊,沒對使用者身份資訊做校驗,沒做惡意請 求攔截等;

性能問題:如接口并發插入多條相同操作,響應時間過長,接口壓測出現瓶頸等。

你所知道的接口安全性方面的測試?

接口的安全測試主要有以下幾個方面:

  • 接口對于請求參數篡改的預防:引入簽名、參數MD5加密等;
  • 接口身份認證存在的漏洞:cookie仿冒、session劫持、平行和垂直越權;
  • 完善接口的防刷機制:比如暴力破解短信驗證碼、找回密碼功能的枚舉破解安全問題;
  • 競争條件—利用線程并發漏洞:超過限制下單、同時申請多筆退款;
  • 注入類攻擊:sql注入、sqlmap 接口注入檢查;
  • 資料保護:檢查請求及響應是否包含敏感資訊;
  • 安全日志,管理操作需要記錄日志。

更多系列文章

敬請期待

我是CoCo,計算機科學與技術專業,深漂大廠網際網路民工(女),坐标深圳。5年工作經驗,3年持續輸出技術文。ITester軟體測試小棧(ID:ITestingA)号主,專注于軟體測試技術和寶藏幹貨分享,每周準時更新原創技術文章,每月不定期贈送技術書籍,願我們在更高處相逢。喜歡記得星标⭐我,每周及時獲得最新推送,第三方轉載請注明出處。

DING,接口自動化測試面試題待查收
DING,接口自動化測試面試題待查收

想擷取更多最新幹貨内容

快來星标 置頂 關注我

繼續閱讀