windows下FasterRunner部署
一、基本瞭解
FasterRunner是一款基於HttpRunner的測試工具。
在此感謝大佬李隆和尹全旺!!!
FasterRunner:https://github.com/yinquanwang/FasterRunner
FasterWeb:https://github.com/yinquanwang/FasterWeb
安裝參考:
https://www.cnblogs.com/tiechui2015/p/10463548.html
https://blog.csdn.net/weijiaxin2010/article/details/90080075
https://blog.csdn.net/u012748719/article/details/90477779
二、前端部署
<前端環境準備>
1.下載nodejs
2.cmd檢視
node-v
npm-v
3.修改nodejs內建的npm預設配置路徑,非必須(Nodejs內建的npm預設會把模組安裝在c盤的使用者AppData目錄下)
npm config set prefix "C:\Program Files\nodejs\node_global" npm config set cache "C:\Program Files\nodejs\node_cache"
4.配置淘寶映象
npm config set registry https://registry.npm.taobao.org
<前端部署>
5.cd進去專案目錄 ,安裝依賴包
npm install
不出意外,會是這樣的:
未完待續......
6.啟動服務
npm run dev
執行結果可能是如下:
各種包依賴不匹配,這和上述npm install的警告是有關的。所以來看看具體依賴哪些包,也就是package.json
這裡面webpack和webpack-cli還有其他幾個版本有衝突。我的前端開發同學安裝啟動這個專案完全沒問題,我這全新的環境就各種不匹配報錯,可能是原本她本地就安裝了一些依賴包。所以全新環境部署,整理解決辦法如下:
a.若npm install 安裝警告後,繼續npm run dev報錯,報錯內容和上述截圖的類似;
b.修改package.json,用如下內容替換(已經試出來沒問題的):
{ "name": "api-web", "version": "1.0.0", "description": "A Vue.js project", "author": "尹全旺 <[email protected]>", "private": true, "scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "build": "node build/build.js" }, "dependencies": { "axios": "^0.18.0", "element-ui": "^2.4.6", "vue": "^2.5.2", "vue-monaco-editor": "0.0.19", "vue-router": "^3.0.1", "vuedraggable": "^2.16.0", "vuex": "^3.0.1" }, "devDependencies": { "autoprefixer": "^7.1.2", "babel-core": "^6.22.1", "babel-helper-vue-jsx-merge-props": "^2.0.3", "babel-loader": "^7.1.1", "babel-plugin-syntax-jsx": "^6.18.0", "babel-plugin-transform-runtime": "^6.22.0", "babel-plugin-transform-vue-jsx": "^3.5.0", "babel-preset-env": "^1.3.2", "babel-preset-stage-2": "^6.22.0", "chalk": "^2.0.1", "copy-webpack-plugin": "^4.0.1", "css-loader": "^0.28.0", "extract-text-webpack-plugin": "^3.0.0", "file-loader": "^1.1.4", "friendly-errors-webpack-plugin": "^1.6.1", "html-webpack-plugin": "^2.30.1", "node-notifier": "^5.1.2", "optimize-css-assets-webpack-plugin": "^3.2.0", "ora": "^1.2.0", "portfinder": "^1.0.13", "postcss-import": "^11.0.0", "postcss-loader": "^2.0.8", "postcss-url": "^7.2.1", "rimraf": "^2.6.0", "semver": "^5.3.0", "shelljs": "^0.7.6", "uglifyjs-webpack-plugin": "^1.1.1", "url-loader": "^0.5.8", "vue-easytable": "^1.7.1", "vue-loader": "^13.3.0", "vue-style-loader": "^3.0.1", "vue-template-compiler": "^2.5.2", "vue2-ace-editor": "0.0.11", "webpack": "^3.3.0", "webpack-cli": "^2.1.1", "webpack-bundle-analyzer": "^2.9.0", "webpack-dev-server": "^2.9.1", "webpack-merge": "^4.1.0" }, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" }, "browserslist": [ "> 1%", "last 2 versions", "not ie <= 8" ] }
c.刪掉package-lock.json和node_modules;
d.重新npm install
最終期望結果:
三、後端部署
1.安裝依賴:cd 進入FasterRunner專案根路徑
pip install -r requirements.txt
很遺憾,安裝失敗;開啟requirements.txt,逐一安裝,uWSGI安裝失敗,其他均安裝成功;
最後,決定採用apache+mod_wsgi部署Django專案,此處省略一二三四五六七,看此,該博主踩的坑,我一個不落都踩了......
溫馨提示:不支援在Windows上安裝uwsgi
2.下載、安裝Apache
下載地址:https://www.apachehaus.com/cgi-bin/download.plx
安裝:解壓安裝包,將apache的bin目錄加入到環境變數path中,修改httpd.conf配置檔案中SRVROOT的路徑為apache的安裝目錄
3.啟動Apache服務
cmd命令:httpd -k install -n “Apache”,將apache服務加入到Windows服務中
開啟服務,啟動
4.Mod_wsgi安裝
下載mod_wsgi python的外掛至python\Scripts目錄下:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
版本選擇:
如mod_wsgi-4.7.1+ap24vc15-cp38-cp38-win_amd64.whl
i. 這個外掛對應的Apache版本是24, VC是15
ii. python版本是3.8
iii. 64位系統
安裝mod_wsgi :pip install “mod_wsgi-4.7.1+ap24vc15-cp38-cp38-win_amd64.whl”
配置:mod_wsgi-express module-config
將輸出的三行內容複製到httpd.conf檔案下
5.將FasterRunner專案部署到Apache伺服器
修改Apache的httpd.conf檔案,新增如下配置
將httpd.conf配置檔案中的 “Require all denied” 修改為 “Require all granted”
將httpd.conf配置檔案中的監聽埠80改為8088
6.建立FasterRunner的資料庫
檢視FasterRunner/settings.py配置檔案,找到資料庫配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'fastrunner', # 新建資料庫名 'USER': 'fastrunner', # 資料庫登入名,也可以是root 'PASSWORD': 'fastrunner', # 資料庫登入密碼 'HOST': '127.0.0.1', # 資料庫所在伺服器ip地址 'PORT': '3306', # 監聽埠 預設3306即可 } }
建立資料庫,建立資料庫的賬號、密碼、埠需要與配置檔案中一致(預設已安裝:mysql+sql yog)
ps:設定密碼的時候,還遇到一個2058的報錯
SQLyog連線MySQL時出現的2058錯誤解決方法:
配置新連線報錯:錯誤碼 2058,分析是 mysql 密碼加密方法變了。 解決方法:windows 下cmd 登入 mysql -u root -p 登入你的 mysql 資料庫,然後執行這條SQL: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';(注意分號) #password 是自己設定的root密碼; 然後重新配置SQLyog的連線,則可連線成功。
7.執行Django資料庫遷移指令碼
#cd進入FasterRunner根目錄,有一個manage.py檔案
python manage.py makemigrations fastrunner fastuser # 生成資料庫遷移指令碼
python manage.py migrate # 執行資料庫遷移指令碼
可能會遇到這個報錯:
按照提示,在\FasterRunner-master目錄下,新建logs、debug.log目錄,注意一定是logs資料夾,我就是沒注意新建成log資料夾,一直報錯,汗.......
8.啟動Django服務
# 第一種啟動方式:預設本機8000埠啟動,只能本地訪問
python manage.py runserver
可能會遇到:"[WinError 10013] 以一種訪問許可權不允許的方式做了一個訪問套接字的嘗試",可參考
或者換個指定埠
python manage.py runserver 9000
可能會遇到:http://ip:9000/#/fastrunner/login還是打不開
回到前端的index.js檔案,之前存在一個誤區,以為前端和後端的埠要保持一致,所以多次改動埠9000和8000,導致頁面一直打不開。
web專案中有兩個埠,index.js中的埠是前端瀏覽器訪問介面,另一個埠是後端服務介面(django服務埠)
9.訪問FasterRunner 介面自動化測試平臺
註冊:http://localhost:8000/fastrunner/register
登入:http://localhost:8000/fastrunner/login
10.使用感受
一般般,可能是部署的過程太過波折,導致我認為這是一個很厲害的平臺,然而....
- 請求資訊格式不能相互轉換
- 介面用例,沒法很好的複用API模板,還是重新錄入一次用例請求引數,且都是單介面
我理解的是API模板請求資訊是具體用例的預設值,然後API模板支援涉及多介面的場景構建
- 配置管理、全域性變數、公共函式這些我就不多說了,也不符合預期