vieyahn2017 / repos

【已经迁移到goto/javaway】
2 stars 1 forks source link

buildbot自动化测试工具(基于twisted) #8

Closed vieyahn2017 closed 5 years ago

vieyahn2017 commented 6 years ago

buildbot自动化测试工具 https://blog.csdn.net/LSMEGR/article/details/53618045

vieyahn2017 commented 6 years ago

https://github.com/buildbot/buildbot

vieyahn2017 commented 6 years ago

BuildBot是一个开源的基于python的持续集成系统,它能够以下三种方式触发相应的自动构建和测试运行,从而迅速的发现问题所在,同时指出造成这个错误的开发人员,当然我们还可以通过页面直观的了解到当前所有和master绑定的任务以及各种测试状态。

  1. 监控代码管理库的变化从而触发构建测试任务
  2. 通过配置从而定时触发构建测试任务
  3. 通过配置从而允许强制触发构建测试任务

因为它有很多比较好的特点:

  BuildBot用python写的,该python程序只依赖python环境和Twisted(一个python网络框架),可以在很多平台运行。 自动化构建一般包括自动下载源码,编译,测试,打包。

vieyahn2017 commented 6 years ago

2.1系统架构

Buildbot包含一个服务端,一个或多个客户端。以星形拓扑结构连接。需要配合GIT,SVN,CVS等相关版本工具使用。master可以给任意一个slave发送命令,slave执行master发送的命令并返回执行的结果。

来回发送大量命令是不太合适的,可以在slave中写出一个总的执行脚本,而master发送的命令只是启动这个脚本。 Buildbot的原理是git,SVN等源码服务器上代码发生变化后,buildmaster(服务端)通知连接到它上的buildslave(客户端)从git或SVN服务器上自动下载源码,编译,测试,打包。最后把各个buildslave的自动化构建的结果搜集起来在web上展现,或通过email,IRC等方式通知相应的项目开发人员。

2.2测试状态结构体系

master有一个总的status对象负责监控所有连接到自己的slave的连接状态对象,通过这个连接对象获得完整构建的状态及层次结构。   在master.cfg配置文件中,控制各个status对象,获得每个slave的连接状态,以前的构建信息等,通过浏览器创建一个url调用html.Waterfall插件的query-on-demand接口可以获得Builder, Build, Step, and LogFile等各种请求信息。 每一次的项目构建都可以产生一个status对象,可以通过MailNotifier每一次构建都建立一个邮件列表。

vieyahn2017 commented 6 years ago

Buildbot所需要的Python依赖环境比较多,而且版本依赖比较严重,0.8.x和0.9.x中很多类的使用以及命名有很大区别本教程的master是以0.9.0b7这个版本来搭建的。 要求:

vieyahn2017 commented 6 years ago

https://github.com/crossbario/autobahn-python

WebSocket and WAMP in Python for Twisted and asyncio http://crossbar.io/autobahn

Autobahn|Python is a subproject of Autobahn and provides open-source implementations of: The WebSocket Protocol The Web Application Messaging Protocol (WAMP) for Python 2 and 3, and running on Twisted and asyncio.