添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
老实的钥匙扣  ·  exec | Microsoft Learn·  1 年前    · 
年轻有为的楼房  ·  TypeScript 的 Utility ...·  1 年前    · 

buildbot自动化测试工具

搭建一个完全自动化的buildbot服务器相对来说比较麻烦,所以打算开几条博客来具体说明,我以git作为本次搭建测试自动化测试的例子,
由于本次自动化测试服务器需要一台buildmaster主机、两台buildslave(linux和windows)主机,所以本次搭建需要三台虚拟机

最近公司的项目中的测试用例越来越多,并且项目必须要在linux和Windows下运行,每次提交patch后,我们只测试提交patch的部分,而没有对其他测试用例进行测试,为了防止由于提交patch而影响了其他功能,打算找一个自动化测试工具,在每次提交patch之后能够对所有的功能和测试用例进行测试,于是在网上收集了一些资料之后决定使用buildbot作为公司的自动化测试工具。

一、BuildBot简介

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

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

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

  • 跨平台:可以运行在各种平台上,实现不同平台上的测试
  • 可以处理各种语言编写的程序,例如C,Java,Python
  • 环境要求低并且配置简单:仅仅需要Python,和网络库Twisted
  • 结果的交付方式多,例如Email,webpage,IRC或者其他协议工具
  • 通过子类继承并重写父类从而灵活的配置
  • 很好的实现了分布式部署和集成工作

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

二. buildbot工作原理

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 等各种请求信息。
image
每一次的项目构建都可以产生一个status对象,可以通过 MailNotifier 每一次构建都建立一个邮件列表。

3.1 环境搭建

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

建议安装pip,由于buildbot版本更新以及python的更新,一些依赖可能并没有在官方文档里面显示出来,使用pip能使我们的安装更便捷一些

3.2 buildmaster环境搭建

环境:VMware Workstation
系统:winXP

  1. 安装Python
    双击.msi,一路next即可。安装完成之后需要在环境变量path中加入Python路径
  2. install Twisted
    安装 (解压进入此目录,下同)
$sudo python setup.py install 
  1. 安装 zope.interface
    安装命令:
$python setup.py build  
$sudo python setup.py install 
  1. 安装 buildbot(依赖Twisted和Python)(本例是在XP下建立master,Ubuntu下建立slave)
    安装
$python setup.py build  
$sudo python setup.py install
 

如果有安装出现Unable to find vcvarsall.bat的问题是没有安装Microsoft Visual C++ Compiler Package for Python 2.7的缘故,安装之后还需要配置环境变量,然后需要修改注册表:

  1. 打开注册表编辑器
  2. 配置
    2.1. 如果你安装的Python是32位的,则,创建如下项:
    HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Setup\VC
    2.2. 如果你安装的Python是64位的,则,创建如下项:
    HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Setup\VC
  3. 并在此项下新建字符串值:
  • 名称:productdir。
  • 数据:vcvarsall.bat所在路径。
  • 注意:路径中不包含最后的反斜杠。
  1. 检测buildbot是否安装成功
    终端下执行如下命令:
$buildbot --version 
Buildbot version: 0.9.1
Twisted version: 16.6.0 
  1. 建立buildbot master
    在终端中执行如下命令:
$buildbot create-master buildbot_master 

该命令会在当前目录下生成buildbot_master目录,且该目录下有一个配置文件为master.cfg.sample

1). 在启动之前,可以测试下配置文件。
终端下执行如下命令:

$cd buildbot_master              
$mv master.cfg.sample master.cfg 
$buildbot checkconfig master.cfg 

正确则:Config file is good!

2).启动、停止

$cd buildbot_master
$buildbot start ./  
$buildbot stop ./  
 

  到这里,buildmaster比较麻烦的时候就来了,在这一章节我不详细介绍master.cfg里面的各种配置,而是让大家能够让我们的master服务器正常跑起来————在浏览器中可以访问我们的buildbot。

  1. 运行buildmaster
      buildbot是在web页面对我们的项目测试以及代码监控进行显示,对于一个局域网下,只要我们能够连接到这台虚拟机,我们就可以通过web页面的形式来随时了解我们的slave的连接以及代码的变化和以往的测试情况。
    首先我们先要知道我们master主机的IP地址,在终端下执行如下命令:
$ipconfig
Ethernet adapter 本地连接:
        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 192.168.1.2
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.1.1

