AutoMagic-開源自動化平臺的容器化構建

github上看到AutoMagic自動化平臺開源了,一時手癢,就試着搭了一套環境,現在把思路和大家說一說。

AutoMagic從其工作分工分兩部分:

 1Web端管理平臺

管理平臺基於Python Django框架+Mysql開發,主要用來管理自動化測試用例和設計自動化測試場景、存放界面元素標識,通過界面錄入存放在數據庫中進行管理,它是一個純粹基於Selenium關鍵字自動化原件管理平臺。

image.png

 

2:客戶端執行腳本(seleniumkeyword)

AutoMagic的執行效果展示主要靠它來體現,它的執行依附於web平臺存儲的用例和場景數據,seleniumkeyword可以不需要部署在服務器端,只要它能夠連接到服務器端的數據庫,部署在任何平臺都可以執行。(方便分佈式執行測試用例)

image.png

 

2.1:客戶端安裝運行環境

服務端:基於python,mysql-python,django環境下運行

客戶端:基於python、selenium、 mysqldb 環境下運行,其它依賴包和插件根據說明文檔要求進行安裝。

2.2:客戶端目錄腳本說明

TestSuite.py 測試用例執行腳本引擎是,它可以通過參數實現不同的執行方式

-t [taskid] 指定執行的AutoMagic任務

-u [userid] 指定執行腳本的用戶

-r [runid] 執行測試用例腳本要同步的TestRailRunid,它只有在執行 -t 參數時纔會生效。

-c [caseid] 指定要執行的單個用例的編號

-p [projectid] 指定要執行的項目id,會依次執行項目中所有模塊和用例狀態是啓用的所有用例

-b [browser] 指定執行用例過程所使用瀏覽器,默認使用chrome瀏覽器,也可在執行case過程中通過openbrowser關鍵字重置

示例:

python TestSuite.py -t 1 -u tsbc  -b chrome

zhufc用戶在谷歌瀏覽器下啓動id爲1的測試任務

Base.py 是我們關鍵字維護腳本,class Action中重定義了python selenium的一些方法,其它部分均爲自定義關鍵字。

image.png

 

image.png

 

AddCase.py 同步用例到TestRail到腳本,並連接平臺端的mysql數據庫

-t [taskid] 指定執行同步的AutoMagic任務

-u [userid] 指定執行腳本的用戶

-s [sctionid] 執行同步case到TestRail的那個用例集(section_id代表所在用例集)

image.png

 

HTMLTestRunner.py 生成報告的腳本文件

RestApiUtil.pyRestApiUtil.py 是發包MW模擬安全事件和發送pcap發包接口

testrail.py TestRail的接口API

result目錄爲報告接口目錄

data目錄執行上傳附件關鍵字時,附件存放目錄

目錄結構:

image.png

生成測試報告效果:

image.png


二:部署方案

方案一 傳統部署

1:服務器端部署

我是ubuntu環境,如果是centos環境,命令需要稍微調整、apt-get命令改成yum

1.1:安裝mysql服務

  apt-get install mysql-server

  apt-get install mysql-client

   sudo apt-get install libmysqlclient-dev

  netstat -tap | grep mysql檢查是否安裝成功

  mysql –uroot –pXXX 執行登錄

1.1:生成基礎安裝包

在usr目錄下新建python文件夾 :

  cd /usr

  mkdir python

  apt-get update

  apt-get install lrzsz

執行rz命令,將本地壓縮包拖到python文件夾下

image.png

在主目錄下執行 python setup.py sdist 生成安裝包

  cd dist

  pip install automagic-0.1.tar.gz執行安裝

1.2:安裝 django 依賴包 

         apt-get install python-dev  python基礎依賴包

         apt-get install python-pip  安裝pip

         pip install -U setuptools 升級setuptools

         pip install django==1.11.1 安裝基礎diango

         pip install MySQL-Python==1.2.3  安裝mysql-python

    pip install django-users2==0.2.1 依賴包

         pip install django-cors-headers==2.0.2 依賴包

         pip install djangorestframework==3.6.3 依賴包

         pip install python-jenkins==0.4.14 依賴包

