開發(fā)工作的第一步就是需求確認了,類似企業(yè)級開發(fā)中朽砰,一般需要給出需求說明書和原型圖尖滚,這里就不做那么詳細的敘述了喉刘,擼起袖子直接干。
需求
基本上按照如下圖劃分成幾個大的模塊漆弄,主要有
用戶
饱搏、項目
、測試環(huán)境
置逻、測試用例
推沸、運行器
、測試報告
等幾部分組成券坞。具體的需求內(nèi)容由于篇幅有限鬓催,不再一一介紹了。
需求使用思維導圖管理恨锚,簡單直觀宇驾。
技術(shù)選型
在技術(shù)選型上,基本上確定了基礎(chǔ)編程語言猴伶,其他技術(shù)棧也基本上確定了课舍。之前做自動化測試時候,python做過相當長的主力開發(fā)語言他挎。這是決定用java做為開發(fā)語言筝尾,基于以下幾個方面考慮:
- python是動態(tài)語言,需要更好的工程實踐和代碼規(guī)范办桨。
- java靜態(tài)編譯特性更容易在編譯期間排錯筹淫。
- java 在web領(lǐng)域比python更適合
確定了編程語言,其他的框架也就好確定了呢撞,選擇當前主流的即可损姜。java后端方面spring全家桶基本上屬于一統(tǒng)江湖的地位,就它了殊霞。
- 編程語言:Java
- 基礎(chǔ)框架:Spring
- Web框架:SpringMVC
- 持久層:Mybatis
- 數(shù)據(jù)存儲:MySQL摧阅、MongoDB
- 環(huán)境管理:Docker
- 模板引擎:Thymeleaf
- 任務調(diào)度:Quartz
- 測試框架:Httprunner
- 單元測試框架:Junit、TestNG
- 前端:JQuery绷蹲、Bootstrap
Spring ioc容器作為管理bean的工具棒卷,springMVC框架處理前端發(fā)來的請求;
MySQL保存項目瘸右、接口娇跟、測試用例岩齿、定時任務太颤、測試報告等數(shù)據(jù);MongoDB用來存儲一些測試文檔盹沈,例如接口文檔龄章、測試報告等吃谣。
Docker技術(shù)的引入主要是為了構(gòu)建測試運行環(huán)境,和做測試數(shù)據(jù)隔離做裙。
定時任務調(diào)度使用目前廣泛使用的Quartz庫岗憋,可以靈活的定義各種定時規(guī)則。
持久層選用Mybatis主要是熟悉這個框架锚贱,可以靈活的寫SQL仔戈,并且有強大的SQL生成工具。(其實Hibernate也不錯拧廊,不過對Mybatis更熟悉一點)
測試運行器這里之前有考慮過自己實現(xiàn)一套基于http協(xié)議的測試工具监徘,后來發(fā)現(xiàn)業(yè)內(nèi)有很多優(yōu)秀的輪子,自己實現(xiàn)浪費精力而且不一定有別人的好吧碾,于是就采用了一套第三方的測試框架(HttpRunner)凰盔,感興趣的可以去了解一下這個接口測試框架。
前端使用JQuery+Bootstrap的經(jīng)典組合倦春,優(yōu)點就是用戶多第三方資源多户敬,網(wǎng)上大把的模板可以套用。
系統(tǒng)架構(gòu)
項目結(jié)構(gòu)
接口測試平臺睁本,是基于業(yè)務操作流的方式來架構(gòu)的尿庐,基本架構(gòu)如下圖:
上面的項目結(jié)構(gòu)圖看起來是不是一目了然。
首先測試人員創(chuàng)建一個項目呢堰,在項目內(nèi)依次錄入接口信息屁倔,每個項目的接口信息是可以導出為接口文檔。然后測試人員需要創(chuàng)建測試集(TestSuit)用來存放測試用例暮胧,最后測試人員需要創(chuàng)建定時任務锐借,按照規(guī)則定時自動運行測試,并輸出測試報告往衷。
數(shù)據(jù)流圖:
業(yè)務流:
1. 測試人員通過前端頁面創(chuàng)建測試項目
2. 為測試項目內(nèi)添加測試用例
3. 在任務界面構(gòu)建定時任務
4. 選取測試用例集或者測試用例钞翔,添加進Task
5. 定時任務進入內(nèi)存并持久化到數(shù)據(jù)庫,等待被觸發(fā)
6. 觸發(fā)測試任務席舍,進行測試環(huán)境校驗(遠程主機校驗布轿、鏡像校驗、測試容器校驗)
7. 構(gòu)建docker容器来颤,裝填測試數(shù)據(jù)和構(gòu)建測試環(huán)境(env)汰扭。
8. 執(zhí)行測試(測試運行器)
9. 生出測試報告,并導出
10. 保存測試報告福铅,并進行郵件提醒
通過以上架構(gòu)說明萝毛,接口測試平臺基本需求和業(yè)務操作流已經(jīng)基本明確,下一步就是搭建開發(fā)環(huán)境進行編碼實現(xiàn)了滑黔。