自動(dòng)化篇
- 怎么樣的項(xiàng)目適合做自動(dòng)化測試
- 項(xiàng)目變動(dòng)少
- 項(xiàng)目周期長
- 項(xiàng)目資源(人力)足夠
- 回歸測試工作量大
- 你做過自動(dòng)化測試嗎?
做過 - 你會(huì)用自動(dòng)化腳本測試接口嗎,怎么測得
會(huì),使用python的requests庫模擬http和https請求,對返回結(jié)果做斷言;不同的測試數(shù)據(jù)可以使用數(shù)據(jù)驅(qū)動(dòng)的形式,框架可使用pytest
常用的有兩種方式,
一是使用工具
- 常用的有Postman和Jmeter,輔助工具有瀏覽器開發(fā)者工具和Fiddler
- 如果單純做接口測試,不需要做性能測試,Postman更常用,壓測、性能Jmeter更常用
- Postman可以很方便的編寫接口測試用例,并添加前置斷言,后置動(dòng)作,環(huán)境變量等;并且可以導(dǎo)出為json腳本,通過newman命令行集成到Jenkins上,生成html格式報(bào)告,可通過allure或htmlextra報(bào)告進(jìn)行美化
- Jmeter可以輕松模擬大批量的并發(fā)數(shù),給系統(tǒng)造成壓力,并且集成influxDB和Grafana進(jìn)行性能測試并實(shí)時(shí)監(jiān)控系統(tǒng)指標(biāo)
二是用代碼實(shí)現(xiàn)
- 通過Python+Pytest+requests庫+Git+jenkins搭建基于數(shù)據(jù)驅(qū)動(dòng)的接口測試自動(dòng)化框架,并通過github同步代碼,Jenkins持續(xù)集成 - 自動(dòng)化測試流程?
- UI自動(dòng)化
- 需求分析
- 篩選需要實(shí)現(xiàn)自動(dòng)化的功能
- 設(shè)計(jì)測試用例--可從手工用例中挑選
- 搭建測試環(huán)境
- 搭建自動(dòng)化測試框架
- 編寫代碼
- 封裝頁面對象基類、頁面對象類(包括頁面元素類和頁面動(dòng)作類),測試用例腳本,data、report、log、img、config、utils
- 通過github同步代碼
- 生成報(bào)告并美化(allure)
- 通過Jenkins實(shí)現(xiàn)持續(xù)集成
- 接口自動(dòng)化
- 需求分析
- 篩選需要實(shí)現(xiàn)自動(dòng)化的接口-可從接口用例中挑選
- 搭建自動(dòng)化測試框架
- 編寫代碼
- 通過Python+Pytest以數(shù)據(jù)驅(qū)動(dòng)的方式實(shí)現(xiàn)接口自動(dòng)化-生成報(bào)告-結(jié)果分析,data、report、log、img、config、utils
- 通過github同步代碼
- 生成報(bào)告并美化(allure)
- 通過Jenkins實(shí)現(xiàn)持續(xù)集成
- UI自動(dòng)化
- 自動(dòng)化測試如何搭建環(huán)境?
- 安裝軟件
- 上傳項(xiàng)目包
- 修改配置
- 啟動(dòng)數(shù)據(jù)庫
- 重啟tomcat服務(wù)
- 怎么去區(qū)分哪些需要考慮自動(dòng)化,哪些不需要?
- 主流程相關(guān)的功能
- 投入產(chǎn)出比
- 測試團(tuán)隊(duì)的技術(shù)水平
- 自動(dòng)化你怎么測得?JAVA版本
- 通過Jenkins設(shè)置觸發(fā)規(guī)則,自動(dòng)構(gòu)建,執(zhí)行代碼,發(fā)送報(bào)告
- QTP對象識(shí)別失敗是QTP自動(dòng)化腳本中最常見的情況,造成這種情況的 原因是復(fù)雜多樣的,試加以分析至少3個(gè)原因(selenium元素定位不到)
- Frame/Iframe原因定位不到元素
- 先切換到Frame頁面
- 元素未加載成功
- 添加等待
- 元素不可見,不可操作
- 修改屬性后再定位
- 動(dòng)態(tài)id
- 切換定位方式
- Frame/Iframe原因定位不到元素
- 進(jìn)程和線程關(guān)系及區(qū)別
- 進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)基本單位。
- 線程是進(jìn)程的一個(gè)實(shí)體,是系統(tǒng)進(jìn)行調(diào)度的最小單位。 - String 和 StringBuffer的區(qū)別
- 任何語言來實(shí)現(xiàn) String 串反轉(zhuǎn)功能
- 接口測試中,下文接口如何拿到上文的回包?
- 進(jìn)程和線程要實(shí)現(xiàn)同步有哪些方法
- hash的意思?
- 隨便找兩個(gè)你熟悉的python庫,給講講使用的函數(shù)?
- json
- dumps(字典轉(zhuǎn)json字符)
- loads(json字符轉(zhuǎn)字典)
- json
- hashSet,hashMap,hashTable的區(qū)別
- java序列和反序列的意思
- http協(xié)議中,給我說說協(xié)議的具體組成?json庫的使用,json字符串和 json對象的轉(zhuǎn)換?
- 請求行、請求頭、空行和請求體
- 實(shí)現(xiàn)多線程并發(fā)的方式,并說明最佳方法
- 請分別說明Int和Integer的區(qū)別
- int是基本數(shù)據(jù)類型,Integer是int的包裝類
- Integer變量必須實(shí)例化后才能使用,int變量不需要
- Integer實(shí)際是對象的引用,int直接存儲(chǔ)數(shù)據(jù)值
- Integer默認(rèn)值是null,int默認(rèn)值是0
- 請列出java的基礎(chǔ)數(shù)據(jù)類型
- byte,short,int,long,char,bool,float,double
- 請指出HashMap和Hashtable的區(qū)別
- 請指出final, finally, finalize的區(qū)別
- JAVA垃圾回收的優(yōu)點(diǎn)和原理,并簡要說明你知道的幾種回收機(jī)制
- 打印九九乘法表
- 寫一個(gè)類
- 什么是類和對象?
- 冒泡排序題:定義一個(gè)int型/字符型的的數(shù)組,如何安裝大小進(jìn)行排 序?
- 對應(yīng)用自己會(huì)花多久可以在業(yè)務(wù)上從入門到精通,說說自己的方法
- 查看公司業(yè)務(wù)文檔(項(xiàng)目介紹、需求文檔等),輸出業(yè)務(wù)流程圖或PPT
- 執(zhí)行測試用例,操作項(xiàng)目
- 查看歷史issue
- 遇到的問題統(tǒng)一記錄下來,請教老同事
- 使用什么測試框架做的上一個(gè)項(xiàng)目的自動(dòng)化測試
- Pytest
- 如何定位app上的元素,使用appium的inspector了嗎在什么平臺(tái)用的?
- 自動(dòng)化遇到用例fail掉如何排查故障
- 先排除環(huán)境原因(驅(qū)動(dòng)更新,測試數(shù)據(jù)失效)
- 是否由于功能修改,自動(dòng)化用例未同步
- 檢查是否是bug
- 等待元素出現(xiàn)的這個(gè)方法如何實(shí)現(xiàn)?
- 強(qiáng)制等待
- 固定等待多久
- 隱式等待
- 需要等待整個(gè)頁面加載完成,才會(huì)執(zhí)行下一步
- 顯式等待
- 指定元素可見,即可執(zhí)行下一步
- 強(qiáng)制等待
- 如何在app一個(gè)列表的listview中查到自己想要的那個(gè)元素(圖片,文 字,按鈕)并點(diǎn)擊?
- 如何在腳本中組織測試用例,按什么模式設(shè)計(jì)
- 如何測試app正確處理了服務(wù)端返回的異常,網(wǎng)絡(luò)異常 服務(wù)異常等?
- selenium中如何判斷元素是否存在?
- 定位元素時(shí)捕獲異常
- 使用find_elements函數(shù)定位元素