TestPlatform自动化平台环境部署

生产环境部署:https://www.jianshu.com/p/d6f9138fab7b     
本地部署说明:


1、安装python3.6.0开发环境,升级pip: pip show pip / Python.exe -m pip install --upgrade pip,(由于框架出现版本兼容性问题,建议3.6.0),注意pycharm设置好python.exe路径;

2、安装 mysql 数据库服务端 (推荐 5.7+,建议8.0.19,因为版本问题会有很多编码问题),并设置为 utf-8 编码,创建相应 testplatform数据库,设置好相应用户名、密码,启动 mysql;
下载地址:https://downloads.mysql.com/archives/installer/
安装步骤:https://www.jb51.net/article/92158.htm(3306端口被占用问题解决:https://blog.csdn.net/qq_43619461/article/details/105893770)
数据库客户端(Navicat也可以):https://github.com/dbeaver/dbeaver/releases/tag/7.3.2
https://dbeaver.io/download/

3、修改TestPlatform/TestPlatform/settings.py里的DATABASES 字典相关配置:NAME,USER、PASSWORD、HOST;

          

4、安装 rabbitmq 消息中间件,service rabbitmq-server start 启动服务,访问:http://localhost:15672/#/即为你部署 rabbitmq 的服务器 ip 地址,username:guest、Password:guest登陆

          安装rabbitmq会出现报错“Erlang could not be detected”,解决:https://blog.csdn.net/weixin_44561345/article/details/107524031

     版本对应:https://www.rabbitmq.com/which-erlang.html

     erlang下载:https://www.erlang.org/downloads/23.0

     可视化页面无法访问解决:https://www.cnblogs.com/breath-taking/articles/7942496.html

     注意:先配置好rabbitmq的sbin目录和erlang的bin目录环境变量,所有办法都试过不行就卸载再安装

      


5、修改TestPlatform/TestPlatform/settings.py里参数以及邮箱

        

   BROKER_URL = 'amqp://guest:guest@127.0.0.1:5672//' if DEBUG else 'amqp://guest:guest@127.0.0.1:5672//'
    邮箱设置

         


6、命令行窗口执行 pip install -r requirements.txt 安装工程所依赖的库文件(requirements.txt写清楚集体路径)
6.1、报requirements不存在时,写绝对路径
6.2、有时执行报错或timeout,有时用管理员身份打开CMD执行可解决

          

                


7、命令行窗口切换到TestPlatform目录下执行
python manage.py makemigrations Api 生成数据库迁移脚本

python manage.py migrate  #应用到db生成数据表
注意一:报错django.db.utils.OperationalError: (2059, <NULL>)
解决:以下命令是在cmd窗口下完成的。

1.登录mysql,连接用户为root。
> mysql -u root -p
2.执行命令查看加密方式
> use mysql;
> select user,plugin from user where user='root';
3.执行命令修改加密方式
> alter user 'root'@'localhost' identified with mysql_native_password by 'yourpassword'
4.属性权限使配置生效
> flush privileges
  注意二:执行python manage.py migrate报错ERROR 1064 (42000): You have an error in your SQL syntax corresponds to your MySQL server version for the right sLT CHARACTER SET utf8 COLLATE utf8_general_ci' at line 1
  解决:删除数据库,重新创建一个新的数据库,指定编码格式CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
   'TEST': {
'CHARSET' : 'utf8',
'COLLATION':'utf8_general_ci'}


8、创建用户python manage.py createsuperuser
9、启动服务:python manage.py runserver 0.0.0.0:8000
10、启动worker, 如果选择同步执行并确保不会使用到定时任务,那么此步骤可忽略
启动worker
python manage.py celery -A TestPlatform worker --loglevel=info
启动定时任务监听器
python manage.py celery beat --loglevel=info
启动任务监控后台
celery flower


数据库数据迁移:
方式一:
1、数据库表和数据备份:
进入MySQL目录下的bin文件夹:命令行:cd C:Program FilesMySQLMySQL Server 4.1in
导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名
如:mysqldump -u root -p news > news.sql (暂时放bin目前方便点,其他目录也可以,放路径就好)

2、数据迁移
输入:mysql>use 目标数据库名
如我输入的命令行:mysql>use news;
导入文件:mysql>source 导入的文件名;
如我输入的命令行:mysql>source news.sql;

方式二:

导出(mysqldump)
导出数据和表结构
mysqldump -uroot -p dbname > dbname .sql只导出表结构
mysqldump -uroot -p -d dbname > dbname .sql
导入
mysql -u用户名 -p密码 数据库名 < 数据库名.sql

方式三:
备份数据库命令:python manage.py dumpdata > a.json # 备份数据库中的数据到 a.json文件,需要在manage.py 所在的路径执行该命令,进入项目执行
把数据导入Django的命令:python manage.py loaddata a.json # 将备份的数据文件a.json,导入到django中
 报错:恢复SQL脚本时报错ERROR 1273 (HY000) at line 25: Unknown collation: 'utf8mb4_0900_ai_ci'问题
解决:把文件中的所有的utf8mb4_0900_ai_ci替换为utf8_general_ci以及utf8mb4替换为utf8

其他异常情况如下
 1.1、注意:运行 python manage.py celery -A TestPlatform worker --loglevel=info 可能报错,进入python根目录,lib-site packages-djcelery-management-commands-celery.py,将options注释掉,重新打开服务

    异步执行用例时有时在win7下,这个服务报错'Token' object has no 属性 ‘test’(这个问题win10不会出现,原因待查找)

   解决方案:

       方案一,升级python版本(如3.6.0 至3.6.5   --python-3.6.5-amd64.exe),有时高版降版本可解决

       方案一,如果最新版本的 Jinja2==3.0.1。只需降级到 3.0.0 版即可解决此特定问题

       参考链接:https://stackoverflow.com/questions/67653286/flask-webapp-token-object-has-no-attribute-test-render-template-error

                         https://stackoverflow.com/questions/67659135/flask-token-object-has-no-attribute-test-render-template-error

1.2、运行python manage.py celery beat --loglevel=info时,可能出现这样的错误:

解决步骤:删除如下文件再执行


2、后台管理界面,点击任务监控,提示不能访问!解决方法:在代码区右键项目TestPlatform,find in path,搜索192.168.91.45.所有文件都改为127.0.0.1


3、邮箱收不到邮件(可百度设置步骤)(相关文件安装包或设置步骤见百度网盘链接:)
4、安装requirements.txt 报错“Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt解决方法:
pip freeze > requirements.txt
pip install -r requirement.txt(填绝对路径)

豆瓣源下载地址:
pip install -i https://pypi.doubanio.com/simple/ -r requirements.txt
单独使用豆瓣源安装第三方模块:pip install pycryptodome -i https://pypi.doubanio.com/simple/

5、首页或其他样式,直接根据报错信息下载对应的CSS或JS 文件包至本地
6、报错/api/run_batch_test/ 超出索引问题原因:服务重启导致部分表或用例数据丢失,需重新添加用例相关数据方可正常,后续优化此bug(测试用例名称必须用test开头)


到这里部署已完成,可以进行访问(上面四个服务不能关闭)
1、查看任务列表和状态http://localhost:5555/dashboard


2、注册登录用户页面:http://127.0.0.1:8000/api/login/ 

3、Admin后台:http://127.0.0.1:8000/admin/(运维平台管理数据)

 

4、rabbitMQ界面



原文地址:https://www.cnblogs.com/mys6/p/14668276.html