最近在github上看到AutoMagic自動化平台開源了,一時手癢,就試着搭了一套環境,現在把思路和大家說一說。
AutoMagic從其工作分工分兩部分:
1:Web端管理平台
管理平台基於Python Django框架+Mysql開發,主要用來管理自動化測試用例和設計自動化測試場景、存放界面元素標識,通過界面錄入存放在數據庫中進行管理,它是一個純粹基於Selenium關鍵字自動化原件管理平台。
2:客戶端執行腳本(seleniumkeyword)
AutoMagic的執行效果展示主要靠它來體現,它的執行依附於web平台存儲的用例和場景數據,seleniumkeyword可以不需要部署在服務器端,只要它能夠連接到服務器端的數據庫,部署在任何平台都可以執行。(方便分布式執行測試用例)
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的一些方法,其它部分均為自定義關鍵字。
龍淵閣測試開發家園: 317765580
AddCase.py 同步用例到TestRail到腳本,並連接平台端的mysql數據庫
-t [taskid] 指定執行同步的AutoMagic任務
-u [userid] 指定執行腳本的用戶
-s [sctionid] 執行同步case到TestRail的那個用例集(section_id代表所在用例集)
HTMLTestRunner.py 生成報告的腳本文件
RestApiUtil.py、RestApiUtil.py 是發包MW模擬安全事件和發送pcap發包接口
testrail.py TestRail的接口API
result目錄為報告接口目錄
data目錄執行上傳附件關鍵字時,附件存放目錄
目錄結構:
生成測試報告效果:
二:部署方案
方案一 傳統部署
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文件夾下
在主目錄下執行 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
修改數據庫配置文件
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
方案二 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
Docker exec –it d39c6648ebb0 bash 進入容器內部
5:進入automagic目錄下啟動自動化平台
Cd /usr/python/automagic-dev
Python manage.py runserver 0.0.0.0:8080 啟動服務
出現端口正在使用,表示服務已經伴隨容器自啟動了,直接去平台用虛擬機ip訪問即可
執行 ctrl+p+q ,退出但不停止容器
查看虛擬機ipifconfig
6:頁面執行 localhost:8080啟動服務。
7:注意事項
我的docker容器下已經部署了mysql服務並配置了跟隨容器自啟動,無需重啟mysql。
三:平台基本使用
1:創建產品
2:點擊產品名稱,創建項目
3:點擊項目名稱創建模塊
4:點擊用戶管理下的關聯產品,將產品與用戶掛鈎
5:功能測試下添加關鍵詞
關鍵詞來源在seleniumkeyword下,也可以重定義。
6:添加用例,填寫關鍵詞,定位元素或者輸入文本
7:填寫定位方式和定位標識
8:創建任務,勾選用例
9:seleniumkeyword目錄下執行腳本命令 ,注意任務編號
python TestSuite.py -t 2 -u zhufc -b chrome 意思是在谷歌瀏覽器下執行任務編號2
10:查看運行結果
11:在用例下查看詳情可以看到詳細的運行過程和debug日志
12:在result目錄下可以查看詳細的運行報告和日志文件
注:部署過程中會涉及到一些第三方包和異常的處理,如果有需要幫助的請聯系我!
獲取更詳細資料,加入我們吧!QQ群:317765580