github上看到AutoMagic自動化平臺開源了,一時手癢,就試著搭了一套環境,現在把思路和大家說一說。
AutoMagic從其工作分工分兩部分:
管理平臺基于Python Django框架+Mysql開發,主要用來管理自動化測試用例和設計自動化測試場景、存放界面元素標識,通過界面錄入存放在數據庫中進行管理,它是一個純粹基于Selenium關鍵字自動化原件管理平臺。
?
AutoMagic的執行效果展示主要靠它來體現,它的執行依附于web平臺存儲的用例和場景數據,seleniumkeyword可以不需要部署在服務器端,只要它能夠連接到服務器端的數據庫,部署在任何平臺都可以執行。(方便分布式執行測試用例)
?
服務端:基于python,mysql-python,django環境下運行
客戶端:基于python、selenium、 mysqldb 環境下運行,其它依賴包和插件根據說明文檔要求進行安裝。
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的一些方法,其它部分均為自定義關鍵字。
?
?
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目錄執行上傳附件關鍵字時,附件存放目錄
目錄結構:
生成測試報告效果:
我是ubuntu環境,如果是centos環境,命令需要稍微調整、apt-get命令改成yum
apt-get install mysql-server
apt-get install mysql-client
? sudo apt-get install libmysqlclient-dev
netstat -tap | grep mysql檢查是否安裝成功
mysql –uroot –pXXX 執行登錄
在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執行安裝
???????? 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 依賴包
???????? pip install selenium 依賴包
???????? pip install requests 依賴包
???????? pip install paramiko==2.1.2? 依賴包
???????? pip install scapy==2.3.3? 依賴包
如果在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
?
???????? Cd /usr/python/automagic-dev/automated
?Vi setting.py
???????? 修改數據庫配置文件
Ps:這里的NAME是庫名,需要在數據庫中真實存在
???????? /usr/local/mysql/bin/mysql -uroot -pXXXXX
???????? grant all privileges? on *.* to root@'%' identified by "XXXXX";
???????? FLUSH PRIVILEGES;
???????? cd automagic-dev
???????? python manage.py makemigrations
?python manage.py migrate
???????? python manage.py createsuperuser
按照提示進行輸入要創建的用戶名、郵箱、密碼(8位以上,字母、字符、數字的組合)
python manage.py runserver 0.0.0.0:8080
虛擬機執行:本機host:8080 訪問平臺
?
?
Automagic平臺我已經進行了容器化,因此只需要在本地安裝docker工具,即可下載鏡像部署
sudo apt-get update
sudo apt-get install docker
registry.cn-hangzhou.aliyuncs.com/zhufc/automagic:django-automagic
docker run -d --name automagic -p 4406:3306 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/zhufc/automagic:django-automagic
3306數據庫端口映射到4406;8080容器端口映射到虛擬機8080上,讓外部訪問
Docker ps –a 查看容器id
Docker exec –it d39c6648ebb0 bash 進入容器內部
Cd /usr/python/automagic-dev
Python manage.py runserver 0.0.0.0:8080 啟動服務
?
出現端口正在使用,表示服務已經伴隨容器自啟動了,直接去平臺用虛擬機ip訪問即可
執行 ctrl+p+q ,退出但不停止容器
查看虛擬機ipifconfig
我的docker容器下已經部署了mysql服務并配置了跟隨容器自啟動,無需重啟mysql。
關鍵詞來源在seleniumkeyword下,也可以重定義。
?
python TestSuite.py -t 2 -u zhufc -b chrome? 意思是在谷歌瀏覽器下執行任務編號2
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。