自动化测试平台开发(二):项目基础结构搭建 - 前后端分离
本平台涉及后端服务、数据管理、前端交互,所以需要搭建两个项目:前端、后端,并且实现前后端分离。
- 后端项目采用Mysql + Django + djangorestframwork实现,提供前端交互所需请求接口。
- 前端项目采用vue-admin-template模块项目,做二次开发,实现用户行为交互。
一、项目搭建
- 新建django项目backend
# 安装Django pip install -U Django # 新建django项目 django-admin startproject backend # backend项目创建后,可看到自动新建了文件及目录:backend/backend/*, 新建 app cd backend/ python manage.py startapp user_auth // 这里新建一个app用来实现用户登录验证 # 启动django服务 python manage.py runserver 127.0.0.1:8000 # 注:django项目新建后默认配置数据库为sqlite3,这里我暂时没有机器安装了MySQL服务,所以暂时不做修改,本地开发调试先使用sqlite3 # 新建superuser python manage.py createsuperuser # 浏览器打开地址登录后台管理: http://127.0.0.1:8000/admin/
- 创建前端项目frontend
# 前端项目我们采用vue-admin-template模板项目做二次开发,所以先下载源码 # 安装npm 或yarn # 安装依赖包 npm install # 修改后端服务地址 # 启动前端服务 npm run dev
# 进入前端项目可看到基本模板页面
二、项目服务运行
-
后端服务 - supervisor
# supervisor守护进程运行 # supervisorctl status # supervisorctl restart xxx [root@iZbp1aal369fl3i2lkqybkZ ~]# cat /etc/supervisord.d/platform-backend.ini [program:test-platform-backend] command=/data/platform/test-platform/venv/bin/python3 manage.py runserver --noreload 0.0.0.0:8862 directory=/data/platform/test-platform/backend autostart=true ; 在supervisord启动的时候也自动启动 stopasgroup=true ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程 killasgroup=true ;默认为false,向进程组发送kill信号,包括子进程nclude /etc/nginx/uwsgi_params; [root@iZbp1aal369fl3i2lkqybkZ ~]# supervisorctl status test-platform-backend RUNNING pid 31727, uptime 0:30:49 [root@iZbp1aal369fl3i2lkqybkZ ~]# supervisorctl restart test-platform-backend
-
前端服务、docs在线文档 - nginx
[root@iZbp1aal369fl3i2lkqybkZ ~]# cat /etc/nginx/conf.d/server.conf # test platform production env server { listen 8869; #listen [::]:80 default_server; #root /var/www/html; # Add index.php to the list if you are using PHP #index index.html index.htm index.nginx-debian.html; # 测试服务器 server_name 47.9.15.123; location /api { client_max_body_size 100M; client_body_buffer_size 100M; client_body_timeout 120; # uwsgi_send_timeout 600; # uwsgi_connect_timeout 600; # uwsgi_read_timeout 600; # uwsgi_param X-Real-IP $remote_addr; # uwsgi_param X-Forwarded-For $proxy_add_x_forwarded_for; # uwsgi_param X-Forwarded-Proto $http_x_forwarded_proto; # include uwsgi_params; # uwsgi_pass 127.0.0.1:8862; proxy_pass http://127.0.0.1:8862; } location / { root /data/platform/test-platform/frontend/dist; index index.html index.htm index.jsp; #proxy_pass http://127.0.0.1:8867; } } # test platform docs server { listen 8865; #listen [::]:80 default_server; # 测试服务器 server_name 47.9.15.123; location / { root /data/platform/test-platform/docs/dist; index index.html index.htm index.jsp; } }
三、版本发布
jenkins -》视图 -》测试平台 -》
- test-platform-frontend:前端项目代码构建
源码管理 https://git.xxx.com/apitest/test-platform.git
分支:master
构建 shell:
cd UiProject && yarn install && yarn build:prod && sudo cp -r dist/* /data/platform/test-platform/frontend/dist/ && sudo /usr/sbin/nginx -s reload
test-platform-backend - test-platform-backend:后端服务构建
源码管理 https://git.xxx.com/apitest/test-platform.git分支:master
构建
shell:
sudo git pull && sudo supervisorctl status && sudo supervisorctl restart test-platform-backend - test-platform-docs:在线文档构建
源码管理 https://git.xxx.com/apitest/test-platform.git分支:master
构建
shell:
cd PlatPress && yarn install && yarn docs:build && sudo cp -r docs/.vuepress/dist/* /data/platform/test-platform/docs/dist/test-platform-report:平台测试执行报告构建 – allure参数 - allure_results
默认值:/data/Docker-test/jenkins/workspace/test-platform-report/allure-results
描述:Jenkins工作目录下,测试结果源文件(json、attach),用于生成allure报告
xml_report_path
默认值:空
描述:测试目录下,测试生成的xml结果文件路径(json、attach),用于生成allure报告,需输入
构建触发器
触发远程构建 (例如,使用脚本),配置 身份验证令牌
构建
执行shell
rm -rf ${allure_results}/*; cp -r ${xml_report_path}/* ${allure_results}
构建后操作
Allure Report
-------- THE END --------