接口測試的工具很多,公司引進了接口管理平台Yapi,自己嘗試直接搭建,從安裝Nodejs到配置MongoDB數據庫,再到安裝yapi的時候,遇到瀏覽器打開本地服務器Ip地址后,沒有顯示部署內容。。。沒找到原因,所以換了docker方式,這里記錄下,作為一個新手,有問題歡迎指出
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一,什么是Yapi
YApi 是由去哪兒移動架構組推出的一款開源項目,是高效、易用、功能強大的 api 管理平台,旨在為開發、產品、測試人員提供更優雅的接口管理服務。
官網:https://yapi.ymfe.org/,Yapi具有以下功能特性;
-
權限管理
扁平化權限設計,即保證了大型企業級項目的管理,又保證了易用性 -
可視化接口管理
基於 websocket 的多人協作接口編輯功能和類 postman 測試工具,讓多人協作成倍提升開發效率 -
Mock Server
易用的 Mock Server,MockServer 除支持普通的隨機 mock 外,還增加了 Mock 期望功能,根據設置的請求過濾規則,返回期望數據 -
自動化測試(這個我比較關注)
完善的接口自動化測試,保證數據的正確性,支持對 Response 斷言 -
數據導入
接口支持導入 swagger, postman, har 數據格式,方便遷移舊項目 -
插件機制
強大的插件機制,滿足各類業務需求
二,使用Docker創建Yapi容器
1,先安裝docker,參考我另一篇文章,可用docker version查看docker版本
[root@localhost ~]# docker version Client: Version: 17.12.1-ce API version: 1.35 Go version: go1.9.4 Git commit: 7390fc6 Built: Tue Feb 27 22:15:20 2018 OS/Arch: linux/amd64 Server: Engine: Version: 17.12.1-ce API version: 1.35 (minimum version 1.12) Go version: go1.9.4 Git commit: 7390fc6 Built: Tue Feb 27 22:17:54 2018 OS/Arch: linux/amd64 Experimental: false
2,從倉庫中拉取Yapi鏡像,docker pull命令
[root@localhost ~]# docker pull silsuer/yapi Using default tag: latest latest: Pulling from silsuer/yapi 1be7f2b886e8: Pull complete 6fbc4a21b806: Pull complete c71a6f8e1378: Pull complete ...
3,使用鏡像實例並運行容器,--name是指定容器名,-dit是指后台運行容器,並返回容器id(或者-it,指在當前窗口以偽終端進入容器,這里如果只用-d,容器啟動后就會馬上停止),-p是指端口映射(主機端口:容器端口,27017是數據庫端口,9090是yapi初始化配置端口,3000是yapi實際運行端口)
[root@localhost ~]# docker run --name yapi -dit -p 27017:27017 -p 9090:9090 -p 3000:3000 silsuer/yapi bash 3d3a94296f11c725ff091d52acb2e2a4bdb19d55354a0725f1e8b742c0a93ce7 ---(前面紅色部分是容器ID,后面的不清楚)
4,(可選)查看當前正運行的容器,docker ps
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3d3a94296f11 silsuer/yapi "bash" 25 minutes ago Up About a minute 0.0.0.0:3000->3000/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:27017->27017/tcp yapi
5,進入容器,有兩種方式:docker attach yapi (exit退出容器后,容器停止運行)或者docker exec -it yapi bash(exit退出容器后,容器依舊運行)
[root@localhost ~]# docker attach yapi root@3d3a94296f11:/# -------(這就是偽終端,進入容器后鍵入操作才顯示)
三,容器中部署安裝Yapi
1,啟動MogoDB,Yapi部署需要數據庫依賴
root@3d3a94296f11:/# service mongodb start * Starting database mongodb [ OK ]
2,因為Yapi需要git支持,先升級git源(我們學乖點,因為如果不先安裝git直接部署Yapi會出現錯誤)
root@3d3a94296f11:/# apt-get update Ign:1 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 InRelease Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB] Get:3 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 Release [3457 B] ...
3,安裝git,中途需要輸入y同意安裝
root@3d3a94296f11:/# apt-get install git Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: ...
4,(可選)查看升級后的get版本
root@3d3a94296f11:/# git --version git version 2.7.4
5,啟動Yapi服務進行部署配置,有如下bash提示
root@3d3a94296f11:/# yapi server 在瀏覽器打開 http://0.0.0.0:9090 訪問。非本地服務器,請將 0.0.0.0 替換成指定的域名或ip /bin/sh: 1: xdg-open: not found ------------(這個百度了很多也不清楚原因,放它一馬)
6,使用本地瀏覽器打開:http://0.0.0.0:9090,如下所示(我使用的是桌面環境,嘿嘿)
7,配置完成后,點擊開始部署,如下
8,部署成功后,查看命令窗口,顯示如下
... added 345 packages in 53.839s 依賴庫安裝完成,正在初始化數據庫mongodb... > yapi@1.3.22 install-server /my-yapi/vendors > node server/install.js log: mongodb load success... 初始化管理員賬號成功,賬號名:"admin@admin.com",密碼:"ymfe.org" 部署成功,請切換到部署目錄,輸入: "node vendors/server/app.js" 指令啟動服務器, 然后在瀏覽器打開 http://127.0.0.1:3000 訪問
9,根據上圖提示,記住賬戶名和密碼,切換到部署目錄(/my-yapi/),輸入: "node vendors/server/app.js" 指令。
root@3d3a94296f11:/# cd /my-yapi/ root@3d3a94296f11:/my-yapi# node vendors/server/app.js log: the server is start at 127.0.0.1:3000 log: mongodb load success...
10,瀏覽器打開上面地址:http://127.0.0.1:3000,使用上面記住的賬號密碼就可以登錄了,如下圖
--------------注意1:如果還要使用容器中的命令窗口,先按ctrl+c可以結束yapi進程,再執行nohup node /my-yapi/vendors/server/app.js 2>&1 & 在后台運行yapi,如下
root@3d3a94296f11:/my-yapi# node vendors/server/app.js log: the server is start at 127.0.0.1:3000 log: mongodb load success... ^C root@3d3a94296f11:/my-yapi# nohup node /my-yapi/vendors/server/app.js 2>&1 & [1] 91 root@3d3a94296f11:/my-yapi# nohup: ignoring input and appending output to 'nohup.out' root@3d3a94296f11:/my-yapi#
--------------注意2:如果想yapi后台運行並退出容器,開始是以docker exec -ti yapi bash方式進入的容器,輸入exit就可以了,以docker attach方式進入的容器,按ctrl+p+q(你沒看錯,就是三個鍵同時按),出現下圖所示就可以了
root@3d3a94296f11:/# read escape sequence [root@localhost ~]#