linux 控制台异步输入,Linux下搭建实现HttpRunnerManager的异步执行、定时任务及任务监控...

前言

在之前搭建的HttpRunnerManager接口测试平台,我们还有一些功能没有实现,比如异步执行、定时任务、任务监控等,要完成异步执行,需要搭建 RabbitMQ 等环境,今天我们就来实现这些功能。

需要在Linux上提前准备的环境(下面是本人搭建时的环境):

1,HttpRunnerManager(可参考文章:Linux下搭建HttpRunnerManager接口测试平台)

2,RabbitMQ 3.7.6 (可参考文章:Linux下安装RabbitMQ)

用例执行方式

HttpRunnerManager中,模块和项目的用例执行时可选择为同步或者异步方式,在没搭建RabbitMQ环境时,我们只能通过同步的方式来执行,执行完之后立即返回报告。

76d28474d721305f606688649ae17160.png

如果选择异步的方式,就是在后台执行,在异步执行完毕后,我们可以去查看或下载测试报告。但如果没有搭建RabbitMQ环境,那么异步执行会报错,并得不到测试报告。

adede17a6f580f04d08cc78ddcc3552b.png

启动RabbitMQ服务

首先,要实现异步执行,我们需要启动RabbitMQ服务,并确保能够正常访问其Web控制台管理界面,如下:

1edb13395c99c04912a3ee143534cdc0.png

修改 settings.py 配置

我们需要简单修改一下 settings.py 配置文件,需要修改的地方如下(大约在settings.py中第155行左右):

3f58eca16d786e23ca70cb8f07e7c8cc.png

可以通过 vim 命令进行修改,修改之后如下(根据自己实际情况修改):

c9ec68b588f83ec71df434437a5995cc.png

说明:

admin:123456 是 RabbitMQ 中的用户名和密码

192.168.89.128 是 rabbitmq-server 所在服务器ip地址

5672 是RabbitMQ启动时的默认端口,注意不是 15672 端口,15672是Web控制台管理界面的访问端口。

启动worker

在 HttpRunnerManager 的根目录( manage.py 所在的路径),通过以下命令启动worker:

python3 manage.py celery -A HttpRunnerManager worker --loglevel=info

也可以通过后台执行的方式启动 worker:

nohup python3 manage.py celery -A HttpRunnerManager worker --loglevel=info >worker.log 2>&1 &

如果是在后台运行 worker 的日志,将输出到 worker.log 下。

tornado报错

我在启动 worker 时,遇到了如下问题:

0f5e4b8a2a64cfb24d51e158527e94a4.png

在网上查了下,发现是因为 tornado 版本太高了,tornado6之后版本就弃用了 tornado.web.asynchronous 这种写法,查看当前 tornado 的版本,命令如下:

pip3 show tornado

a5dc0a29b9747fe0ef11933f864c5303.png

查看后发现 tornado 版本为 6.0.3 ,于是尝试网上说的将 tornado 降级回到 5.1.1 版本,命令如下:

卸载已安装的tornado版本:pip3 uninstall tornado

安装指定的tornado版本:pip3 install tornado==5.1.1

[root@bogon HttpRunnerManager-master]# pip3 uninstall tornado

Uninstalling tornado-6.0.3:

Would remove:

/root/python36/lib/python3.6/site-packages/tornado-6.0.3-py3.6.egg-info

