實(shí)現(xiàn)方式
后端:java
前端:vue+element-ui
mock:mock-server
其它:redis
01、數(shù)據(jù)構(gòu)建
我們在測試過程中發(fā)現(xiàn)測試數(shù)據(jù)的構(gòu)建非常重要。如測試數(shù)據(jù)需要有真實(shí)性、唯一性、A 接口依賴 B 接口的返回值。目前通過提供環(huán)境變量、方法反射、接口依賴、SQL 依賴等方式提供數(shù)據(jù),通過 ${}表達(dá)式引用。
1、環(huán)境變量
最簡單的一種方式,key-value 方式。

2、預(yù)置方法
通過反射的方式,動態(tài)調(diào)用預(yù)置的數(shù)據(jù)構(gòu)造方法。


3、SQL 語句
為保證數(shù)據(jù)在不同環(huán)境的通用性,首先需實(shí)現(xiàn)數(shù)據(jù)源模塊,這樣可以保證在不同環(huán)境下執(zhí)行用例連接到不同的數(shù)據(jù)庫。


4、接口依賴
選擇已有的測試用例,提取響應(yīng)頭或者響應(yīng)體數(shù)據(jù)。


02、接口測試
2.1 測試用例
支持編寫、導(dǎo)入(har、json、yaml 等)、復(fù)制、生成。
2.2.1 編寫
前置用例:支持在執(zhí)行用例前執(zhí)行其他測試用例。
基本信息:主要是關(guān)聯(lián)項目及模塊。
請求信息:配置請求方式、URL、headers、params、body。
請求參數(shù)緩存:將請求參數(shù)中的 headers、params、form-data、json 對其進(jìn)行暫存??赏ㄟ^ #{}操作符調(diào)用。
斷言信息:支持多種斷言方式及操作符。
響應(yīng)數(shù)據(jù)緩存:將響應(yīng)內(nèi)容的 headers、body 進(jìn)行暫存??赏ㄟ^ #{}操作符調(diào)用
可以看到可配置緩存請求參數(shù)以及響應(yīng)數(shù)據(jù),有何作用呢?舉個簡單栗子:如在測試用戶詳情接口,我們?nèi)雲(yún)?userId,斷言需對響應(yīng)體結(jié)果逐一校驗(yàn),這就需要用到入?yún)⒌?userId。
1. 緩存 URL 參數(shù) userId

2. 準(zhǔn)備檢查 SQL,依賴名稱為 SelectUserInfoById

3. 斷言檢查接口返回值 username、realName 字段

4. 執(zhí)行日志



2.2.2 生成
目前項目約束了一套規(guī)則配置,配置后,可根據(jù)等價類、邊界值為每個屬性生成約束,最終根據(jù)正交法或笛卡爾積生成完整的測試用例。同時為了保證數(shù)據(jù)的可重復(fù)性,數(shù)據(jù)類型支持動態(tài)數(shù)據(jù),如用戶注冊時,可保證當(dāng)前生成的 username 在數(shù)據(jù)庫中不存在。

為有效等價類用例和無效等價類用例,單獨(dú)配置通用斷言。

動態(tài)生成結(jié)果(用例可復(fù)用)

靜態(tài)生成結(jié)果

2.2.3 導(dǎo)入
目前支持了 har、json、yaml、csv、excel 方式導(dǎo)入。另外,可在導(dǎo)入時將用例加入測試套件。

2.2 用例執(zhí)行日志
用例執(zhí)行日志將記錄用例的執(zhí)行情況,斷言信息,方便排錯。同時,加入執(zhí)行鏈路跟蹤,使用例整體運(yùn)行情況更加清晰。

可以通過點(diǎn)擊查看未解析依賴值之前的原始語法。

一次 “獲取用戶詳情” 用例完整的鏈路跟蹤。

2.3 測試套件
測試套件與測試用例之見為 N 對 N 關(guān)系。你可以在測試套件執(zhí)行之前:為套件執(zhí)行依賴,添加通用 headers、params、form-data。
在測試套件執(zhí)行之后:為套件執(zhí)行依賴。
測試套件通過并行的方式大幅提升測試效率。當(dāng)然測試套件中用例同樣提供執(zhí)行先后順序的設(shè)定。

可以方便快捷地維護(hù)套件內(nèi)的用例。

通過并行的方式,在 1s 不到的時間內(nèi)執(zhí)行了 24 條測試用例。

2.4 測試報告
在測試套件執(zhí)行后,將生成測試報告。統(tǒng)計基本運(yùn)行情況及詳細(xì)的請求信息。

2.5、其他設(shè)置
1. 定時任務(wù):可為測試套件制定定時任務(wù)
2. 設(shè)置代理:便于調(diào)試及監(jiān)控
3. 超時配置:防止超時阻塞
03、穩(wěn)定性測試
平時可能會對一些接口進(jìn)行穩(wěn)定性測試,因此特意支持按執(zhí)行時長和執(zhí)行次數(shù)兩種調(diào)度方式。同時將保留執(zhí)行日志。

04、Mock
mock 基于開源 mock 框架 mock-server。關(guān)于這一塊,在我之前的帖子可以看到,在此不再贅述,目前主要實(shí)現(xiàn)的功能點(diǎn)有:
多節(jié)點(diǎn):可滿足不同人員對于相同接口的配置
動態(tài)注入:運(yùn)行時注入/啟停 mock-server、mock-api,無需啟停服務(wù)
可視化報告:由 mock-server-ui 提供
豐富的命中策略:支持 header、body、queryparams、pathparams
支持自動轉(zhuǎn)發(fā):在未命中 mock-api 時支持自動轉(zhuǎn)發(fā)真實(shí)服務(wù)
支持響應(yīng)延時配置
技能提升
最后感謝每一個認(rèn)真閱讀我文章的人,看著粉絲一路的上漲和關(guān)注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走

這些資料,對于做【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術(shù)行業(yè),一定要提升技術(shù)功底。希望對大家有所幫助…….
關(guān)注我的微信公眾號:【程序員小濠】即可獲取這份資料了!
如果你不想再體驗(yàn)一次自學(xué)時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,可以加入我們的群:779450660 大家一起討論交流,里面也有各種軟件測試資料和技術(shù)交流。
如果對你有幫助的話,點(diǎn)個贊收個藏,給作者一個鼓勵。也方便你下次能夠快速查找。