接口自動化測試平臺搭建(數據庫使用mysql)

技術架構

前端:js+vue+element-ui
github地址:https://github.com/pencil1/ApiTestWeb

後端:python+flask+httprunner
github地址: https://github.com/pencil1/ApiTestManage

數據庫:mysql
在這裏插入圖片描述

前端部署

1、安裝windows版本的node.js

2、安裝windows版本的Python2(包括配置環境變量)

3、安裝yarn(包括配置yarn)

npm install -g yarn
yarn config set registry https://registry.npm.taobao.org -g
yarn config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/ -g

在這裏插入圖片描述

4、安裝node-sass

npm install -g mirror-config-china --registry=http://registry.npm.taobao.org
npm install node-sass

在這裏插入圖片描述

5、安裝依賴的packages

yarn install

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

6、運行項目

yarn serve

在這裏插入圖片描述

後端部署

1、安裝windows版本的Python3(包括配置環境變量)

2、安裝項目依賴的packages

pip install -r requirements.txt

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

3、安裝mysql-connector

pip install mysql-connector

4、修改數據庫連接配置(config.py)

class Config:
    SECRET_KEY = 'BaSeQuie'
    basedir = os.path.abspath(os.path.dirname(__file__))

    # sqlite數據庫的地址
    # SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(basedir, "data.sqlite")
    SQLALCHEMY_DATABASE_URI = 'mysql+mysqlconnector://root:[email protected]:3306/api_test?charset=utf8mb4'
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    CSRF_ENABLED = True
    UPLOAD_FOLDER = '/upload'
    # DEBUG = True
    SCHEDULER_API_ENABLED = True

    @staticmethod
    def init_app(app):
        pass
class DevelopmentConfig(Config):
    # SQLALCHEMY_DATABASE_URI = os.environ.get('DEV_DATABASE_URL') or 'sqlite:///' + os.path.join(basedir, 'data.sqlite')
    # SCHEDULER_JOBSTORES = {'default': SQLAlchemyJobStore(url=SQLALCHEMY_DATABASE_URI)}
    # 123456表示密碼,test代表數據庫名稱
    SQLALCHEMY_DATABASE_URI = 'mysql+mysqlconnector://root:[email protected]:3306/api_test?charset=utf8mb4'
    SCHEDULER_JOBSTORES = {'default': SQLAlchemyJobStore(url=SQLALCHEMY_DATABASE_URI,
                                                         engine_options={'pool_pre_ping': True})}
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    SQLALCHEMY_POOL_SIZE = 100
    SQLALCHEMY_POOL_RECYCLE = 1800

5、將config表的variables字段的類型修改爲TEXT(models.py)

class Config(db.Model):
    __tablename__ = 'config'
    id = db.Column(db.Integer(), primary_key=True, comment='主鍵,自增')
    num = db.Column(db.Integer(), nullable=True, comment='配置序號')
    name = db.Column(db.String(128), comment='配置名稱')
    variables = db.Column(db.TEXT, comment='配置參數')
    func_address = db.Column(db.String(128), comment='配置函數')
    project_id = db.Column(db.Integer, db.ForeignKey('project.id'), comment='所屬的項目id')
    created_time = db.Column(db.DateTime, index=True, default=datetime.now, comment='創建時間')
    update_time = db.Column(db.DateTime, index=True, default=datetime.now, onupdate=datetime.now)

6、創建數據庫

create database api_test default character set utf8mb4 collate utf8mb4_unicode_ci;

7、運行項目

在這裏插入圖片描述

8、初始化數據庫

set FLASK_APP=manage.py
flask initdata

在這裏插入圖片描述

參考資料

[01] 開源啦~接口自動化測試平臺
[02] npm,yarn替換國外鏡像爲國內鏡像,安裝依賴
[03] 使用 yarn 安裝時,報錯node_modules\node sass:Command failed.
[04] 解決pip install慢的方法
[05] HttpRunner中文用戶手冊
[06] 基於 HttpRunner 的 Web 測試平臺
[07] SQLAlchemy中解決數據庫訪問時出現的Incorrect string value: xxx at row 484
[08] mysql 創建表遇到單列的長度限制 ERROR 1074 (42000) 與 行長限制 ERROR 1118 (42000)

微信掃一掃關注公衆號
image.png
點擊鏈接加入羣聊

https://jq.qq.com/?_wv=1027&k=5eVEhfN
軟件測試學習交流QQ羣號:511619105

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章