1.3:安裝seleniumkeyword依賴包

         pip install selenium 依賴包

         pip install requests 依賴包

         pip install paramiko==2.1.2  依賴包

         pip install scapy==2.3.3  依賴包

1.4:異常處理

如果在apt-get install過程中出現404,那麼執行apt-get update進行源升級

 

如果進程中出現E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?那麼查看apt-get 進程,全部殺掉

  ps -A | grep apt

  sudo kill -9 XXX

進程中報mysql—config和libmysqlclient.so.18無法定位到,那麼配置軟鏈接

ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config 

ln-s/usr/local/mysql/lib/libmysqlclient.so.18/usr/lib/libmysqlclient.so.18

 

1:5:配置mysql連接

         Cd /usr/python/automagic-dev/automated

    Vi setting.py

         修改數據庫配置文件

image.png

Ps:這裏的NAME是庫名,需要在數據庫中真實存在

1.6:mysql用戶組ip分配

         /usr/local/mysql/bin/mysql -uroot -pXXXXX

         grant all privileges  on *.* to root@'%' identified by "XXXXX";

         FLUSH PRIVILEGES;

1.7:數據庫初始化

         cd automagic-dev

         python manage.py makemigrations

    python manage.py migrate

1.8:創建管理員

         python manage.py createsuperuser

  按照提示進行輸入要創建的用戶名、郵箱、密碼(8位以上,字母、字符、數字的組合)

1.9:啓動服務

  python manage.py runserver 0.0.0.0:8080

  虛擬機執行:本機host:8080 訪問平臺

2:pc端部署

       2.1:安裝python2.7
       2.2:安裝setuptooles
       2.3:pip install selenium
       2.4:pip install  MySQL_python‑1.2.5‑cp27‑none‑win_amd64.whl
  2.5:pip install mysql-python
  2.6:配置mysqldb

image.png

 

image.png

 

方案二 docker環境部署

Automagic平臺我已經進行了容器化,因此只需要在本地安裝docker工具,即可下載鏡像部署

1:服務器下安裝docker

  sudo apt-get update

  sudo apt-get install docker

2:下載鏡像(鏡像暫未公開,需要的加羣獲取)

  registry.cn-hangzhou.aliyuncs.com/zhufc/automagic:django-automagic

3:基於鏡像構建容器

  docker run -d --name automagic -p 4406:3306 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/zhufc/automagic:django-automagic

  3306數據庫端口映射到4406;8080容器端口映射到虛擬機8080上,讓外部訪問

4:進入容器

  Docker ps –a 查看容器id

image.png

  Docker exec –it d39c6648ebb0 bash 進入容器內部

image.png

5:進入automagic目錄下啓動自動化平臺

  Cd /usr/python/automagic-dev

  Python manage.py runserver 0.0.0.0:8080 啓動服務

image.png

 

出現端口正在使用,表示服務已經伴隨容器自啓動了,直接去平臺用虛擬機ip訪問即可

執行 ctrl+p+q ,退出但不停止容器

查看虛擬機ipifconfig

image.png

6:頁面執行 localhost:8080啓動服務。

7:注意事項

我的docker容器下已經部署了mysql服務並配置了跟隨容器自啓動,無需重啓mysql。

三:平臺基本使用

1:創建產品

image.png

2:點擊產品名稱,創建項目

image.png

3:點擊項目名稱創建模塊

image.png

4:點擊用戶管理下的關聯產品,將產品與用戶掛鉤

image.pngimage.png


5:功能測試下添加關鍵詞

image.png

關鍵詞來源在seleniumkeyword下,也可以重定義。

 image.png

6:添加用例,填寫關鍵詞,定位元素或者輸入文本

image.png

7:填寫定位方式和定位標識

image.png

8:創建任務,勾選用例

image.png

image.png

9:seleniumkeyword目錄下執行腳本命令 ,注意任務編號

python TestSuite.py -t 2 -u zhufc -b chrome  意思是在谷歌瀏覽器下執行任務編號2

image.png

10:查看運行結果

image.png

11:在用例下查看詳情可以看到詳細的運行過程和debug日誌

image.png

12:在result目錄下可以查看詳細的運行報告和日誌文件

image.png

image.png



image.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章