之后打开我们的master.cfg文件,找到c[‘buildbotURL’]c[‘www’] 这两个属性,修改他们的URL(本地主机的IP地址)和端口号。如下图:
image
保存我们的master.cfg文件,然后用启动命令启动我们的buildbot。
  在上一节我们启动了buildmaster,细心的同学会发现在我们的buildmaster文件夹目录下多出来了一个twistd.log日志文件,由于buildbot所依赖的插件比较多,第一次运行不见得能成功。所以我们需要去twistd.log文件查看我们的buildbot是否启动成功,如果不成功会在.log中找到我们的出错信息。
image
  从这些错误信息中我们可以得到我们想要的信息,这个说明我们的buildbot缺少waterfall_view这个插件,我们可以去
buildbot官网上去下载安装,安装步骤如buildbot安装步骤。
  如果我们下载成功,我们可以再任意一台可以ping通这台虚拟机的的电脑的浏览中输入我们在配置文件夹里面添加的url和端口号,就可以访问的我们的buildbot。
image
  这样我们就吧我们的buildbot搭建成功了,在下一节,我会详细介绍一下master.cfg配置,和buildslave的配置,搭建一个完整的buildbot服务器,对我们的代码进行监控、测试。

buildbot自动化测试工具(一)  搭建一个完全自动化的buildbot服务器相对来说比较麻烦,所以打算开几条博客来具体说明,我以git作为本次搭建测试自动化测试的例子,   由于本次自动化测试服务器需要一台buildmaster主机、两台buildslave(linux和windows)主机,所以本次搭建需要三台虚拟机  最近公司的项目中的测试用例越来越多,并且项目必须要在linux和Win splinter - web UI测试工具,基于selnium封装。 selenium - web UI自动化测试。 mechanize- Python中有状态的程序化Web浏览链接 selene - 使用Python + Ajax支持+ PageObjects + Widgets进行简明UI测试 hitch - 基于服务的应用程序的高级集成测试框架。 Needle - C... yum install -y gcc python-devel python-pip pip install --upgrade pip pip install twisted==14.0.1 pip install bui...
探索高效构建之道:深入了解[BuildMaster] —— 精准高效的Java项目构建工具 项目地址:https://gitcode.com/Maschell/JNUSTool 在软件开发的浩瀚宇宙中,自动化构建工具犹如星辰中的灯塔,为开发者指引方向。今天,我们要探讨的是一个名为BuildMaster的开源项目,它专为简化和加速Java项目的构建流程而生。借助于Maven的强大基础,Bu...
官方参考文档是: http://trac.buildbot.net/wiki/RunningBuildbotOnWindows 主要是这么一些依赖。1,2,4,5 都好说,奇葩的是安装完twisted的版本,import twisted死活找不到,而且在python的安装目录下site_package里面也没有。 可能的原因: 1,版本和zope以 一 buildbot安装 1. install TwistedTwisted 依赖 zope.interface and Pythonwget -c http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2python setup.py install --prefix=$HOME install zo...
Buildbot安装步骤: Buildbotmanual 0.8.2 : http://buildbot.net/buildbot/docs/current/index.html BuildBot是一个自动构建工具。每当代码有改变,服务器要求不同平台上的客户端立即进行代码构建和测试,收集并报告不同平台的构建和测试结果。BuildBot用python写的,该python程序只依赖python
2、Linux 基础知识、基本命令、获得使用帮助及文件系统组织结构等; 3、Linux 用户、组及权限的基础及相关高级话题,详细讲解 useradd/userdel/chmod/chown/usermod/chage/umask 等相关命令; 4、Bash 基础及配置、标...
Win7下安装        win7下安装可以参照官网:http://trac.buildbot.net/wiki/RunningBuildbotOnWindows。官网上也有相关所有软件的下载链接,可以根据需求下载。          安装前,需要安装以下软件:Python2.x、pywin32、Twisted、zope.interface、setuptools         安装过程
master: 1. python -m venv sandbox(我使用的是python3.67,试过python2.7,系统推荐用python3于是乎就转python3,python3.6自带虚拟环境) 2.cd到sandbox下的Scripts目录先,activate虚拟环境 3.pip install buildbot 在终端中执行如下命令: buildbot create-master buildbot_master 该命令会在当前目录下生成buildbot_master目录,且该目录下有一个配置文件为master.cfg.sample 1). 在启动之前,可以测试下配置文件。 终端下执行如下命令: cd buildbot_master