java版本-API介面測試框架搭建
阿新 • • 發佈:2019-01-01
基本概念:testng ,http, json, mysql, jenkins, spring
陸陸續續搭建起來的介面測試框架,使用起來並不是特別的理想,所以走上了一條迭代優化的不歸路。
所謂的框架是指,用例的組織,批量執行,測試報告,引數化配置。
測試框架應該提供哪些功能?
單個功能點的測試
多個用例的組織
日誌記錄
報告展示
1.0需求: http請求傳送, json解析, json格式校驗, 資料庫資料訪問,持續整合部署。
2.0需求: motan協議測試,dubbo協議測試,mq測試
http請求傳送
HttpClient自己封裝-----醜
unirest–還是不理想
rest-assured—目前的解決方案
json解析
fastjson
json格式校驗
json schema
資料庫訪問和sql執行
jdbc
持續整合,用例的批量執行
jenkins,mvn test
testng
很好的測試框架
監聽器:通過監聽器實現失敗用例重跑,實現用例執行結果入庫,失敗用例釘釘群告警。
註解
依賴注入:testng + spring 實現依賴注入。
斷言檢查: assertj
springboot 用例服務平臺後端使用springboot
JSON api
mybatis mapper封裝增刪查改,需要手動寫的是多表和複合查詢
react + antd 用例服務平臺前端使用react搭建
搜尋表單
新增和修改Modal框
刪除按鈕
表格:分頁器,total, pageSize, pageNum
圖表展示
日誌記錄
apache的log4j是日誌的一種實現
import org.apache.log4j.Logger; private static Logger log = Logger.getLogger(XXX.class); log4j.properties檔案 ### 設定### log4j.rootLogger = info,stdout,D,E ### 輸出資訊到控制擡 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n ### 輸出DEBUG 級別以上的日誌到= logs/error.log ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = logs/log.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 輸出ERROR 級別以上的日誌到 logs/error.log ### log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File =logs/error.log log4j.appender.E.Append = true log4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
為什麼要用java來做介面測試?主要是公司服務端是java的,考慮到可以複用服務端程式碼,以及後續非http協議的介面的測試,所以選擇了java。對於java真的是又愛又恨,愛她的強大,恨她的繁瑣。