概述
基于renren-fast開(kāi)源框架的瞎嬉,二次開(kāi)發(fā)搭建的性能姐赡、接口測(cè)試平臺(tái)唐片,同時(shí)集成三方工具的啟停操作界赔,便于管理。本項(xiàng)目基于csdn博主smooth00的文章及其開(kāi)源的代碼進(jìn)行二次開(kāi)發(fā),文章鏈接:https://blog.csdn.net/smooth00/article/details/83380879
針對(duì)壓力測(cè)試牵触,使用jmeter制定測(cè)試策略淮悼,支持單節(jié)點(diǎn)及分布式加壓,節(jié)點(diǎn)刪減揽思,相關(guān)性能指標(biāo)實(shí)時(shí)監(jiān)控并輸出袜腥;
針對(duì)接口測(cè)試,支持TestNG對(duì)java語(yǔ)言實(shí)現(xiàn)的接口的自動(dòng)化測(cè)試;對(duì)于熟悉python的伙伴羹令,支持nose測(cè)試框架進(jìn)行接口測(cè)試鲤屡;兩種框架下都能定制測(cè)試報(bào)告進(jìn)行測(cè)試結(jié)果輸出;
內(nèi)核功能模塊
基于Jmeter-Api和Jmeter腳本實(shí)現(xiàn)在線性能壓測(cè)(已有功能)福侈。
基于Nose和TestNg實(shí)現(xiàn)在線接口測(cè)試(新增功能)
覆蓋allure報(bào)告展示及自定義測(cè)試報(bào)告展示(新增功能)
覆蓋三方工具的集成及管理(新增功能)
已經(jīng)支持的功能
友好的代碼結(jié)構(gòu)及注釋酒来,便于閱讀及二次開(kāi)發(fā)
實(shí)現(xiàn)前后端分離,通過(guò)token進(jìn)行數(shù)據(jù)交互肪凛,前端再也不用關(guān)注后端技術(shù)
靈活的權(quán)限控制堰汉,可控制到頁(yè)面或按鈕,滿足絕大部分的權(quán)限需求
頁(yè)面交互使用Vue2.x伟墙,極大的提高了開(kāi)發(fā)效率
完善的代碼生成機(jī)制翘鸭,可在線生成entity、xml戳葵、dao就乓、service、html拱烁、js生蚁、sql代碼,減少70%以上的開(kāi)發(fā)任務(wù)
引入quartz定時(shí)任務(wù)戏自,可動(dòng)態(tài)完成任務(wù)的添加邦投、修改、刪除浦妄、暫停、恢復(fù)及日志查看等功能
引入API模板见芹,根據(jù)token作為登錄令牌剂娄,極大的方便了APP接口開(kāi)發(fā)
引入Hibernate Validator校驗(yàn)框架,輕松實(shí)現(xiàn)后端校驗(yàn)
引入云存儲(chǔ)服務(wù)玄呛,已支持:
七牛云阅懦、阿里云、騰訊云等(暫時(shí)未變更這塊代碼)
引入swagger文檔支持徘铝,方便編寫API接口文檔
引入路由機(jī)制耳胎,刷新頁(yè)面會(huì)停留在當(dāng)前頁(yè)
引入最新版本Jmeter-Api,支持分布式壓測(cè)惕它,測(cè)試報(bào)告生成及在線查看下載怕午。
引入Echarts,支持在線觀測(cè)性能壓測(cè)結(jié)果淹魄。
新增功能
引入mock-runner支持平臺(tái)修改配置文件
引入接口測(cè)試框架支持: 基于Java語(yǔ)言的TestNg測(cè)試框架及基于python語(yǔ)言的nose測(cè)試框架
引入三方工具接入機(jī)制進(jìn)行服務(wù)的啟停及web頁(yè)面跳轉(zhuǎn)郁惜,本質(zhì)是將shell腳本service化,集成的時(shí)候通過(guò)service 服務(wù)名 start/stop
支持mock出來(lái)的接口文檔以pdf形式生成
支持用例的增甲锡、刪兆蕉、改羽戒,支持Allure報(bào)告、自定義報(bào)告的下載虎韵、查看
項(xiàng)目技術(shù)棧
核心框架:Spring Boot 1.5
安全框架:Apache Shiro 1.3
視圖框架:Spring MVC 4.3
持久層框架:MyBatis 3.3
定時(shí)器:Quartz 2.3
數(shù)據(jù)庫(kù)連接池:Druid 1.0
日志管理:SLF4J 1.7易稠、Log4j
頁(yè)面交互:Vue2.x
前端監(jiān)控:ECharts 3.8
壓測(cè)內(nèi)核:Apache JMeter 4.0
腳本調(diào)用內(nèi)核:Apache Commons Exec 1.3
遠(yuǎn)程執(zhí)行命令:Ganymed build210及ssh工具組件
批量上傳組件:bootstrap-fileinput v4.5.2
本地部署
(1) 下載源碼
(2)?創(chuàng)建數(shù)據(jù)庫(kù)renren_fast,數(shù)據(jù)庫(kù)編碼為UTF-8
(3)?執(zhí)行doc/db.sql文件包蓝,初始化數(shù)據(jù)
(4)?修改application.yml驶社,更新server的ip、端口养晋;
(5)?如果引入緩存還需要修改redis的ip及端口信息
(6)?修改application-dev.yml衬吆,更新MySQL的url、賬號(hào)和密碼
(7)?Eclipse绳泉、IDEA運(yùn)行RenrenApplication.java逊抡,則可啟動(dòng)項(xiàng)目
(8)?項(xiàng)目訪問(wèn)路徑:http://localhost:8080/renren-fast? 賬號(hào)密碼:admin/admin? Swagger路徑:http://localhost:8080/renren-fast/swagger/index.html
(9)?簡(jiǎn)單的啟停腳本參見(jiàn):shut_down.sh、start_up.sh
遠(yuǎn)程部署
修改ansible-deploy.yml中的hosts零酪、users冒嫡、部署路徑,運(yùn)行ansible相關(guān)命令即可
docker化
基于application.yml配置的服務(wù)端口四苇,修改docker-compose.yml中的鏡像名孝凌、端口映射,dockerfile中的端口月腋,通過(guò)mvn的dockerfile-maven-plugin插件進(jìn)行鏡像構(gòu)建及發(fā)布蟀架,具體可參見(jiàn)demo:pom.xml.docker文件,并修改其中的下的信息
Jenkins流水線方式部署平臺(tái)于k8s集群
在jenkins的Credentials設(shè)置中配置jenkins-harbor-creds榆骚、jenkins-k8s-config參數(shù)
修改Jenkinsfile中parameters下的相關(guān)參數(shù)信息及k8s-deployment.tpl中相關(guān)信息
提交git片拍,出發(fā)jenkins拉取最新代碼,進(jìn)行流水線部署
備注
源碼地址同樣開(kāi)放于微信圈子“自動(dòng)化測(cè)試”妓肢、公眾號(hào)“蠻懶”捌省;
https://github.com/ct1104/renren-fast/blob/master/README.md