一、在自動化測試過程中上下游接口有數據依賴如何處理
用一個全局變量來處理依賴的數據,比如登錄后返回token,其它接口都需要這個token,那就用全局變量來傳token參數
二、依賴第三方數據的接口如何進行測試
可以利用一些MOCK工具(如:Moco)來模擬第三方的數據返回,最大限度的降低對第三方數據接口的依賴
三、Cookie和Session、Token的區別
cookie:是一門客戶端技術,一般是由服務器生成返回給瀏覽器客戶端來保存的,並且cookie是以鍵值對的形式保存在瀏覽器客戶端的,每一個cookie都會有名稱,值,過期時間...。
Session:是一種讓請求從無狀態變成有狀態的機制,session是服務端的會話技術,當用戶登錄了系統,服務器端的就會創建一個會話,此會話中可以保存登錄用戶的信息。
token:是代表用戶身份的令牌,通常客戶端在登錄時就發起申請由服務端進行授權簽發,里面存放着一些關於用戶的合法信息,用於判斷請求是否合法(已登錄),哪個用戶發送的請求。
四、說說接口測試的流程
1、進行需求分析,熟悉項目需求
2、分析接口文檔
3、制定測試計划
4、然后根據接口文檔設計測試用例
5、搭建測試環境
6、執行用例
7、發現/提交BUG、回歸測試
7、提交測試報告
五、什么時候開展接口測試?
1、一般是在前后端開發進行聯調后進行接口測試
2、通過Mock接口測試,我們可以將接口測試提前介入,依據接口文檔編寫測試用例
3、在持續集成時,使用接口自動化測試進行集成持續保證測試質量
六、get請求和post請求對比?
1、get沒有請求體,它的請求參數直接拼接在了url后,post是有請求體的
2、get請求相對來講不安全,因為參數直接暴露了,post將數據放在了請求體中,相對來講安全
3、get請求的數據量受到URL長度限制,post理論上沒有限制
七、post請求的參數類型有哪些?
1、form表單傳參, Content-Type: application/x-www-form-urlencoded
2、json傳參,Content-Type: application/json
3、多參數表單傳參(一般傳輸數據量大的文件,比如上傳文件),Content-Type: multipart/form-data
4、xml傳參,Content-Type: text/xml
八、怎么開展接口自動化測試(自動化測試流程)
1、需求分析
2、選擇適合實現自動化的測試用例
3、選擇合適的自動化測試工具/框架
4、搭建自動化測試環境
5、設計自動化測試框架
6、編寫腳本代碼
7、運行測試用例腳本
8、生成自動化測試報告
9、框架/腳本維護
九、接口自動化測試框架的搭建的具體思路和內容
技術選型:
開發語言:Java
項目構建工具:Maven
測試框架:TestNG
底層接口自動化支持庫:RestAssured
數據庫操作:JDBC
可視化報表:Allure
設計思路:
1、RestAssured用來發送接口請求和接收響應,並統一封裝通用的request方法,返回對應的response
2、單接口測試用例保存在Excel中,使用TestNG Dataprovider實現數據驅動測試
3、多接口(業務流程)用例直接寫代碼完成用例腳本編寫,同時將使用頻繁的場景組合API進行封裝到service層為用例層提供服務
4、參考postman設計全局變量池,解決前后接口依賴的數據傳遞,先存放到變量池中,在需要使用時通過#XX#替換
5、在數據庫斷言時,使用JDBC技術操作數據庫
6、設計一些工具類,比如隨機數據生成工具類、Excel操作工具類、JDBC操作工具類等等
7、集成Allure可視化報表,並將接口日志添加到Allure報表中方便查看
8、使用Jenkins做持續集成,每日定時構建
十、自動化執行過程中產生的垃圾數據如何清理?
使用TesNG的@BeforeXX @AfterXX注解分別可以做測試環境的初始化和測試環境的清理動作,如果業務接口有提供刪除的接口,通過調用接口實現數據的刪除。如果沒有則通過JDBC操作數據庫實現數據的清理
十一、接口自動化如何上傳文件?
只需要使用RESTAssured提供的multiPart方法,參數指定對應文件即可。
十二、接口權限驗證怎么處理?
首先要確認使用的是什么類型的鑒權方式?Cookie+session還是token
1、Cookie+session方式,在調用登錄接口之后,服務端會返回session ID,客戶端下次發起請求前只需要在請求中攜帶這個ID即可
2、token方式,調用完登錄接口,服務端會返回token串,客戶端下次發起請求前只需要在請求中攜帶這個token即可
十三、接口加密如何處理的?
首先要確認使用的是什么類型的加密方式?摘要算法:MD5、SHA1 對稱加密對稱加密算法:AES、DES,非對稱加密算法:RSA
1、找開發確認加密的算法
2、讓開發打一個jar包
3、測試代碼工程中引入,如果是Jmeter這樣的工具也可以通過引入Jar包的方式
十四、接口自動化測試怎么校驗結果?
1、斷言接口的返回數據和預期是否一致(包括響應狀態碼、響應頭、響應體數據),其中響應體數據可以通過JsonPath表達式解析獲取關鍵字段做斷言
2、如果接口有更新數據庫的數據,還需要到數據庫中查詢數據是否和修改的一致,通過Java的JDBC技術實現數據庫操作
十五、你的接口自動化測試有哪些可以優化的地方?
1、用例量大的情況,執行效率,后面可以考慮通過多線程的方式執行
2、目前主要通過代碼編寫方式實現自動化,對於業務測試人員不夠友好,后期可以考慮基於現有的框架開發測試平台
十六、接口自動化遇到過哪些問題?發現了哪些BUG,成功率是多少,執行失敗的原因是什么?
