1. 背景介紹
當前項目是Web應用猛拴,采用的是前后臺分離的設計思想。后臺通過RESTful API對外提供服務。因此在測試的時候再菊,也需要同時對前臺頁面和后臺API進行獨立測試轧坎『暧剩考慮到大量的API測試和頁面功能測試,因此不可避免地需要進行自動化以加快項目的回歸測試時間,減少人的工作量蜜氨。
2. 測試目的
3. 方案設計
3.1 技術選型
由于我們在Robot Framework (RF)框架上有一些技術積累械筛,因此在自動化框架選型上,我們選擇RF作為自動化測試的核心底層框架飒炎。持續(xù)集成平臺我們選擇最流行的Jenkins來作為持續(xù)集成與調度平臺埋哟。
同時,我們也選擇postman的命令行工具newman, jmeter等作為我們的輔助測試框架郎汪,以應對不同的測試需求赤赊。我們整體的技術選型如下表所示:
編號 | 平臺 | 介紹 | 備注 |
---|---|---|---|
1 | jenkins | 開源的持續(xù)集成平臺 | 整個自動化測試平臺的核心 |
2 | robot framework | 開源的自動化測試框架 | 測試用例執(zhí)行的核心 |
3 | Selenium2Library | RF框架下的Web測試庫 | web測試用例依賴庫 |
4 | requestsLibrary | RF框架下的API測試庫 | api測試用例依賴庫 |
5 | newman | postman的命令行工具,用于REST API測試 | api測試用例執(zhí)行工具 |
6 | jemter | 通用的接口測試工具 | api測試用例執(zhí)行工具 |
7 | docker | 一個開源的應用容器引擎 | 用于創(chuàng)建測試環(huán)境 |
8 | gogs | 開源的git web服務器 | 用于管理自動化測試用例 |
3.2 測試平臺設計
這里煞赢,我們通過docker容器技術抛计,封裝了相關的測試環(huán)境,使得測試環(huán)境隨用隨起照筑,用完即銷毀吹截,不污染我們測試機本身的系統(tǒng)環(huán)境。同時凝危,也不需要我們在測試機上安裝不同的測試工具了波俄,通過docker,我們可以同時在測試機上啟動多個容器來運行不同的測試任務蛾默。
這里是相關的測試環(huán)境docker鏡像地址弟断。大家可以自己pull下來運行。
鏡像地址 | 介紹 | 備注 |
---|---|---|
wywincl/docker-jmeter | jmeter鏡像趴生,提供jemter執(zhí)行環(huán)境 | |
wywincl/robotframework | Robot Framework鏡像阀趴,提供RF執(zhí)行環(huán)境, 支持Web與API測試,內置了Selenium2Library和RequestsLibrary庫 | |
postman/newman_ubuntu1404 | newman鏡像苍匆,提供了newman執(zhí)行環(huán)境 |
樣例1, 運行一個robotframework容器刘急。
docker run -it --rm -v /path/robot-content:/etc/robot wywincl/robotframework [options] data_sources
樣例2, 運行一個newman容器。
docker run -v ${WORKSPACE}:/etc/newman postman/newman_ubuntu1404 run "testcases/smoke_test/restapi_smoke_test/AMS_RESTful_API_SMOKE_TEST.json" -r "cli,junit" --reporter-junit-export
詳細的使用介紹浸踩,請大家參考相關工具的使用指南叔汁。