reportportal 整合 robotframework 自動化執行及結果視覺化

2022-10-21 18:01:57

前言:

最近領導想了個需求,想把目前組內在linux平臺上執行的自動化指令碼搞成視覺化,如果是web站點相關紀錄檔視覺化倒是簡單了,ELK就是不錯的選擇,大部分視覺化專案這種的,可以做的開起來很炫。

我們這邊是自己寫的指令碼,測試網路卡的自動化,紀錄檔的格式並不是那麼符合web紀錄檔的格式。

選擇方案:

Reportportal 視覺化專案地址:

reportportal/reportportal: Main Repository. Report Portal starts here - see readme below. (github.com)

比較符合我的想法,重點在於視覺化執行過程,視覺化結果分析,靈活自定義圖表。

過程:

1. 把linux執行的命令通過robotframework的sshlibrary執行,相當於對之前人寫的指令碼加了個殼子,把紀錄檔格式標準化成robotframework的形式。

1.1我把robotframework安裝在windows 10上的,python 3.8

具體過程我就不寫了,網上很多,這裡提供一篇文章供參考:

Robot Framework 使用【1】-- 基於Python3.7 + RIDE 最新版本搭建 - 藍寅 - 部落格園 (cnblogs.com)

部分lib版本參考:(都比較新)

D:\>pip list
Package Version
--------------------------- ---------
paramiko 2.11.0
pip 21.1.1
Pypubsub 4.0.3
pywin32 304
reportportal-client 5.2.6
robotframework 3.2.1
robotframework-datadriver 1.6.1
robotframework-reportportal 5.3.1
robotframework-ride 2.0b2
robotframework-sshlibrary 3.8.0
wxPython 4.0.7

2. 第一步中可以看到 有reportportal-client 和 robotframework-reportportal先關的lib,對的,這是後面整合reportportal安裝的

    2.1部署reportprotal web站點,推薦部落格:ReportPortal 在python下的應用介紹之----ReportPortal部署 - Believer007 - 部落格園 (cnblogs.com)

推薦部署方式docker,因為需要裝的軟體太多了,採用docker的方式部署建議磁碟100G以上空間,不然部分docker起不來,web網站功能也不全。

安裝方式在上面的部落格里面寫的很詳細了,如下:

3. .安裝Docker

  管理員登入centos,輸入以下命令

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-nightly

安裝docker

yum install docker-ce docker-ce-cli containerd.io

啟動docker

systemctl start docker

 替換源

新建檔案 /etc/docker/daemon.json

{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}

重啟docker

systemctl daemon-reload
systemctl restart docker.service

4.安裝docker compose

下載檔案

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

變更許可權

chmod +x /usr/local/bin/docker-compose

檢視是否安裝成功

docker-compose --version

5. 下載reportportal的yml檔案

根據管網在這下,但是由於國外牆的原因下不了(有國內源可以找找)

curl -LO https://raw.githubusercontent.com/reportportal/reportportal/master/docker-compose.yml

6.設定elasticSearch設定

1
2
3
mkdir -p data/elasticsearch
chmod 777 data/elasticsearch
chgrp 1000 data/elasticsearch

7.安裝

docker-compose -p reportportal up -d --force-recreate

裝的過程比較坎坷,可能會由於網路原因找不到。

8.驗證(版本算是比較新的)

登入地址

http://虛擬機器器IP:8080

預設有登入使用者名稱和密碼:

Default User: default\1q2w3e
Administrator: superadmin\erebus

9. 與 robotframework 整合

reportportal 官方提供了原始碼和 操作方法:reportportal/agent-Python-RobotFramework (github.com)

我再詳細說一下吧:

在robotframework所在的 window10 平臺上安裝 robotframework 的第三方lib;

pip install robotframework
pip install robotframework-reportportal

 當然還需要安裝reportportal 的client,用來傳 RF的紀錄檔到reportportal

reportportal/client-Python: A common client library for Python-based agents (github.com)

pip install reportportal-client

到此完成所有的安裝

10. robotframework 聯動 reportportal

在 RF run介面的 Arguments裡面新增reportportal的listener

例如:

--listener robotframework_reportportal.listener
--variable RP_UUID:"your_user_uuid"
--variable RP_ENDPOINT:"your_reportportal_url"
--variable RP_LAUNCH:"launch_name"
--variable RP_PROJECT:"reportportal_project_name"

解釋上上面的東西:

登入 reportportal網站後,點選進入 USER PROFILE,參考這裡填寫,一般可以直接複製黏貼

11. 到這裡就完成設定了,執行一下用例吧:

就可以在Launches 的介面看到執行的 測試專案了,可以實時看到執行狀態,執行結果

12. 紀錄檔結果分析,bug標記,jira整合

進入失敗的紀錄檔,可以看到紀錄檔的具體資訊,對問題進行記錄

最終可以在dashborad介面自定義建立圖表,展示本次測試結果統計:

 

總結:

該專案可以和很多測試框架整合,且整合簡單,使用方便,如果有需要對測試報告進行二次加工的小夥伴可以該方案。reportportal開源社群比較活躍,真遇到bug很快有人幫助解決。