Robot Framework基礎入門 (1) 簡介
Robot Framework是一個基於Python可擴充套件地關鍵字驅動的測試自動化框架,使用Apache License 2.0,由Robot Framework Foundation開發和贊助。Robot Framework被廣泛地使用在端到端地驗收測試以及ATDD(acceptance-test-driven development )中,生態體系非常豐富,更詳細的資訊可以參看
為甚麼使用Robot Framework
有很多理由使得Robot Framework非常受歡迎,比如:
- 支援簡單易用的表格型語法,使得可以用統一方式建立測試用例
- 提供可以複用既存的關鍵字的功能
- 提供HTML的簡單易讀的報表和日誌結果檔案
- 平臺和應用相互獨立
- 提供簡單的Libary API,可以使用Ptyhon或者java進行實現
- 提供命令列介面也XML格式的輸出檔案,非常容易進行持續整合
- 支援Selenium,Java Gui測試,Telnet,SSH等
- 支援建立資料驅動的測試用例
- 變數的內建支援,尤其是不同測試環境下的測試
- 提供test case和test suite級別的setup和teardown
Robot架構
Robot是一個通用的測試框架,解耦做的很好,雖然很簡單,整體的架構如下所示:
安裝前提
因為Robot是基於Python進行開發的,使用Python2還是Python3是一個需要選擇的問題,python2是在2010年釋出的,目前穩定版本2.7.5,python2會支援到2020年,至於更多的區別,可以參看如下文章以決定你的選擇。
專案 | 詳細資訊 |
---|---|
Python2還是Python3 | https://wiki.python.org/moin/Python2orPython3 |
因為沒有考慮到會用到比較新的python的功能,本文的安裝採用目前穩定的Python2。
[root@liumiaocn ~]# python --versionPython 2.7.5[root@liumiaocn ~]#
- 1
- 2
- 3
安裝PIP
robot的安裝有很多方式,為了避免第一個HelloWorld花費太多時間,果斷採取PIP直接安裝的方式。
[[email protected] ~]# yum install epel-releaseLoaded plugins: fastestmirror...Installed: epel-release.noarch 0:7-9 Complete![[email protected] ~]# [[email protected] ~]# yum -y install python-pipLoaded plugins: fastestmirror...Installed: python2-pip.noarch 0:8.1.2-5.el7 Dependency Installed: python-backports.x86_64 0:1.0-8.el7 python-backports-ssl_match_hostname.noarch 0:3.4.0.2-4.el7 python-setuptools.noarch 0:0.9.8-4.el7 Complete![[email protected] ~]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
確認PIP版本
[root@liumiaocn ~]# pip --versionpip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)[root@liumiaocn ~]#
- 1
- 2
- 3
安裝Robot Framework
[[email protected] ~]# pip install robotframeworkCollecting robotframework Downloading robotframework-3.0.2.tar.gz (440kB) 100% |████████████████████████████████| 450kB 344kB/s Installing collected packages: robotframework Running setup.py install for robotframework ... doneSuccessfully installed robotframework-3.0.2You are using pip version 8.1.2, however version 9.0.1 is available.You should consider upgrading via the 'pip install --upgrade pip' command.[[email protected] ~]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
確認Robot版本
[root@liumiaocn ~]# robot --versionRobot Framework 3.0.2 (Python 2.7.5 on linux2)[root@liumiaocn ~]# [root@liumiaocn ~]# rebot --versionRebot 3.0.2 (Python 2.7.5 on linux2)[root@liumiaocn ~]# [root@liumiaocn ~]# pybot --versionRobot Framework 3.0.2 (Python 2.7.5 on linux2)[root@liumiaocn ~]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
Robot測試指令碼
準備就緒,可以開始建立第一個測試指令碼了。第一個Helloworld的測試指令碼如下所示:
[root@liumiaocn robot]# lshelloworld.robot[root@liumiaocn robot]# cat helloworld.robot *** Settings ****** Variables ****** Test Cases ***First test case Begin web test Second test case End web test *** Keywords *** Begin web test Log This is first test case End web test Log HelloWorld[root@liumiaocn robot]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
熟悉關鍵字驅動測試的都很容易地看到這是做了兩個關鍵字和兩個測試用例。
執行指令碼
使用robot helloworld.robot即可開始執行。
可以清楚地看到測試用例地執行情況以及它的輸出。
執行結果
執行之後產生了三個結果檔案:
檔名 | 詳細資訊 |
---|---|
log.html | 日誌檔案 |
report.html | 結果報表 |
output.xml | 輸出檔案 |
日誌檔案
結果報表
注意日誌檔案和報表檔案都是自動連線起來地,不要人為隨意改變其相對目錄。
輸出檔案
詳細的輸出資訊,可以使用其進行更方便的持續整合。
<?xml version="1.0" encoding="UTF-8"?><robot generated="20170611 19:11:45.787" generator="Robot 3.0.2 (Python 2.7.5 on linux2)"><suite source="/root/robot/helloworld.robot" id="s1" name="Helloworld"><test id="s1-t1" name="First test case"><kw name="Begin web test"><kw name="Log" library="BuiltIn"><doc>Logs the given message with the given level.</doc><arguments><arg>This is first test case</arg></arguments><msg timestamp="20170611 19:11:45.807" level="INFO">This is first test case</msg><status status="PASS" endtime="20170611 19:11:45.807" starttime="20170611 19:11:45.806"></status></kw><status status="PASS" endtime="20170611 19:11:45.807" starttime="20170611 19:11:45.806"></status></kw><status status="PASS" endtime="20170611 19:11:45.807" critical="yes" starttime="20170611 19:11:45.806"></status></test><test id="s1-t2" name="Second test case"><kw name="End web test"><kw name="Log" library="BuiltIn"><doc>Logs the given message with the given level.</doc><arguments><arg>HelloWorld</arg></arguments><msg timestamp="20170611 19:11:45.808" level="INFO">HelloWorld</msg><status status="PASS" endtime="20170611 19:11:45.808" starttime="20170611 19:11:45.808"></status></kw><status status="PASS" endtime="20170611 19:11:45.808" starttime="20170611 19:11:45.807"></status></kw><status status="PASS" endtime="20170611 19:11:45.808" critical="yes" starttime="20170611 19:11:45.807"></status></test><status status="PASS" endtime="20170611 19:11:45.808" starttime="20170611 19:11:45.789"></status></suite><statistics><total><stat fail="0" pass="2">Critical Tests</stat><stat fail="0" pass="2">All Tests</stat></total><tag></tag><suite><stat fail="0" id="s1" name="Helloworld" pass="2">Helloworld</stat></suite></statistics><errors></errors></robot>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
總結
本文簡單介紹了Robot Framework的概要資訊以及如何安裝和執行第一個Robot的Helloworld的測試指令碼,同時確認了其輸出的結果。Robot的強大在這個測試指令碼中完全無法得到體現,後續會慢慢展開Robot Framework的各種使用方法。
再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://blog.csdn.net/jiangjunshow