/root/python36/lib/python3.6/site-packages/tornado/*

Proceed (y/n)? y

Successfully uninstalled tornado-6.0.3

[root@bogon HttpRunnerManager-master]# pip3 install tornado==5.1.1

Collecting tornado==5.1.1

Downloading https://files.pythonhosted.org/packages/e6/78/6e7b5af12c12bdf38ca9bfe863fcaf53dc10430a312d0324e76c1e5ca426/tornado-5.1.1.tar.gz (516kB)

100% |████████████████████████████████| 522kB 874kB/s

Installing collected packages: tornado

Running setup.py install for tornado ... done

Successfully installed tornado-5.1.1

接着,再次启动 worker,可以发现没有报错了,启动成功!

启动定时任务监听器

在 HttpRunnerManager 的根目录( manage.py 所在的路径),通过以下命令启动定时任务celery:

python3 manage.py celery beat --loglevel=info

也可以通过后台执行的方式启动 celery:

nohup python3 manage.py celery beat --loglevel=info >celery.log 2>&1 &

启动成功时,显示如下内容:

[root@bogon HttpRunnerManager-master]# python3 manage.py celery beat --loglevel=info

celery beat v3.1.26.post2 (Cipater) is starting.

__ - ... __ - _

Configuration ->

. broker -> amqp://admin:**@192.168.89.128:5672//

. loader -> celery.loaders.app.AppLoader

. scheduler -> djcelery.schedulers.DatabaseScheduler

. logfile -> [stderr]@%INFO

. maxinterval -> now (0s)

启动任务监控后台

要完成任务监控,需要启动 flower,这个我们在最开始搭建环境时已经安装,是在 requirements.txt 中,如果没有安装的话可以通过 pip3 进行安装。

3e296467dc7812a763d66b1a0b59bd33.png

接下来启动 flower 环境,直接执行命令:flower。

也可以通过后台执行的方式启动 flower:

nohup flower >flower.log 2>&1 &

如果出现报错:bash: flower: command not found,提示找不到相关命令,那么就需要先设置软链接。首先,查找到 flower 的路径,然后将该路径添加到 /usr/bin/ 下即可,最后执行命令:flower,启动flower时默认的端口是 5555。

[root@bogon HttpRunnerManager-master]# flower

bash: flower: command not found

[root@bogon HttpRunnerManager-master]# find / -name flower

/root/python36/bin/flower

/root/python36/lib/python3.6/site-packages/flower

[root@bogon HttpRunnerManager-master]# ln -s /root/python36/bin/flower /usr/bin/flower

[root@bogon HttpRunnerManager-master]# flower

[I 191229 17:29:58 command:139] Visit me at http://localhost:5555

[I 191229 17:29:58 command:144] Broker: amqp://guest:**@localhost:5672//

[I 191229 17:29:58 command:147] Registered tasks:

['celery.backend_cleanup',

'celery.chain',

'celery.chord',

'celery.chord_unlock',

'celery.chunks',

'celery.group',

'celery.map',

'celery.starmap']

最后,检查一下 5555 端口是否已开放,在Windows的浏览器下输入地址访问flower管理界面:http://ip地址:5555/

acd507dfbfd0a66dd6821300cf34aa89.png

异步执行

到这里,我们在模块和项目执行用例时,选择异步执行方式,便不会报错了。

79544b04bace03168dedf922c2bee2c7.png

当异步执行完毕后,可以在报告管理中查看报告。

1be2a05457e98ff0097aad92b8bde1c0.png

定时任务

设置定时任务是在测试计划的菜单栏之下。

b8713b8bffc01eab3d1f01a4c3b05731.png

新增定时任务,相关的 定时任务crontab语法 ,这里不多介绍,大家可以去网上查找学习。

dd405c581551aa35f9faae6fe39d9f79.png

f4080483a699652ea439b0db49fd5c8e.png

按上面设置定时任务之后,每5分钟用例会执行一次,然后可以去报告管理界面查看相关报告。

6fc777ecffb065fcc52ab42357bc53ef.png

任务监控

系统设置下的任务监控,其实就是之前的 flower 监控环境。但界面上对应的链接地址可能不对,我们需要简单修改一下。

b5c138e6e218acd35237617fb7edee54.png

需要修改的文件是 templates/base.html ,具体如下(大约在base.html第134行左右,根据自己实际情况修改):

842d7488e383fc888bd733aa7b274faa.png

修改好任务监控的链接地址之后,再次刷新页面,对应的链接地址就会更新了,我们点击任务监控菜单,就可以进入到flower任务监控后台界面。

ad09fba9a7d2756ce8328e266bc1c304.png

OK,到这里,我们部署的HttpRunnerManager接口测试平台已完成,已成功搭建完成了异步执行、定时任务及任务监控的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值