1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        高級自動化測試常見面試題(Web、App、接口)

        共 9021字,需瀏覽 19分鐘

         ·

        2021-12-27 04:24


        一、Web自動化測試

        1.Selenium中hidden或者是display = none的元素是否可以定位到?

        不能,可以寫JavaScript將標(biāo)簽中的hidden先改為0,再定位元素


        2.Selenium中如何保證操作元素的成功率?也就是說如何保證我點(diǎn)擊的元素一定是可以點(diǎn)擊的?

        • 1.添加元素智能等待時(shí)間 driver.implicitly_wait(30)

        • 2.添加強(qiáng)制等待時(shí)間(比如python中寫 sleep)

        • 3.try 方式進(jìn)行 id,name,clas,x path, css selector 不同方式進(jìn)行定位,如果第一種失敗可以自動嘗試第二種


        3.如何提高Selenium腳本的執(zhí)行速度?

        代碼優(yōu)化,多任務(wù),分布式部署都是可以提升腳本執(zhí)行速度的。


        4.用例在運(yùn)行過程中經(jīng)常會出現(xiàn)不穩(wěn)定的情況,也就是說這次可以通過,下次就沒辦法通過了,如何去提升用例的穩(wěn)定性?

        • 1.time.sleep( )

        • 2.driver.implicitly_wait(30)

        • 3.多用 try 捕捉,處理異常


        5.你的自動化用例的執(zhí)行策略是什么?

        自動化測試與軟件開發(fā)本質(zhì)上是一樣的,利用自動化測試工具,經(jīng)過測試需求分析,設(shè)計(jì)出自動化測試用例,從而搭建自動化測試的框架,設(shè)計(jì)與編寫自動化腳本,驗(yàn)證測試腳本的正確性,最終完成自動化測試測試腳本(即主要功能為測試的應(yīng)用軟件)并輸出測試結(jié)果


        6.自動化測試的時(shí)候是不是需要連接數(shù)據(jù)庫做數(shù)據(jù)校驗(yàn)?

        從數(shù)據(jù)庫層面來進(jìn)行數(shù)據(jù)校驗(yàn)可以更方便驗(yàn)證系統(tǒng)的數(shù)據(jù)處理方面是否正確,數(shù)據(jù)處理邏輯正常后,UI層面上的校驗(yàn)也是需要做的。


        7.id,name,class,xpath, css selector這些屬性,你最偏愛哪一種,為什么?

        css 、xpath 幾乎所有的元素都可以定位到,但是它們的短處在于頁面上更改了元素后位置很容易改變,所以首先使用的還是id或者name等。


        8.如何去定位頁面上動態(tài)加載的元素?

        觸發(fā)動態(tài)加載元素的事件,直至動態(tài)元素出現(xiàn),進(jìn)行定位


        9.如何去定位屬性動態(tài)變化的元素?

        xpath或者css通過同級、父級、子級進(jìn)行定位

        點(diǎn)擊鏈接以后,Selenium是否會自動等待該頁面加載完畢?

        會的


        10.什么是page object設(shè)計(jì)模式?

        簡單來說,就是把頁面作為對象,在使用中傳遞頁面對象,來使用頁面對象中相應(yīng)的成員或者方法,能更好的體現(xiàn)面向?qū)ο笳Z言(比如java或者python)的面向?qū)ο蠛头庋b特性。


        11.如何在定位元素后高亮元素(以調(diào)試為目的)?

        用JavaScript等腳本來重置元素屬性,給定位的元素加背景、邊框


        12.什么是斷言?

        斷言的英文是assertion,斷言檢查的英文是assertion checking。

        斷言是指定一個(gè)程序必須已經(jīng)存在的狀態(tài)的一個(gè)邏輯表達(dá)式,或者一組程序變量在程序執(zhí)行期間的某個(gè)點(diǎn)上必須滿足的條件。


        13.你覺得自動化測試最大的缺陷是什么?

        • 1.不穩(wěn)定

        • 2.可靠性

        • 3.不易維護(hù)

        • 4.成本與收益


        14.Webdriver可以用來做接口測試嗎?

        接口測試有現(xiàn)成的模塊來處理,WebDriver是用于做WebUI自動化測試的。如果要實(shí)現(xiàn)接口測試,可以使用Requests模塊來實(shí)現(xiàn)


        二、App?UI自動化測試

        1.Android APP 內(nèi)存不足時(shí), 系統(tǒng)如何結(jié)束進(jìn)程獲得內(nèi)存?

        系統(tǒng)優(yōu)先結(jié)束被掛起(暫停)的進(jìn)程,釋放內(nèi)存


        2.APP 測試常見的嚴(yán)重問題有哪些?分別引起的原因有哪些?

        常見的有 crash、ANR(應(yīng)用無響應(yīng)、卡死),一般由設(shè)備碎片化、網(wǎng)絡(luò)波動大、內(nèi)存泄漏、代碼編寫錯(cuò)誤


        3.請簡單介紹你曾使用過的一款 APP 自動化測試工具 ?

        • 開放性問題,帶點(diǎn)主觀意見

        • 1.對比其他熟悉的自動化工具的優(yōu)缺點(diǎn)

        • 2.自動化的簡要方案(簡要的同時(shí)關(guān)鍵內(nèi)容請具體)。(提示:appnium 等)


        4.Android 測試與 web 測試有什么區(qū)別?

        相同點(diǎn):

        • 1.設(shè)計(jì)測試用例均依據(jù)等價(jià)類、邊界值等方法,測試原理相同;

        • 2.大多數(shù)都采用黑盒測試方法來驗(yàn)證業(yè)務(wù)功能;

        • 3.需要檢查界面布局、風(fēng)格和按鈕是否美觀、統(tǒng)一等(UI測試);

        • 4.測試頁面載入和翻頁的速度、登錄時(shí)長是否溢出等問題(性能測試)

        • 5.測試應(yīng)用系統(tǒng)的穩(wěn)定性;


        不同點(diǎn):

        • 1.手機(jī)作為通信工具,通信等一些行為會對APP產(chǎn)生(中斷測試)

        • 2.手機(jī)用戶對app 產(chǎn)品的安裝卸載操作:從上一版本/上兩個(gè)版本直接升級到最新版本(安裝卸載測試);

        • 3.web自動化測試使用的工具較常用的是selenium,而android手機(jī)自動化測試比較常用的自動化工具是monkey、monkeyrunner、Appium(測試工具不一樣)


        5.app 測試有哪幾種環(huán)境?

        本地環(huán)境:app 安裝的手機(jī)環(huán)境和電腦搭建的自動化測試環(huán)境(比如安卓 SDK 等等)。

        服務(wù)器環(huán)境:war 包部署的服務(wù)器, 服務(wù)器可以通過瀏覽器訪問, 也可以通過 app 去訪問。(訪問的是 web 程序的接口)


        6.簡單介紹一下 Android SDK 的安裝步驟:

        • 下載 jdk 和安卓 sdk

        • 安裝 jdk, 配置環(huán)境變量(java_home、 classpath、 path)


        7.請簡要介紹一下移動應(yīng)用及其服務(wù)端的測試點(diǎn)?

        移動應(yīng)用主要有權(quán)限、安裝運(yùn)行卸載、UI、功能、性能、中斷、兼容性、安全性、回歸、升級更新、用戶體驗(yàn)。(app的11 大測試點(diǎn))

        服務(wù)端有接口測試、性能測試、安全測試。


        8.如何判斷 app 的 bug 是客戶端問題還是后臺問題

        這個(gè)要根據(jù)業(yè)務(wù)來,一般數(shù)據(jù)的問題前端的問題多些,一般做法是有問題提給前端開發(fā), 他們知道是他們自己的問題還是后臺返回的數(shù)據(jù)問題。


        9.安卓中如何取出日志信息?

        把安卓系統(tǒng)日志信息實(shí)時(shí)導(dǎo)入到本地:adb logcat -v time > d:\mylog.log

        運(yùn)行使用某個(gè) app,實(shí)時(shí)獲取該 app 的日志信息(cmd 里面的返回信息) :

        adb shell monkey -p com.android.calendar -v 1000 > d:\mylog2.log


        10.常見的 adb 命令:

        • 查看當(dāng)前連接的設(shè)備:adb devices

        • 安裝軟件:adb install 路徑\xx.apk

        • 卸載軟件:adb uninstall <包名>

        • 從電腦上發(fā)送文件到設(shè)備:adb push <本地路徑> <遠(yuǎn)程路徑>

        • adb push C:\test1.txt /sdcard/

        • 從設(shè)備上下載文件到電腦:adb pull <遠(yuǎn)程路徑> <本地路徑>

        • adb pull /sdcard/test1.txt D:

        • 實(shí)時(shí)獲取日志:adb logcat -v time > D:\mylog.log

        • 登錄終端設(shè)備 shell:adb shell

        • 查找包名/活動名:adb logcat | findstr START

        • 啟動 APP 啟動:adb shell am start -n packageName/activity

        • 關(guān)閉 app語法:adb shell am force-stop 包名

        • 監(jiān)控 APP 啟動時(shí)間:adb shell am start -W packageName/activity

        • Monkey 命令:adb shell monkey -v -p mypackage 50


        11.APP 這么多主流機(jī)型如何測試 ?

        我們公司就買了, 魅族, 華為, 小米, iphone7、 iphone8 、 iphone8plus 、 iphone x 測試兼容性,有些沒有的機(jī)型,先借用同事的手機(jī)進(jìn)行測試,同時(shí)申請公司購買,或者采用云真機(jī)。


        12.App 崩潰(閃退),可能是什么原因?qū)е碌模?/span>

        • 緩存垃圾過多:由于安卓系統(tǒng)的特性,如果長時(shí)間不清理垃圾文件.會導(dǎo)致越來越卡.也會出現(xiàn)閃退情況.

        • 運(yùn)行的程序過多,導(dǎo)致內(nèi)存不足

        • 應(yīng)用版本兼容問題:如果應(yīng)用版本太低,會導(dǎo)致不兼容,造成閃退。此外,有些新版本在調(diào)試中,也會造成應(yīng)用閃退。解決方法:如果是版本太舊,更新為新版本即可;如果是新版本閃退,可能是應(yīng)用在改版調(diào)試,可卸載后安裝舊版。

        • 檢查 APP 中訪問網(wǎng)絡(luò)的地方,組件中的 ImageView 是否可以正常的下載并顯示到 app 頁面上。

        • 檢查 APP 的 sdk 和手機(jī)的系統(tǒng)是否兼容。

        • 在一些特定情況下的閃退,比如播放視頻,在 Android5.0 升級到 Android6.0 的時(shí)候,有些系統(tǒng) API 老版本

        • 有,新版本沒有,到時(shí)回去對象的時(shí)候失敗,報(bào)空,系統(tǒng)就會出現(xiàn)閃退


        13.Appium 都有哪些啟動方式

        • 1.客戶端啟動

        • 2.命令行啟動


        14.請簡單介紹一下使用過的安卓UI自動化測試工具?

        參考答案:appium:是一個(gè)移動端的自動化框架,可用于測試原生應(yīng)用,移動網(wǎng)頁應(yīng)用和混合型應(yīng)用,且是跨平臺的。robotium:是一款國外的Android自動化測試框架,主要針對Android平臺的應(yīng)用進(jìn)行黑盒自動化測試,它提供了模擬各種手勢操作(點(diǎn)擊、長按、滑動等)、查找和斷言機(jī)制的API,能夠?qū)Ω鞣N控件進(jìn)行操作。


        15.請說明Android手機(jī)和IOS手機(jī),系統(tǒng)有什么區(qū)別?

        • 兩者運(yùn)行機(jī)制不同:IOS采用的是沙盒運(yùn)行機(jī)制,安卓采用的是虛擬機(jī)運(yùn)行機(jī)制。

        • 兩者后臺制度不同:IOS中任何第三方程序都不能在后臺運(yùn)行;安卓中任何程序都能在后臺運(yùn)行,直到?jīng)]有內(nèi)存才會關(guān)閉。

        • IOS中用于UI指令權(quán)限最高,安卓中數(shù)據(jù)處理指令權(quán)限最高。


        三、接口自動化測試

        1.按你的理解,軟件接口是什么?

        就是指程序中具體負(fù)責(zé)在不同模塊之間傳輸或接受數(shù)據(jù)的并做處理的類或者函數(shù)。


        2.HTTP和HTTPS協(xié)議區(qū)別?

        • https協(xié)議需要到CA(Certificate Authority,證書頒發(fā)機(jī)構(gòu))申請證書,一般免費(fèi)證書較少,因而需要一定費(fèi)用;

        • http是超文本傳輸協(xié)議,信息是明文傳輸,Https協(xié)議是由SSL+Http協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全;

        • http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443;


        3.HTTPS在哪一層?

        以前我面試很喜歡提網(wǎng)絡(luò)協(xié)議的問題,有朋友說我裝X,不實(shí)用。稍有點(diǎn)研究網(wǎng)絡(luò)知識,實(shí)際就不難回答

        HTTPS在應(yīng)用層。


        4.get和post區(qū)別是什么?

        POST和GET都是向服務(wù)器提交數(shù)據(jù),并且都會從服務(wù)器獲取數(shù)據(jù)。

        區(qū)別:

        • 1)傳送方式:get通過地址欄傳輸,post通過報(bào)文傳輸

        • 2)傳送長度:get參數(shù)有長度限制(受限于url長度),而post無限制

        • 3)GET產(chǎn)生一個(gè)TCP數(shù)據(jù)包(對于GET方式的請求,瀏覽器會把http header和data一并發(fā)送出去,服務(wù)器響應(yīng)200返回?cái)?shù)據(jù)),POST產(chǎn)生兩個(gè)TCP數(shù)據(jù)包(對于POST,瀏覽器先發(fā)送header,服務(wù)器響應(yīng)100 continue,瀏覽器再發(fā)送data,服務(wù)器響應(yīng)200 ok返回?cái)?shù)據(jù))

        • 4)get請求參數(shù)會被完整保留在瀏覽歷史記錄里,而post中的參數(shù)不會被保留

        • 5)在做數(shù)據(jù)查詢時(shí),建議用GET方式;而在做數(shù)據(jù)添加、修改或刪除時(shí),建議用post方式


        5.常見的POST提交數(shù)據(jù)方式

        主要有四種方式:application/x-www-form-urlencoded、multipart/form-data、application/json、text/xML等。


        6.什么是Http協(xié)議無狀態(tài)協(xié)議?怎么解決HTTP協(xié)議無狀態(tài)協(xié)議

        無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力,服務(wù)器不知道客戶端是什么狀態(tài)。即我們給服務(wù)器發(fā)送 HTTP 請求之后,服務(wù)器根據(jù)請求,會給我們發(fā)送數(shù)據(jù)過來,但是,發(fā)送完,不會記錄任何信息。HTTP 是一個(gè)無狀態(tài)協(xié)議,這意味著每個(gè)請求都是獨(dú)立的,Keep-Alive 沒能改變這個(gè)結(jié)果。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快。HTTP 協(xié)議這種特性有優(yōu)點(diǎn)也有缺點(diǎn),優(yōu)點(diǎn)在于解放了服務(wù)器,每一次請求“點(diǎn)到為止”不會造成不必要連接占用,缺點(diǎn)在于每次請求會傳輸大量重復(fù)的內(nèi)容信息??蛻舳伺c服務(wù)器進(jìn)行動態(tài)交互的 Web 應(yīng)用程序出現(xiàn)之后,HTTP 無狀態(tài)的特性嚴(yán)重阻礙了這些應(yīng)用程序的實(shí)現(xiàn),畢竟交互是需要承前啟后的,簡單的購物車程序也要知道用戶到底在之前選擇了什么商品。于是,兩種用于保持 HTTP 連接狀態(tài)的技術(shù)就應(yīng)運(yùn)而生了,一個(gè)是 Cookie,而另一個(gè)則是 Session。


        7.cookie和session的區(qū)別

        • cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上

        • cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙,考慮到安全應(yīng)當(dāng)使用session

        • session會在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會比較占用你服務(wù)器的性能,考慮到減輕服務(wù)器性能方面應(yīng)當(dāng)使用cookie

        • 單個(gè)cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie可以將登陸信息等重要信息存放為session;其他信息需要保存,可以放在cookie


        8.什么是DNS?

        DNS 是域名系統(tǒng) (Domain Name System),DNS是用來做域名解析的,它會在你上網(wǎng)輸入網(wǎng)址后,把它轉(zhuǎn)換成IP,然后去訪問對方服務(wù)器;沒有它,你想上百度就要記住百度的IP,但有了DNS的處理,你只需要記住對應(yīng)網(wǎng)站的域名,即網(wǎng)址就可以了。


        9.請問你們公司是如何做接口測試的?

        接口測試實(shí)際跟一般測試不同就是測試用例的設(shè)計(jì)部分。

        • ①獲取接口規(guī)范。

        • ②設(shè)計(jì)接口測試功能用例(主要從用戶角度出發(fā)看接口能否實(shí)現(xiàn)業(yè)務(wù)需求,用例設(shè)計(jì)就是黑盒用例那一套)。

        • ③各種入?yún)Ⅱ?yàn)證(正常情況,異常情況包括輸入?yún)?shù)個(gè)數(shù)不對,類型不對,可選/必選,還有考慮參數(shù)有互斥或關(guān)聯(lián)的情況)。

        • ④接口返回值各種驗(yàn)證(符合接口文檔需求)

        • ⑤了解接口實(shí)現(xiàn)邏輯,實(shí)現(xiàn)邏輯覆蓋(語句/條件/分支/判定/…)

        • ⑥接口能并發(fā)執(zhí)行嗎、安全嗎,性能滿足要求嗎?

        • ⑦采用工具或者自寫代碼來驗(yàn)證。

        • ⑧發(fā)現(xiàn)問題跟功能測試一樣,該報(bào)bug報(bào)bug,該跟蹤狀態(tài)的跟蹤狀態(tài)。


        10.怎么設(shè)計(jì)接口測試用例?

        通常,設(shè)計(jì)接口測試用例需要考慮以下幾個(gè)方面:

        ①是否滿足前提條件

        有些接口需要滿足前提,才可成功獲取數(shù)據(jù)。常見的,需要登錄Token

        逆向用例:針對是否滿足前置條件(假設(shè)為n個(gè)條件),設(shè)計(jì)0~n條用例

        ②是否攜帶默認(rèn)值參數(shù)

        正向用例:帶默認(rèn)值的參數(shù)都不填寫、不傳參,必填參數(shù)都填寫正確且存在的“常規(guī)”值,其他不填寫,設(shè)計(jì)1條用例

        ③業(yè)務(wù)規(guī)則、功能需求

        這里根據(jù)時(shí)間情況,結(jié)合接口參數(shù)說明,可能需要設(shè)計(jì)N條正向用例和逆向用例

        ④參數(shù)是否必填

        逆向用例:針對每個(gè)必填參數(shù),都設(shè)計(jì)1條參數(shù)值為空的逆向用例

        ⑤參數(shù)之間是否存在關(guān)聯(lián)

        有些參數(shù)彼此之間存在相互制約的關(guān)系

        ⑥參數(shù)數(shù)據(jù)類型限制

        逆向用例:針對每個(gè)參數(shù)都設(shè)計(jì)1條參數(shù)值類型不符的逆向用例

        ⑦參數(shù)數(shù)據(jù)類型自身的數(shù)據(jù)范圍值限制

        正向用例:針對所有參數(shù),設(shè)計(jì)1條每個(gè)參數(shù)的參數(shù)值在數(shù)據(jù)范圍內(nèi)為最大值的正向用例


        11.平常用什么工具測接口的?

        常用http協(xié)議接口測試工具,如:postman、fiddler、jmeter;webService接口用SoapUI、jmeter等。


        12.沒有接口文檔,如果做接口測試?

        本題主要考情商,通俗來說就是忽悠能力,先唬住面試官了再說,進(jìn)去了也是瞎測測,隨時(shí)做好背鍋的準(zhǔn)備,當(dāng)然,你肯定不能回答面試官不測(心理mmp,臉上笑嘻嘻),接下來就是扯犢子時(shí)間

        用抓包工具把接口抓取處理,然后針對性進(jìn)行測試;接口中字段信息不清楚的,找時(shí)間集中尋求開發(fā)解答。(常用抓包工具Fiddler、Charles等)


        13.在手工接口測試或者自動化接口測試的過程中,上下游接口有數(shù)據(jù)依賴如何處理?

        用一個(gè)全局變量來處理依賴的數(shù)據(jù),比如登錄后返回token,其它接口都需要這個(gè)token,那就用全局變量來傳token參數(shù)。


        14.依賴于第三方數(shù)據(jù)的接口如何進(jìn)行測試?

        mock

        接著面試官會問你,如果mock的,然后你就順著坑繼續(xù)挖,搭建mock服務(wù)。


        15.接口測試中,依賴登錄狀態(tài)的接口如何測試?

        依賴登錄狀態(tài)的接口的本質(zhì)上是在每次發(fā)送請求時(shí)需要帶上session或者cookie才能發(fā)送成功,在構(gòu)建POST請求時(shí)添加必要的session或者cookie


        16.如何模擬弱網(wǎng)做測試?

        Fiddler和charles都可以模擬弱網(wǎng)測試,平常說的模擬丟包,也是模擬弱網(wǎng)測試。


        17.你平常做接口測試的過程中發(fā)現(xiàn)過哪些bug?

        面試官出這個(gè)題,主要是想知道你是不是真的做過接口測試,畢竟現(xiàn)在很多小伙伴簡歷經(jīng)過包裝(不包裝連面試機(jī)會都沒有,沒辦法,為了生存,能理解)

        常規(guī)錯(cuò)誤,接口沒實(shí)現(xiàn),沒按約定返回結(jié)果,邊界值處理出錯(cuò)等。

        輸入異常值(空值、特殊字符、超過約定長度等),接口拋錯(cuò),沒做封裝處理;

        輸入錯(cuò)誤的參數(shù)、多輸入、少輸入?yún)?shù),接口可能出現(xiàn)的錯(cuò)誤;

        安全性問題,如明文傳輸、返回結(jié)果含有敏感信息,沒對用戶身份信息做校驗(yàn),沒做惡意請求攔截等;

        性能問題,如接口并發(fā)插入多條相同操作,響應(yīng)時(shí)間過長,接口壓測出現(xiàn)瓶頸等;


        18.當(dāng)一個(gè)接口出現(xiàn)異常時(shí)候,你是如何分析異常的?

        先抓包,用fiddler(charles)工具抓包,或者瀏覽器上F12調(diào)試工具;APP上的話,那就用Fiddler做代理,通過手機(jī)設(shè)置代理去看請求和返回報(bào)文;

        查看后端日志,如Linux系統(tǒng)通過xhell連上服務(wù)器,查看接口日志,查看是否有報(bào)錯(cuò)信息(命令:tail -f 日志文件);


        19.如何分析一個(gè)bug是前端還是后端的?

        平常提bug的時(shí)候,前端開發(fā)和后端開發(fā)總是扯皮,不承認(rèn)是對方的bug。

        這種情況很容易判斷,先抓包看請求報(bào)文,對著接口文檔,看請求報(bào)文有沒問題,有問題就是前端發(fā)的數(shù)據(jù)不對;

        請求報(bào)文沒問題,那就看返回報(bào)文,返回的數(shù)據(jù)不對,那就是后端開發(fā)的問題咯。


        20.你們做接口測試自動化嗎?

        現(xiàn)在針對大量應(yīng)用,普遍推崇做接口測試自動化,維護(hù)成本低、收益高。常用的工具有許多,如Jmeter、Robot Framework、pytest等。


        21.列出幾個(gè)JMeter監(jiān)聽器?

        • 一些JMeter監(jiān)聽器是:

        • 集合報(bào)告

        • 匯總報(bào)告

        • 查看結(jié)果樹

        • 用表格查看結(jié)果

        • 圖形結(jié)果

        • BeanShell Listener

        • 摘要報(bào)告等


        22.在python中進(jìn)行數(shù)據(jù)驅(qū)動測試

        在unittest中,沒有自帶的數(shù)據(jù)驅(qū)動,我們得借助ddt來實(shí)現(xiàn),首先,我們得在python運(yùn)行環(huán)境中安裝ddt,用下列命令安裝

        pip install ddt

        另外一個(gè)測試框架pytest,它自帶數(shù)據(jù)驅(qū)動實(shí)現(xiàn),是通過@pytest.mark.parametrize(argnames,argvalues) 來實(shí)現(xiàn)參數(shù)化的。

        也可以根據(jù)自己需求用python實(shí)現(xiàn)數(shù)據(jù)的讀取和驅(qū)動。


        23.接口自動化中的關(guān)聯(lián)怎么處理?

        把上一個(gè)請求返回的結(jié)果傳入到下一個(gè)請求的參數(shù)中,將請求的結(jié)果反射到一個(gè)類屬性(使用setattr()函數(shù)),下一個(gè)請求去調(diào)用這個(gè)類屬性


        24.自動化測試怎么校驗(yàn)結(jié)果?

        斷言 ,預(yù)期結(jié)果與實(shí)際結(jié)果對比

        數(shù)據(jù)庫校驗(yàn),根據(jù)測試場景來查詢數(shù)據(jù)庫里的數(shù)據(jù)和請求之前的數(shù)據(jù)進(jìn)行比對


        25.自動化使用的測試框架是什么?簡述自動化框架的設(shè)計(jì)、維護(hù)

        測試框架:python+unittest+requests+ddt+openpyxl+pymysql+logging

        python:入門簡單,語法簡潔

        unittest :定義一個(gè)測試用例類,具體的方法來維護(hù)測試用例的生命周期,測試場景行為,測試用例 前置場景,行為,期望結(jié)果,實(shí)際結(jié)果,斷言方法,Setup teardown方法

        requests:接口調(diào)用 ,支持http請求的庫,API 簡潔,提供不同的http請求方法,支持session,cookies,

        ddt :數(shù)據(jù)驅(qū)動,ddt 類裝飾器,data 測試方法裝飾器 unpack解包可迭代的數(shù)據(jù)類型

        普通用戶,數(shù)據(jù)庫,配置文件—(基礎(chǔ)數(shù)據(jù))

        openpyxl:數(shù)據(jù)管理 excel管理數(shù)據(jù),使用openpyxl模塊來進(jìn)行excel數(shù)據(jù)的讀和寫(excle,csv, json, yaML, txt都可以管理測試數(shù)據(jù))

        pymysql:數(shù)據(jù)庫交互,數(shù)據(jù)校驗(yàn)

        eval,json:數(shù)據(jù)格式的轉(zhuǎn)換 Eval將python支持的格式轉(zhuǎn)換成對應(yīng)的格式

        logging:日志處理, 統(tǒng)一日志輸出格式,渠道,級別,執(zhí)行結(jié)果的記錄,便于定位問題

        jenkins:持續(xù)集成

        2/框架設(shè)計(jì)思路:數(shù)據(jù)驅(qū)動+結(jié)構(gòu)分層(可讀性,可維護(hù)性,可擴(kuò)展性)

        數(shù)據(jù)驅(qū)動:將維護(hù)數(shù)據(jù)與代碼分離,接口調(diào)用行為一致,針對不同的參數(shù)組合驅(qū)動不同的測試場景,減少代碼冗余

        結(jié)構(gòu)分層:數(shù)據(jù)層+用例層+邏輯層

        數(shù)據(jù)層:測試數(shù)據(jù)的支撐 data.xls

        用例層:用例的執(zhí)行 test_register.py test_recharge.py

        邏輯層:公用的方法的封裝與提取 doexcle.py do_mysql.py http_requests.py logger.py等模塊

        3/框架設(shè)計(jì)步驟:

        準(zhǔn)備測試數(shù)據(jù):EXCEL表準(zhǔn)備測試用例—excel數(shù)據(jù)的讀取—參數(shù)值的替換

        發(fā)起請求:請求方法(get/post方法進(jìn)行封裝—URL的拼接(不同—參數(shù)轉(zhuǎn)化為字典

        拿到請求的返回值:解析返回值code,status,msg信息

        斷言


        好處:

        • 1、自動化測試用例和手工測試用例的完美結(jié)合,減少重復(fù)工作

        • 2、配置靈活,可以自主切換測試環(huán)境,執(zhí)行測試用例

        • 3、常用功能進(jìn)行封裝,邏輯清晰,易于維護(hù)

        • 4、統(tǒng)一執(zhí)行入口,管理測試用例集:

        • run.py模塊通過模糊查找來選擇需要執(zhí)行的測試用例

        • 5、持續(xù)集成,定時(shí)構(gòu)建,快速反饋


        26.具體的在這個(gè)項(xiàng)目中自動化怎么應(yīng)用到實(shí)際的?

        對自動化結(jié)果的分析完成所有的自動化測試框架的設(shè)計(jì)和實(shí)現(xiàn)后,進(jìn)行接口測試,然后集成到jenkins,配置定時(shí)執(zhí)行,生成htML報(bào)表,查看測試通過率,查看接口的功能

        每次發(fā)版時(shí),進(jìn)行回歸測試,新功能開發(fā)未提測前。




        --------?THE END?--------

        ??

        瀏覽 42
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            成人精品一区二区三区 | 国产精品激情在线 | 大鸡吧操逼视频 | 台湾成人久久综合网 | 成人无码人妻 | 女人被狂躁60分钟视频 | 欧美无乱码特黄日本大片 | www.俺去也 | 成人免费无码大片a毛片抽搐视频 | 欧美熟妇乱伦视频 |