1. 程式人生 > 實用技巧 >windows下FasterRunner部署

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模板支援涉及多介面的場景構建

  • 配置管理、全域性變數、公共函式這些我就不多說了,也不符合預期